ffmpeg: Pillarbox 4:3 bis 16:9

Ich bin verwirrt darüber, wie die Videofilter funktionieren, insbesondere wie sie zusammenarbeiten, denke ich. Ich habe zwei MKVs, gezogen von DVD, die jeweils 16:9 und 4:3 sind. Ich möchte sie letztendlich kombinieren (mkvmerge widescreen.mkv + fullscreen.mkv) und dazu benötige ich passende Anzeigeseitenverhältnisse.

Ich möchte also das 4:3-Video beim Codieren in eine Pillarbox umwandeln und es dann hoffentlich an das 16:9-Video anhängen. Ich habe eine Reihe von Filtern ausprobiert, um dies zu erreichen, und das Beste, was ich erreichen konnte, war ein etwas breiteres Video als erwartet, ansonsten richtig Pillarboxing.

ffmpeg -i fullscreen.mkv 4:3 -vf "pad=853:480:66:0,scale=720x480,setdar=16:9" [etc.]

Die Pixelabmessungen betragen 720 x 480, die Anzeigeabmessungen 853 x 480, und die beiden MKVs können erfolgreich zusammengeführt werden (nach Neucodierung der Datei widescreen.mkv in denselben Videocodec, jedoch ohne Videofilter).

Die resultierende Anzeige des Vollbildvideos ist jedoch Pillarboxed, jedoch leicht horizontal gestreckt. In 1:1-Pixeln misst es 720 Pixel, nicht 640 Pixel.

Ich denke, ich mache die Mathematik falsch oder missverstehe, wie die Filter funktionieren sollen, oder etwas Einfaches, aber mein Verständnis von ffmpeg-Videofiltern ist im Grunde nichts.

Antworten (1)

Unter der Annahme, dass beide MKVs NTSC-DVDs rippen, sind dies die Befehle, die Sie benötigen:

Für 4:3-Video

ffmpeg -i "input43.mkv" -vf "scale=640x480,setsar=1,pad=854:480:107:0" [etc..]

Für 16:9-Video

ffmpeg -i "input169.mkv" -vf "scale=854x480,setsar=1" [etc..]

(Beachten Sie, dass H.264, der Codec, den Sie wahrscheinlich verwenden, gleichmäßige Abmessungen benötigt. Wenn Sie also die 853Breite angeben, führt dies dazu, dass ffmpeg 854Pixel an den Encoder weiterleitet und dann automatisch eine funky SAR einstellt.