Ich verwende ffmpeg seit geraumer Zeit für die gelegentliche Videokonvertierung und habe kürzlich festgestellt, dass von ffmpeg generierte H.264-Videos (libx264) in iMovie oder QuickTime nicht funktionieren (noch werden sie im Finder abgespielt oder eine Vorschau angezeigt). die Schnellansicht).
Wenn ich Videos mit OS X-Anwendungen erzeuge, die intern ffmpeg verwenden (z. B. MP4tools oder Adapter ), funktionieren die Videos einwandfrei, aber nicht, wenn ich versuche, ffmpeg direkt zu verwenden, z. B. um ein Video zu konvertieren:
# ffmpeg -i input.avi output.mp4
oder einige Bilder zu einem Video kombinieren:
# ffmpeg -f image2 -pattern_type sequence image-%04d.png output.mp4
iMovie importiert das Video einfach als schwarz/leer, die Schnellvorschau zeigt nur die Dateiinformationen (aber keine Videovorschau) und Quicktime sagt mir, dass es es nicht abspielen kann:
Was ist los?!
Kurz gesagt, Sie müssen (häufig) das Argument einschließen, -pix_fmt yuv420p
wenn Sie ffmpeg verwenden, um H.264-Inhalte für Apple-Software / -Geräte und eine Reihe anderer Decoder zu generieren, die yuv444p nicht verarbeiten.
# ffmpeg -i input.avi -pix_fmt yuv420p output.mp4
Dies wird in der Ausgabe bei Verwendung der Standardeinstellungen nicht erwähnt, kann aber in deren Encode/H.264-Anleitung nachgelesen werden .
Es stellt sich heraus , dass ffmpeg (unter bestimmten Umständen) ein Standard-Pixelformat von yuv444p für die libx264-Codierung gewählt hat, das nicht mit Apples Software/Hardware-H.264-Decodern kompatibel ist (und vielleicht im Allgemeinen nicht sehr kompatibel ist? ). Leider scheint sich dies nicht zu ändern, und es gibt keine Warnung darüber, also nur etwas, das Sie wissen müssen, wenn Sie ffmpeg verwenden, um H.264-Dateien zu erstellen.
Soweit ich das beurteilen kann, wird beim Konvertieren eines Videos, das bereits yuv420p verwendet, dies beibehalten, aber beim Konvertieren von etwas Exotischerem (z. B. Bildern oder einem GIF oder was auch immer) muss das Pixelformat für die allgemeine Apple-Kompatibilität angegeben werden.
Zusätzlich zu yuv420p
, einige Entdeckungen zu Codecs im Jahr 2021 (Catalina 10.15.7 und Monterey 12.0.1, imovie 10.3 und 10.2.5, ffmpeg 4.4).
Nicht alle *264
Codecs sind gleich. Der -c:v libx264
Codec kann nicht konsistent importiert werden. Verwenden Sie stattdessen -c:v h264_videotoolbox
.
Dies gilt für "Apple Silicon" (alias ARM) und Intel-CPUs.
Weder libx265 noch hevc_videotoolbox können konsistent importiert werden, wenn überhaupt.
(Bearbeiten, Tage später hatte ich ein Video, das nicht mit importiert werden konnte -c:v hd264_videotoolbox
. Es funktionierte mit -c:v copy -c:a copy
, also noch etwas zu versuchen)
Milan Babuskov
drfrogsplat
ffprobe -select_streams v -show_streams output.mp4
?trisweb
Shayan
David Herrn