Wenn ein Video mehrere Male neu kodiert werden muss, ffmpeg
weil mehrere Änderungen daran vorgenommen werden müssen, wie z. B. Zuschneiden, Größenänderung, Konvertieren, Kompilieren (Concat), erneutes Konvertieren usw., wäre es dann nicht am klügsten, ultrafast
während aller Neukodierungen bis zur allerletzten Neukodierung eine Kodierungsvorgabe wie zu verwenden und dann etwas wie slow
oder zu verwenden veryslow
?
Dies zu tun ist genau dasselbe wie die Neucodierung während slow
der veryslow
gesamten Zeit. Der einzige Unterschied besteht darin, dass das eine meine Zeit verschwendet und das andere meine Zeit effizient nutzt. Habe ich das richtig verstanden?
Oder würde dadurch die Qualität verloren gehen?
Antwort1
Sie liegen falsch.
JedenPhase der Kodierung mit einer „schnellen“ Voreinstellung führt zu einem größeren Qualitätsverlust als die gleiche Phase mit einer langsamen Voreinstellung. Der Verlust in jeder Phase wird sich bis zu dem Punkt summieren, an dem es einen (möglicherweise signifikanten) Unterschied zwischen Ihrer Methode und einem vollständigen Durchlauf mit langsameren Voreinstellungen gibt.
Das Problem ist bekannt alsGenerationsverlust. Wenn Sie jede Generation mit niedrigerer Qualität (schnellere Voreinstellung) ausführen, verlieren Sie mehr Daten pro Generation. Die Dateigrößen können in der letzten langsamen Phase ähnlich sein, insbesondere wenn Sie eine qualitätsbasierte Einstellung verwenden. Das bedeutet jedoch nur, dass mehr versucht wird, den Eingaben treuer zu bleiben. Tatsächlich wird mehr versucht, Rauschen und Qualitätsverluste zu reproduzieren, die in früheren Phasen entstanden sind.
Wenn Sie Konvertierungen in mehreren Schritten durchführen, sind Sie sowohl hinsichtlich der Geschwindigkeit als auch der Qualität viel besser dran, wenn Sie die Konvertierung in der ersten Stufe in eine unkomprimierte Ausgabe durchführen, die gesamte Verarbeitung auf dem unkomprimierten Video vornehmen und dann eine letzte Komprimierungsstufe durchführen.
Andernfalls sollten Sie versuchen, so viele Schritte der Videokonvertierung wie möglich in einem Programmdurchlauf durchzuführen. Ich glaube, dass Sie damit ffmpeg
Zuschneiden, Größenänderung und Konvertierung in einem Schritt zusammenfassen können, sodass nur ein einziger Schritt Generierungsverlust entsteht.
Dass die Größe der Datei gleich oder ähnlich ist, bedeutet fast nichts. Sie haben bei den früheren Durchläufen bereits mehr visuelle Wiedergabetreue verschenkt und diese kann nicht wiederhergestellt werden.