Hintergrund:
Ich versuche, verlustfreie Blu-ray-Tracks ohne großen Qualitätsverlust auf eine speicherfreundlichere Größe zu komprimieren.
Was ich bisher gemacht habe:
Erkunden von Komprimierungsoptionen mit ffmpeg. Hauptsächlich um h264 mit dem Argument -crf.
Beschränkungen:
Linux- und Open Source-Tools. Bitte schlagen Sie nichts Apple / Microsoft-spezifisches vor.
Frage:
Die meisten Optionen, die ich im Zusammenhang mit der Komprimierung sehe, betrafen Bitraten oder feste Ausgabegrößen. Ich suche einen Video-Codec, der eher eine "Qualitätsschwelle" hat. Es macht mir nichts aus, wenn komplexere Teile der Spur mehr Bytes benötigen, um die gleiche visuelle Qualität zu erzielen. Gibt es so etwas?
Bearbeiten:
Ich habe viel Glück mit dem Argument -qscale und libxvid. Wenn ich keine anderen Vorschläge bekomme, gehe ich einfach damit um.
quelle
Antworten:
Mit
-crf
und x264 (dem besten H.264-Encoder) sind Sie auf dem richtigen Weg und es sollte die "Qualitätsschwelle" bieten, nach der Sie suchen. CRF wird empfohlen, wenn Sie eine bestimmte Ausgabequalität wünschen und die Größe der Ausgabedatei von geringerer Bedeutung ist. Umgekehrt-b:v
wird empfohlen , eine Codierung mit zwei Durchläufen mit durchzuführen , wenn Sie auf eine bestimmte Größe und Qualität der Ausgabedatei abzielen.Das Codieren von HEVC / H.265 mit x265 sollte denselben grundlegenden Richtlinien folgen. Im Allgemeinen erhalten Sie eine bessere Komprimierung im Austausch für eine längere Codierungszeit.
1. Wählen Sie eine Voreinstellung
Eine Voreinstellung ist eine Sammlung von Optionen, die ein bestimmtes Verhältnis von Codierungsgeschwindigkeit zu Komprimierung bereitstellen . Eine langsamere Voreinstellung sorgt für eine bessere Komprimierung (Komprimierung ist die Qualität pro Dateigröße). Im Allgemeinen wird die langsamste Voreinstellung verwendet, für die Sie Geduld haben. Aktuelle Voreinstellungen in absteigender Reihenfolge der Geschwindigkeit sind :
ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow, placebo
. Ignorieren,placebo
da es ein Witz und Zeitverschwendung ist (es hilft höchstens ~ 1%). Wenn die Codierung zu langsam ist, verwenden Sie eine schnellere Voreinstellung.2. Wählen Sie einen CRF-Wert
Der Bereich für x264 liegt zwischen 0 und 51, wobei 0 verlustfrei, 23 standardmäßig und 51 am schlechtesten ist. Ein niedrigerer Wert ist eine höhere Qualität. Ein subjektiv vernünftiger Bereich liegt zwischen 18 und 28. Betrachten Sie ~ 18 als visuell verlustfrei: Es sollte genauso aussehen wie die Eingabe, ist aber technisch nicht verlustfrei. Das Erhöhen des CRF-Werts +6 ist ungefähr die Hälfte der Bitrate, während -6 ungefähr die doppelte Bitrate ist.
Im Allgemeinen wird der höchste
-crf
Wert gewählt, der noch eine akzeptable Qualität bietet. Wenn die Ausgabe gut aussieht, versuchen Sie es mit einem höheren Wert. Wenn sie schlecht aussieht, wählen Sie einen niedrigeren Wert.3. Codieren
Verwenden Sie diese Einstellungen für den Rest Ihrer Videos. Sie sollten alle die gleiche Qualität haben.
Beispiel
Siehe auch
quelle
-ssim 1 -psnr
Auf Ihrem ffmpeg misst cmdline einige Videoqualitätsmetriken (die nicht immer mit der vom Menschen wahrgenommenen visuellen Qualität übereinstimmen). Kann hilfreich sein, um eine Vorstellung davon zu bekommen, wie stark Ihr Video verstümmelt wird.Vielleicht ist dies hilfreich. K-Lite Codec Pack Bei der Installation gibt es ein Codec-Paket , mit dem Sie auswählen können, welches am besten zu Ihnen passt. Dies ist die Liste der Codecs: • DirectShow-Videodecodierungsfilter: - ffdshow [Version 1.2.4475] - LAV-Video [Version 0.51.3] (- Decodierung von: H264, VC1 (nur progressiv), MPEG2, MPEG4-ASP, MS -MPEG4, MJPEG, VP8, RV40, WMV1 / 2/3) - On2 VP7 [Version 7.0.10.0] - DScaler5 MPEG-2-Decoder [Version 0.0.6.0 IVTC mod]
quelle