Wie konvertiert man ein 2:21:1-Video mit ffmpeg in eine 16:9-DVD?

Ich habe ein MPEG-4 Simple Profile-Video mit einer Größe von 720 x 288 und einem Pixel-Seitenverhältnis von 2:21:1 (ffmpeg sagt SAR 1:1, DAR 5:2). Ich versuche, den Befehl zu verwenden, den ich normalerweise zum Konvertieren in das DVD-Format verwende:

ffmpeg -i inputfile.avi -target pal-dvd outputfile.mpg

Dies erzeugt ein 720x576-Video, das mit Videoplayern auf dem PC problemlos abgespielt werden kann. Aber wenn ich versuche, das auf eine DVD zu brennen (mit Seitenverhältnis 16:9), wird das Bild gestreckt. Wenn ich mit VLC herumspiele, verstehe ich, dass das Video ein Pixel-Seitenverhältnis von 2:21:1 hat, sodass Bilder bei der Wiedergabe mit 16:9 vertikal gestreckt werden.

Ich hätte erwartet, dass "-target pal-dvd" dies automatisch behebt, aber das tut es nicht. Ich habe einige Informationen im Internet gelesen und denke, der Schlüssel liegt in der Einstellung des richtigen sar/dar, aber ich habe einige Kombinationen ausprobiert und konnte nicht das gewünschte Ergebnis erzielen, wahrscheinlich weil ich die zu bestimmende Logik nicht ganz verstehe die richtigen Werte einzustellen. Schwarze Balken über und unter dem Bild sind für mich in Ordnung, aber das Seitenverhältnis des Videos muss natürlich erhalten bleiben.

Übrigens erhalte ich mit avconv anstelle von ffmpeg die gleichen Ergebnisse.

Danke im Voraus.

Antworten (1)

Nachdem Sie das Beispiel gesehen haben, ist dies der Befehl

ffmpeg -i in.avi -vf pad=720:576:0:144,setdar=4/3 -target pal-dvd out.mpg

Das Video besteht aus Quadratpixeln, daher ist keine Skalierung erforderlich. Der Frame sollte als 4:3 behandelt werden, nicht als 16:9 (was für diesen Film sowieso nicht das richtige Verhältnis ist).


Für die Breitbildwiedergabe im PAL-Standard muss Ihr gerendertes Raster 1024x576 sein. So,

ffmpeg -i in.avi -vf scale=1024:288,pad=1024:576:0:144 -target pal-dvd out.mpg

scale=1024:288--> das Video wird auf die endgültige Anzeigebreite skaliert.

pad=1024:576:0:144--> vertikale Pixel werden hinzugefügt, um es auf 1024x576 zu bringen.

-target pal-dvd--> Dadurch wird das Video auf 720x576 neu skaliert und ein DAR von 16:9 eingestellt.

Dies behebt tatsächlich das Seitenverhältnis, obwohl ich nicht sicher bin, welcher Schritt dies tatsächlich tut. Dies erzeugt jedoch eine DVD mit schwarzen Streifen auf beiden Seiten sowie oben und unten. In der Tat ist mir nicht ganz klar, warum ich die Auflösung von 1024 x 288 durchgehen sollte, von der ich erwarte, dass sie das Bild noch weiter streckt. Und wie es möglich ist, dass die endgültige Skalierung von 1024x576 auf 720x576 das Video nicht verzerrt.
Ich muss mich korrigieren: Die Seitenbänder verschwinden, wenn ich in meinem Videoplayer (VLC) das Seitenverhältnis 16:9 erzwinge. Ich denke also, ich muss auch den DAR einstellen, damit das resultierende Video sich selbst als 16: 9 deklariert. Das Erzwingen von 16:9 zeigt jedoch, dass das resultierende Video tatsächlich horizontal gestreckt wird. Außerdem scheint es, als erhalte ich genau das gleiche Ergebnis wie Sie, wenn ich die erste Skalierung auf 1024 x 288 überspringe und daher verwende: ffmpeg -i in.avi -vf pad=720x576:0:144 -target pal-dvd out.mpg.
Fügen Sie setsar=1nach dem Pad in meinem Befehl hinzu und überprüfen Sie.
Wenn ich setsar=1 zu Ihrem Befehl hinzufüge, muss ich das Seitenverhältnis im Videoplayer nicht mehr auf 16:9 zwingen (wird automatisch erkannt), aber das Video ist immer noch horizontal gestreckt ... Die Leute sehen sehr gut aus fett :-).
Teilen Sie einen Screenshot:ffmpeg -ss 300 -i in.avi -vf setsar=1 -vframes 1 out.png