Hintergrund:
Ich versuche, verlustfreie Bluray-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 in Bezug auf die 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 des Tracks mehr Bytes benötigen, um die gleiche visuelle Qualität zu liefern. Gibt es so etwas?
Bearbeiten:
Ich habe viel Glück mit dem Argument -qscale und libxvid. Wenn ich keine anderen Vorschläge bekomme, werde ich einfach damit gehen.
Mit und x264 (dem besten H.264-Encoder) sind Sie auf dem richtigen Weg -crf
, 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 weniger wichtig ist. Umgekehrt wird die Durchführung einer Zwei-Pass-Codierung mit -b:v
empfohlen, wenn Sie auf eine bestimmte Ausgabedateigröße abzielen und die Qualität von geringerer Bedeutung ist.
Die Codierung von HEVC/H.265 mit x265 sollte denselben grundlegenden Richtlinien folgen. Sie erhalten im Allgemeinen eine bessere Komprimierung im Austausch für eine längere Codierungszeit.
Eine Voreinstellung ist eine Sammlung von Optionen, die ein bestimmtes Codierungsgeschwindigkeit:Komprimierungsverhältnis bereitstellen . Eine langsamere Voreinstellung bietet eine bessere Komprimierung (Komprimierung ist Qualität pro Dateigröße). Die allgemeine Verwendung besteht darin, die langsamste Voreinstellung zu verwenden, für die Sie Geduld haben. Aktuelle Presets 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.
Der Bereich für x264 ist 0-51, wobei 0 verlustfrei, 23 der Standardwert und 51 der schlechteste Wert ist. Ein niedrigerer Wert ist eine höhere Qualität. Ein subjektiv gesunder 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 um +6 entspricht ungefähr der halben Bitrate, während -6 ungefähr der doppelten Bitrate entspricht.
Allgemein ist es üblich, den höchsten -crf
Wert zu wählen, der noch eine akzeptable Qualität bietet. Das heißt, wenn die Ausgabe gut aussieht, versuchen Sie einen höheren Wert, und wenn sie schlecht aussieht, wählen Sie einen niedrigeren Wert.
Verwenden Sie diese Einstellungen für den Rest Ihrer Videos. Sie sollten am Ende alle die gleiche Qualität haben.
ffmpeg -i input -c:v libx264 -preset slow -crf 22 -c:a copy output.mkv
-ssim 1 -psnr
in Ihrer ffmpeg-cmdline misst einige Videoqualitätsmetriken (die nicht immer mit der vom Menschen wahrgenommenen visuellen Qualität übereinstimmen). Kann nützlich sein, um eine Vorstellung davon zu bekommen, wie sehr Ihr Video verstümmelt wird.Vielleicht ist dies hilfreich . K-Lite Codec Pack Bei der Installation gibt es ein Paket mit Codecs, damit Sie auswählen können, was 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]
Gyan
Bryan Austin
Gyan
Glenneroo
Peter Kordes