Ich versuche zu verstehen, wie man Prores Kostya mit FFmpeg verwendet, und habe dazu ein paar Fragen:
Ich habe eine Panasonic G85 und eine Gopro Hero 7 schwarz, mit der ich 4k aufgenommen habe. Für 4k-Material nimmt die Panasonic mit 4:2:0 8-Bit bei 100 Mbit/s und die Gopro 8-Bit 4:2:0 mit 78 auf Mbps. Macht es vor diesem Hintergrund Sinn, ein anderes Prores-Profil als ProRes 422 LT auszuwählen? Der Grund, warum ich das sage, ist, dass das LT-Profil 102 Mb/s hat, was das Quellmaterial beider Kameras übersteigt.
Ich habe gelesen, dass der Befehl qscale nicht benötigt wird und ein Benutzer einfach ein Profil auswählen kann, das eine Standardbitrate definiert (für LT sind dies 102 Mb / s). Ich habe Leute gesehen, die sagten, dass ProRes ein profilbasierter Codec ist, was bedeutet, dass, wenn Sie eines der Profile auswählen, es eine feste Komprimierungsmenge ausführt, die in der Spezifikation definiert ist. Wenn Sie eine andere Komprimierungsstufe wünschen, sollten Sie ein anderes Profil wählen, anstatt eine Qualitätseinstellung mit dem Befehl qscale zu ändern, da dies zu einer Verletzung des Standards führen und möglicherweise Wiedergabeprobleme verursachen kann (insbesondere mit Hardware-Decodern). Ist es in diesem Sinne also besser, den Befehl qscale auszulassen?
Warum ist es notwendig, die anzugeben -pix_fmt
, da ich dachte, dass alle 422-Profile standardmäßig auf yuv422p10le und alle 4444-Profile standardmäßig auf yuv4444p10le eingestellt sind. Warum muss dieser Wert angegeben werden?
1) Ihr Panasonic-Material ist H.264; GoPro kann H.264 oder H.265 sein. Dies sind Inter-Frame-Codecs, während ProRes ein Intra-Frame-Codec ist (jeder Frame wird eigenständig codiert und ist für die Decodierung nicht von anderen Frames abhängig). Sie sollten also eine höhere Bitrate in Betracht ziehen, um die Quellqualität aufrechtzuerhalten.
2) FFmpeg ermöglicht es Ihnen, einen benutzerdefinierten Quantisierer festzulegen, aber standardmäßig verwendet es eine feste Qualitätseinstellung pro Profil. Verwenden Sie für benutzerdefinierte Quants -global_quality N
.
3) FFmpeg muss in das angegebene Pixelformat konvertieren, was die Ausgabe -pix_fmt tun wird. Der Encoder codiert nur , dh er nimmt rohe, unkomprimierte Eingangsframes auf und liefert codierte Daten.
tommydog35
Gyan
tommydog35
Gyan
tommydog35
Logan
ffmpeg
wird aber wahrscheinlich jede beliebige Rate codieren. Weitere Informationen finden Sie unter Wie konvertiere ich ein Video mit ffmpeg in das DNxHD / DNxHR-Format?tommydog35
tommydog35
Gyan