FFMPEG schreibt Quicktime "COLR"-Atom nicht

Ich versuche, Quicktime-Movs mit dem Codec "DNXHD" mit dem folgenden ffmpeg-Befehl zu erstellen (Eingabeteil ausgenommen):

-c:v dnxhd -b:v 175M -pix_fmt yuv422p10le test.mov

Dies funktioniert und wird in After Effects und Premiere einwandfrei angezeigt. Allerdings wird es im Quicktime Player nicht richtig wiedergegeben - es sieht etwas "verwaschen" aus. Mein Verständnis davon ist, dass Quicktime Player das "COLR"-Atom verwendet, um den Farbraum der Videodatei für die Wiedergabe zu bestimmen. Also bin ich nach einiger Recherche auf diese ffmpeg-Option gestoßen:

-movflags +write_colr

Aber es scheint nichts zu bewirken. Die Analyse des Videos mit "exiftool" zeigt, dass das Atom nicht geschrieben wurde.

Ich verwende FFMPEG Version 2.8.6, installiert mit Homebrew unter Mac OS 10.11.3.

Weiß jemand, wie man die Movs von ffmpeg dazu bringt, den Erwartungen von Quicktime Player zu entsprechen?

Antworten (1)

Das ist ein experimentelles Flag, also müssen Sie es verwenden

-movflags +write_colr -strict experimental
Danke dir! Das scheint mit allen Codecs zu funktionieren, die ich versuche, AUSSER dnxhd. Irgendwelche Ideen? Mein Befehl:-c:v dnxhd -b:v 175M -strict experimental -movflags +write_colr
Was seltsam ist, da der einzige Codec, für den es gedacht ist, DNxHD 1080I 120M ist. Aber die strenge Flagge sollte es an anderer Stelle erzwingen. Sehen Sie das COLR-Atom, das mit anderen Codecs erstellt wurde? Verwenden Sie atomicparsely, um Atome zu überprüfen.
AtomicParsely scheint Quicktime-Dateien nicht zu mögen. exiftool funktioniert aber. Die Ausgabe von exiftool, auf die Sie achten müssen, istColor Representation : nclc 1 1 1
Ich kann ffmpeg anscheinend überhaupt nicht dazu bringen, dieses Atom zu schreiben, wenn ich "dnxhd" verwende. Es funktioniert mit "prores_ks". Wie hast du es mit dnxhd zum Laufen gebracht?
Überprüfen Sie die Wiedergabe in Quicktime oder die ffprobe-Anzeige für die DNxHD-Ausgabe. Mediainfo meldet Farbraumeigenschaften (Prims, Matrix usw.), die es nicht hat, wenn es ohne das Farbflag codiert wird.
Von ffprobe:Stream #0:0(eng): Video: dnxhd (AVdn / 0x6E645641), yuv422p10le(tv, bt709), 1920x1080, 176160 kb/s, 24 fps, 24 tbr, 12288 tbn, 12288 tbc (default)
Der Farbraum wird aufgezeichnet bt709. Wie ist die Wiedergabe in QT?
Sieht in QT "verwaschen" aus, sieht anderswo gut aus.
Die Funktion colr atom setzt lediglich die drei farbbezogenen Variablen auf bt709 im Falle von HD. Aber das ist in Ihrem Fall schon erledigt. Versuchen Sie also, auch das Gamma-Atom einzustellen. Verwenden-movflags +write_colr+write_gama -strict experimental
Nur für QT-Wiedergabe verwenden-c:v dnxhd -b:v 175M -src_range 0 -dst_range 1 -pix_fmt yuv422p10le -movflags +write_colr -strict experimental test.mov
Danke für die Hilfe, aber das ist nicht wirklich eine Lösung. Ich möchte, dass der Film für die Verwendung in jeder Anwendung korrekt gerendert wird und auch im Quicktime Player mit den richtigen Farben angezeigt werden kann.
Sieht so aus, als ob DNxHD auf dem ACLR -Atom beruht , nicht auf dem COLR-Atom. Und ffmpeg scheint es richtig zu schreiben . Ich denke, das Problem hier liegt bei Ihrer Quelle, für die ich keine Details habe.