Ich möchte eine variable Framerate mit einem MAXIMUM-Wert angeben und libx264 erlauben, die Framerate nach Belieben zu verringern. Die Idee dabei ist, eine zusätzliche Komprimierung zu erhalten, wenn es so etwas wie ein erweitertes Standbild gibt
Nach meinem Verständnis ist dies möglicherweise vergleichsweise umständlich, jedoch aus komplexen und nicht intuitiven Gründen unerwünscht
Obwohl ein x264-Stream eine Framerate aufweist, ist die Framerate eher ein Problem auf Containerebene als ein Codec-Problem.
In einer Passthrough-VFR-Codierung gibt es im Wesentlichen eine Textdatei, die angibt, wie hoch die Framerate über welche Frames / Zeiten ist, und bei der Codierung einer Quelle leitet eine Funktion wie tcfile-in oder tcfile-out die Zeitstempel an die Codierung weiter , um die Positionen der Raten abzubilden und das Video subjektiv von der Quelle konsistent zu halten.
Die Idee einer niedrigen Framerate ist logisch, funktioniert aber aus mehreren Gründen nicht. Obwohl x264 mit einigen Funktionen VFR-fähig ist, glaube ich nicht, dass es eine Analysefunktion gibt, mit der die Bildrate in Bezug auf die Bewegung variiert werden kann, um die Dateigröße zu verringern (analog zu den vielen Bitratensteuerelementen).
Die Quelle ist auch ein Problem: VFR-Quellen behalten standardmäßig ihre Frame-Variabilität bei, aber das Codieren einer CFR-Datei mit variabler Bitrate (eine gute Idee, besonders wenn Telecine benötigt wird) wird einfach den gleichen CFR erzeugen.
Dies bedeutet, dass Sie wahrscheinlich die Bitrate von Hand neu schreiben müssen (dh Zeitstempel langsamer Szenen, die in die Datei gemuxt werden), oder für avisynth auf einen Frame-Dezimierungsalgorithmus wie dup, dedup und exactDedup zurückgreifen müssen . Wenn Ihr Video extrem wenig Bewegung hat, werden einige Frames (sogar die Hälfte?) Ausgeworfen. Das Problem ist, dass diese Algorithmen nicht weiterentwickelt sind und mit "realem" Filmmaterial keine gute Wahl treffen, was zur besten Codierung beiträgt.
Das Entfernen von Frames, die Elemente wie I- und B-Frames enthalten, verringert im Laufe der Zeit die Menge der verfügbaren Details, was dazu führt, dass Bewegungen "schrittweise" aussehen und die anderen grundlegenden Videoparameter stören und Artefakte wie Aliasing verursachen können.
Und aufgrund der Funktionsweise der Quantisierer wird x264 die Bitrate in diesen bewegungsarmen Szenen überproportional weiter verringern. Wenn Sie keine Diashow mit identischen Bildern haben, kommt es zu Bewegungen (wenn nur Körnung und andere Artefakte) und zu einem Qualitätsverlust, der ohne drastische Änderungen der Bitrate nicht zu sehen wäre.
Und schließlich gibt es nicht viele Optionen, um das zu tun, was Sie wollen, weil x264 wirklich gut darin ist, die Bitrate nur mit zeitlicher Komprimierung zu verwalten (Änderungen in Teilbildern aufzeichnen). Wenn Sie zu 1/2 Framerate wechseln, wird die Dateigröße nicht halbiert. 10% sind wahrscheinlich ein realistischer Gewinn, den Sie von geringen Bewegungen oder Animationen erwarten können.
Kurz gesagt, das Verringern der Bitrate Ihrer statischen Szenen hat nur eine geringe Auswirkung auf Ihre Dateigröße, führt jedoch zu einer Reihe von Qualitäts- und Synchronisierungsproblemen, ganz zu schweigen von der Inkompatibilität mit Videobearbeitungssoftware.
Wenn Sie einen Dezimator ausprobieren möchten, können Sie möglicherweise die maximale neue Bildrate mithilfe der Stufenoptionen begrenzen , die jeweils eine maximale Auflösung und Bildrate festlegen. Leider müssten Sie wahrscheinlich mit sehr niedrigen Auflösungen arbeiten, um die gewünschten Bildraten mithilfe von Profilen zu erhalten. Es wird darauf zurückgegriffen, die Raten entweder vollständig von Hand zu bearbeiten oder die Bildraten zu korrigieren, die Sie für zu hoch halten. In beiden Fällen ist Jonglieren erforderlich, um den Sound mit den neuen Frameraten synchron zu halten, wenn Änderungen nach dem Kodierungsprozess vorgenommen werden, wenn die tc-Datei erhalten bleibt.
Der Vorteil ist, dass die Optimierung der vielen Bitrateneinstellungen viel mehr Zeit für die Verwaltung der Dateigröße und die Verbesserung der Videoqualität bedeutet, als Komplikationen bei geringem Gewinn zu verursachen. Es ist wahrscheinlich die beste Idee, den ursprünglichen FPS beizubehalten, es sei denn, Sie streben nach Broadcast- oder Medienstandards. Player können (im Gegensatz zu Editoren) variable Bitraten wiedergeben. Je mehr Frames in Ihrem Video vorhanden sind, desto flüssiger ist die Wiedergabe und desto kleiner ist möglicherweise die Dateigröße, da sich die Bewegungen zwischen den Frames geringfügig ändern.
Hier ist eine Sammlung von Links zu Standardinformationen und Forumsdiskussionen, die bei diesem verwirrenden Aspekt der Codierung helfen sollten:
- avisynth Dezimationswerkzeuge
- fps und -r Schalter
- x264 Allgemein (tcfile, fps)
- Timecode- Dateistandards
- Ebenen und Profile
- Kurze, klare Zusammenfassung der CFR / VFR-Einstellungen (Abschnitt "Framerate")
doom9, videohelp & c theoretische diskussionen
1
2
3
4
5
6
7