Ich habe mehrere hundert 1080p 59,94 fps 10-Bit-pro-Kanal (bpc) AVC-Intra Class 100 MXF-codierte Videodateien. Ich möchte die Frames dieser Videodatei extrahieren und sie in einem verlustfreien 16-Bit-Bildformat auf die Festplatte exportieren. Ich bin kürzlich auf diese Frage gestoßen: Video in 10-Bit-Bilder konvertieren
Also habe ich das versucht:
ffmpeg -i "testinput.mxf" -pix_fmt rgb48 _Frames/out%05d.tiff
Aber bin auf ein ziemlich unglückliches Problem gestoßen, bei dem ich nicht sicher bin, wie ich es lösen soll. Obwohl es technisch funktioniert hat und alle Videoframes in ein 16-bpc-Format exportiert wurden, erscheint die Farbe dieser Frames verwaschen. Hier ist, was ich meine:
Das erste Bild der Originalvideodatei (MXF):
Der erste mit ffmpeg exportierte Frame:
Wie Sie sehen können, scheint die Farbe verblasst zu sein und stimmt nicht perfekt mit dem Einzelbild im Originalvideo überein. Ich weiß nicht, warum das so ist, aber es ist ein ernstes Problem, das so schnell wie möglich gelöst werden muss. Vielleicht verwende ich ffmpeg nicht richtig, oder vielleicht ist dies ein Fehler in ffmpeg. Was muss ich tun, um die Frames aus diesem bestimmten Codec korrekt zu extrahieren? Bitte helfen Sie.
Ich habe die ursprüngliche MXF-Datei hier für Ihre eigenen Testzwecke eingefügt: https://drive.google.com/open?id=1HtCmPGkIZMMMEOAVKMlLksov7QyKzqRE Hier ist ein Link zur Ausgabe des Befehls, den ich zuvor angegeben habe. Ich verwende die neueste Version von ffmpeg für Windows, ffmpeg-Version N-94150-g231d0c819f Copyright (c) 2000-2019. https://pastebin.com/8UrxJJpY
Versuchen Sie es mit:
ffmpeg -i "testinput.mxf" -vf scale=in_range=limited:out_range=full -pix_fmt rgba64 path/to/output/out%05d.tiff
stattdessen.
Aus einem Grund, der etwas außerhalb meines Verständnisses der Farbwissenschaft liegt (oder vielleicht nur etwas Seltsames bei ffmpeg), erstellte die Ausgabe des ursprünglichen Befehls .tiff-Dateien in den "eingeschränkten" (15-235) statt "vollen" (0 -255) RGB-Farbbereich. Ich habe die Scopes in Premiere Pro und DaVinci Resolve auf AB zwischen dem ersten Frame der erstellten .tiff-Sequenz und der ursprünglichen .mxf-Datei verwendet, und die Unterschiede wurden deutlich.
Wenn Sie nicht fest entschlossen sind, ffmpeg zu verwenden, konnte ich auch ein vergleichbares Ergebnis erzielen, indem ich die .mxf-Datei in eine Resolve-Timeline (in meinem Fall Version 15) importierte und dann den Arbeitsbereich „Deliver“ verwendete und 16 Bit auswählte. RGB- und .tiff-Optionen als Ausgabe und Verwendung der Bereichseinstellung „Auto“ oder „Vollständig“. Wenn Sie sich für die Lösungsroute entscheiden, können Sie jede .mxf-Datei in eine Warteschlange stellen und sie einfach exportieren lassen, bis alles abgeschlossen ist.
Es gibt geringfügige Abweichungen zwischen der ffmpeg-.tiff-Datei, der Resolve-.tiff-Datei und der ursprünglichen .mxf-Datei, aber nach meinem Verständnis ist der Prozess der Konvertierung von YUV (der ursprünglichen .mxf-Datei) in RGB (die .tiff-Sequenz) im Allgemeinen mathematisch nicht perfekt. Die Dateien bestehen jedoch den "Augapfel"-Test und sollten gut funktionieren, es sei denn, die Leute, für die Sie arbeiten, haben wirklich strenge Lieferanforderungen.
Wenn Sie wirklich tief in die Materie einsteigen wollen, können Sie die netten (und schlauen!) Leute in den Doom9-Foren für sehr fortgeschrittene Konvertierungen in AVISynth (das wirklich cool und leistungsfähig, aber auch ziemlich kompliziert ist) einführen.
Hoffe das hilft!
Benutzer12174
jippyjoe4
Benutzer12174