FFmpeg / Avidemux: Fix gepackte B-Frames


10

Ich transkodiere einige meiner alten mpeg4-Videos (in AVI-Containern) mit FFmpeg nach h.264. Grundsätzlich gilt

ffmpeg -i input.avi -c:v libx264 [x264 settings] -c:a libfdk_aac [aac settings] output.mp4

Wenn Sie dies tun, wird mpeg4die folgende Warnung ausgegeben

Video verwendet eine nicht standardmäßige und verschwenderische Methode zum Speichern von B-Frames ("gepackte B-Frames"). Verwenden Sie ein Tool wie VirtualDub oder Avidemux, um das Problem zu beheben.

Ich weiß, dass ich immer noch erfolgreich transkodieren kann, aber anhand der Warnung ist mir nicht klar, ob die Qualität des resultierenden h.264-Videos beeinträchtigt wird .

So,

  • Da es mir nur um die Qualität (und Größe veryslow) der Ausgabe von h.264-Videos geht, möchte ich die Größe für meine Mobilgeräte minimieren, weshalb ich auch die Voreinstellung verwende. Frames?

  • Wenn ich sollte, wie behebe ich sie mit Avidemux? (Ich habe bereits versucht, das Handbuch durchzublättern.)

Antworten:


12

B-Frames sind ein Frame-Typ, der bei der Videokomprimierung zur Darstellung von Frames eines Videos verwendet wird. B-Frames können Informationen aus vorherigen und zukünftigen Frames verwenden, um jedes Videoframe darzustellen.

Ältere DivX-codierte Videos verwenden üblicherweise eine hässliche Methode, die als gepackter Bitstream bezeichnet wird und mehrere Videobilder in einen einzigen AVI-Block packt . Gepackter Bitstream ist kein Standard-MPEG-4-Format, benötigt mehr Speicherplatz, benötigt mehr CPU-Leistung zum Codieren / Decodieren und kann (am wichtigsten) Probleme verursachen, wenn er in einen anderen Containertyp kopiert wird. Dies ist der Hauptgrund für die Warnung.

Da Sie das Video neu codieren, anstatt es nur zu kopieren, sollten Sie in Ordnung sein. Wenn Sie das Originalvideo behalten, es aber in einen anderen Container (z. B. MP4 oder MKV) kopieren möchten, entpacken Sie die B-Frames am besten zuerst mit dem FFmpeg-Filter mpeg4_unpack_bframes.

Sie könnten die B-Frames mit etwas Einfachem wie auspacken

ffmpeg -i INPUT.avi -codec copy -bsf:v mpeg4_unpack_bframes OUTPUT.avi
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.