Videos variabler Größe auf ein festes Seitenverhältnis skalieren

Ich habe 45 Videos mit unterschiedlichen Seitenverhältnissen und Auflösungen. Ich muss sie alle so skalieren, dass sie genau in einen 640 x 360 (16 x 9) Container mit den folgenden Spezifikationen passen:

16x9, 640x360, 1600kbps, H.264, MP4, progressiv, 29,97

Einige Videos könnten beispielsweise 512 x 12 groß sein, andere 480 x 320, aber sie müssen alle skaliert und zentriert in ein neues 640 x 360-Ausgabevideo passen. Wenn ein Video nicht breit genug ist, um diesen Platz auszufüllen, sollten links und rechts schwarze Balken hinzugefügt werden.

Geht das mit ffmpeg?

Hier ist der Code, mit dem ich bisher gespielt habe:

ffmpeg -i "input.mov" -b:v 1600k -bufsize 1600k -r 29.97 -vf scale=640:360 -vcodec libx264 output.mp4

Dies scheint alles zu tun, was ich brauche, außer dynamisch auf diese feste Auflösung zu skalieren.

Weiß jemand, wie ich zu dem Ergebnis komme, das ich suche?

Vielen Dank!

Antworten (1)

Verwenden

ffmpeg -i "input.mov" -vf 
          "scale='if(gt(a*sar,16/9),640,360*iw*sar/ih)':'if(gt(a*sar,16/9),640*ih/iw/sar,360)',
          pad=640:360:(ow-iw)/2:(oh-ih)/2,setsar=1"
       -vcodec libx264 -b:v 1600k -bufsize:v 1600k -r 30000/1001 output.mp4

Die Skalierungsfilter verwenden den bedingten if(a,b,c)Ausdruck, dh if a then b else c. Ich überprüfe, ob das Video breiter als 16:9 ist. Wenn ja, skaliere ich die Breite auf 640 und die Höhe, um die Proportionen beizubehalten. Wenn nicht, skaliere ich die Höhe auf 360 und halte die Breite proportional. Dann wird das Ergebnis auf 640x360 aufgefüllt. Das setsar wird verwendet, um sicherzustellen, dass ffmpeg das Video als Quadratpixel registriert.

Danke dir! Ich habe es versucht, es hat funktioniert!! Es gibt ein Video, das ich kodiert habe, bei dem das Seitenverhältnis der Ausgabe horizontal um etwa 15 % bis 20 % gestreckt wurde. (Der Rest der Parameter, einschließlich der Auffüllung, funktionierte einwandfrei.) Vielleicht ist etwas Seltsames mit der Quelldatei passiert? Hier sind die Spezifikationen für das Quellvideo: 720 x 486, 40656 kb/s, SAR 10:11 DAR 400:297, 29,97 fps, 29,97 tbr, 30k tbn, 30k tbc (Standard
Versuchen Sie es mit einem modifizierten Befehl.