Filtrer Video Opløsning med ffmpeg til Bash-Script: Trin-for-Trin Guide

Hvordan kan bredden og højden af en video filtreres fra outputtet af kommandoen "ffmpeg -i filename.mp4" til brug i et bash-script?

For at filtrere bredden og højden af en video fra outputtet af kommandoen "ffmpeg -i filename.mp4" til brug i et bash-script, kan du bruge ffmpeg, grep, awk og cut til at udtrække og opdele opløsningen i variablerne $width og $height.

Sådan filtreres bredden og højden af en video fra outputtet af kommandoen "ffmpeg -i filename.mp4" til brug i et bash-script

For at filtrere bredden og højden af en video fra outputtet af kommandoen ffmpeg -i filename.mp4 og bruge det i et bash-script, kan du følge disse trin:

  1. Udfør ffmpeg kommandoen og ret outputtet til stderr:

    ffmpeg -i filename.mp4 2>&1
  2. Brug grep til at finde linjen, der indeholder opløsningsoplysningerne:

    ffmpeg -i filename.mp4 2>&1 | grep 'Stream #0:0'
  3. Brug awk eller sed til at udtrække bredden og højden:

    ffmpeg -i filename.mp4 2>&1 | grep 'Stream #0:0' | awk -F '[, ]' '{print $6}'
  4. Del opløsningen i bredde og højde ved hjælp af cut eller awk:

    resolution=$(ffmpeg -i filename.mp4 2>&1 | grep 'Stream #0:0' | awk -F '[, ]' '{print $6}')
    width=$(echo $resolution | cut -d'x' -f1)
    height=$(echo $resolution | cut -d'x' -f2)
  5. Nu kan du bruge variablerne $width og $height i dit bash-script:

    echo "Width: $width"
    echo "Height: $height"

Her er et komplet eksempel på et bash-script, der udfører ovenstående trin:

#!/bin/bash

# Filnavn
filename="filename.mp4"

# Hent opløsning
resolution=$(ffmpeg -i $filename 2>&1 | grep 'Stream #0:0' | awk -F '[, ]' '{print $6}')

# Del opløsning i bredde og højde
width=$(echo $resolution | cut -d'x' -f1)
height=$(echo $resolution | cut -d'x' -f2)

# Udskriv bredde og højde
echo "Width: $width"
echo "Height: $height"