Ich versuche einen Videoclip (ursprünglich 960 mal 540) in zwei 4 Teile (oben links, oben rechts usw.) zuzuschneiden und benutze diesen Befehl unten (mit natürlich korrekten x / y-Positionen):
ffmpeg -i mov_a.m4v -vf "crop=480:270:480:270" mov_a_4.m4v
Das Problem ist, dass die Bitrate jedes zugeschnittenen Clips unterschiedlich ist. Was ich versuche zu tun, ist, diese 4 Filmteile in 4 Android-Tablets zu legen und sie gleichzeitig zu starten (um einen Multi-Screen zu bilden).
Ich bin mir ziemlich sicher, dass der PLAY-Befehl gleichzeitig die Android-Tablets erreicht (also ein sehr kleiner Zeitunterschied). Aber dann habe ich diese 4 Clips nicht synchron, und ich vermute, es liegt an den unterschiedlichen Bitraten, dass der Player mehr Arbeit leisten muss, um die höheren Parts mit höherer Bitrate zu laden.
Selbst wenn Sie der Meinung sind, dass dies nicht das Problem ist, können Sie die Ausgabe von FFMPEG so erzwingen, dass die Bitrate für alle 4 Teile des Films exakt gleich ist? Wenn ja, was soll ich in der obigen Befehlszeile ändern?
Danke für Ihre Hilfe!
Antworten:
Erzwingen Sie eine Bitrate mit der Option -b: v. Diese Rate würde von der Eingangsrate abhängen. Sagen wir, ffprobe meldet 1024 kbps für Ihr ungeschnittenes Video. Ich würde unter der Annahme einer Bildgröße von 1/4 eine Bitrate von etwa 256 kbit / s durchlassen.
ffmpeg -i mov_a.m4v -vf "crop=480:270:480:270" -b:v 256k mov_a_4.m4v
Idealerweise sollten Sie auch explizit einen Codec verwenden, wenn Sie eine Bitrate erzwingen:
ffmpeg -i mov_a.m4v -vf "crop=480:270:480:270" -vcodec libx264 -b:v 256k mov_a_4.m4v
Aber dann überprüfe den Codec in der Eingabedatei. Beachten Sie, dass die nicht synchronisierte Wiedergabe möglicherweise nichts mit Bitraten zu tun hat. Sie können jedes zugeschnittene Video, das Sie bereits haben, mit ffprobe oder ffmpeg überprüfen:
ffmpeg -i filename
quelle