Beste Voreinstellungen zum Skalieren älterer 4:3- und 5:4-Videos mit ffmpeg

Wir haben Videos im Zeilenformat (.mov), die 4:3 (768x576) und 5:4 (720x576) sind. Wir haben eine empfohlene Voreinstellung für das Streaming über DASH zu HTML5- und Silverlight-Playern (dies ist der zweite Durchgang):

ffmpeg -i input.mp4 -an -vcodec libx264 -profile:v main -pass 2 \
-vf scale=320:180 -pix_fmt yuv420p -g 75 -keyint_min 25 -b:v 384k \
-maxrate 384k -bufsize 384k -passlogfile passlogfile_fp output_320x180_384.mp4 

mit 5 weiteren, aber unterschiedlicher Auflösung und Bitrate:

  • 480:270 -b:v 700k
  • 800:450-b:v 1300k
  • 960:540 -b:v 1300k
  • 1280:720 -b:v 3500k
  • 1920:1080 -b:v 5000k

Bei den 4:3-Quellvideos sind wir mit dem Ergebnis zufrieden – das Bild wird nicht gestreckt, aber die Spieler fügen einen schwarzen Rand hinzu, um die Breite anzupassen. Wir sind uns jedoch nicht sicher, ob diese Voreinstellung für diese Quellvideos geeignet ist.

Mit dem 5:4 sind wir nicht wirklich zufrieden, da das Bild für die 16:9 Darstellung gestreckt wird. Wie können wir denselben Effekt erzielen wie mit den 4:3-Quellvideos? Sind diese Voreinstellungen überhaupt für diese Videoformate geeignet oder sollten wir nach etwas anderem suchen?

Schätze deine Hilfe. Unser Wissen über Codierung ist ziemlich begrenzt.

Antworten (1)

Um das Seitenverhältnis des Quellfilms über den Scaler von FFMpeg beizubehalten, müssen Sie eine Skalierung mit einem unbekannten Wert angeben:

ffmpeg -i input.mp4 -an -vcodec libx264 -profile:v main \
  -pass 2 -vf scale=-1:180 -pix_fmt (etc...)

Die "-1" weist den Scaler an, die Ausgabe 180 Pixel hoch zu machen, und wie viele Pixel breit die Ausgabe sein muss, um das ursprüngliche Seitenverhältnis beizubehalten.

Dies würde Ihnen Filme mit dem alten Seitenverhältnis geben, Sie brauchen eine Möglichkeit, den Originalfilm in ein beliebiges Rechteck zu zwingen. Die Dokumentation gibt ein Beispiel dafür, wie Sie dies tun:

ffmpeg -i input.mp4 -vf scale="'if(gt(a,4/3),320,-1)':'if(gt(a,4/3),-1,240)'"  

In diesem Beispiel wird ein Film erstellt, der 320 x 240 groß ist und das ursprüngliche Pixel-Seitenverhältnis beibehält, was auch immer das sein mag. Die Ausgabe wird (glaube ich) in der oberen linken Ecke positioniert, sodass Sie einen Filter verwenden müssen, um sie zu reponieren.