Wie kann ich MP4s mit hoher Qualität und geringer Größe wie die LOL-Release-Gruppe erhalten?


20

Die Release-Gruppe LOL leistet hervorragende Arbeit bei der Codierung ihrer Releases in The Vampire Diaries (in anderen Shows wie How I Met Your Mother ist die Bitrate höher, scheint also nicht so effektiv zu sein).

Über 200 MB pro ~ 45 Minuten MP4-Datei, erstaunliche Qualität unter Berücksichtigung.

Ich frage mich nur, welche Einstellungen und welche Software sie verwenden. Ich habe versucht, mithilfe von MediaInfo Informationen aus diesen Dateien abzurufen und dann die Einstellungen in HandBrake zu verwenden, aber es gelang mir nicht wirklich.

Könnte mir bitte jemand helfen? Ich habe nicht viel Wissen über das Kodieren / Komprimieren.

Antworten:


28

Die Richtlinien zum Kodieren (Raubkopien) von Videos werden als "Szenenanleitungen" bezeichnet. Sie werden von verschiedenen Veröffentlichungsgruppen signiert, die sicherstellen, dass ihre Videos dem Leitfaden entsprechen. LOL ist eine dieser Gruppen.

Eine Liste der Szenenführer finden Sie unter scenerules.org . Der Standard, den Sie suchen, ist - wenn ich mich nicht irre - der SD x264 TV-Standard , vorausgesetzt, Ihr Video ist 1280 × 780. Wenn Sie HD-Videos haben, erhalten Sie wahrscheinlich 45 Minuten lang keine wirklich gute Qualität mit 200 MB. Das entspräche ungefähr 600 kBit / s und würde allerdings für 720p ausreichen.

Mit FFmpeg (auf dem Handbrake basiert) kommen Sie ziemlich weit . Der einzige Schuldige ist, dass die Verwendung von FFmpeg- und FAAC-Audio für diesen Szenenführer verboten ist, aber es spielt keine Rolle, es sei denn, Sie tragen tatsächlich dazu bei.

Wenn Sie noch keine Erfahrung mit der Videokodierung haben und all diese Keywords nichts für Sie bedeuten, lesen Sie bitte die folgenden Blog-Artikel / Super User-Fragen:

Grundsätzlich besagen die Regeln, dass Sie den x264-Encoder mit einer Qualitätseinstellung mit konstantem Ratenfaktor verwenden müssen . Was es tut, ist ganz anders als das Festlegen einer konstanten Bitrate: Sie können die CRF so einstellen, dass x264 das Video mit einer konstanten Qualität codiert.

Typische CRF-Werte liegen zwischen 18 und 28, und die Freigabegruppe empfiehlt 19–20 für eine hochwertige Codierung von Material, das leicht zu komprimieren ist. Die endgültige Dateigröße wird dabei nicht im Voraus bekannt sein, aber genau darum geht es bei der CRF-Codierung: Sie kümmern sich nicht um die tatsächliche Dateigröße - Sie möchten nur eine gute Qualität.

Sobald Sie die Einstellungen vorgenommen ffmpeghaben und Ihr Eingangsvideo fertig ist, ist die Codierung eigentlich recht einfach. Beachten Sie jedoch , dass Ihre Video - Quelle muss von hoher Qualität sein, sonst Neucodierung nur seine Qualität wesentlich verschlechtern.

Hier sind die wichtigsten Parameter:

  • x264-Video mit:
    • CNI 19–20
    • slow Profil (bessere Komprimierungseffizienz auf Kosten der Kodierungszeit)
    • H.264 Level 3.1, das einige Einschränkungen auferlegt
    • Das Downscaling muss mit jedem anderen Resizer als Bicubic (dem FFmpeg-Standard) durchgeführt werden. Beispielsweise können Lanczos verwendet werden .
    • Eine tuneEinstellung für die Quelle (zB filmfür filmähnliche Inhalte)
  • AAC Audio mit:
    • Kodierung mit variabler Bitrate
    • Bitrate zwischen 96 und 160 kBit / s

In ffmpegbedeutet dies auf die folgenden:

ffmpeg -i input.mp4 \
-c:v libx264 -crf 19 -level 3.1 -preset slow -tune film \
-filter:v scale=-1:720 -sws_flags lanczos \
-c:a libfdk_aac -vbr 5 \
output.mp4

In FFmpeg sind Ihre Auswahlmöglichkeiten für die AAC-Codierung etwas eingeschränkt. Weitere Informationen zu Ihrer AAC-Auswahl finden Sie hier. Weitere Informationen finden Sie auch im FFmpeg- und AAC-Codierungshandbuch .

Wenn Ihr Video zu groß ist, können Sie den CRF anpassen. Bei Werten von ± 6 wird die Bitrate halbiert / verdoppelt. Wenn Sie also mit 19 beginnen und auf 25 gehen, erhalten Sie die Hälfte der Bitrate. Die Szenenregeln erlauben keine CRF über 24, aber Sie werden wahrscheinlich nichts dagegen haben.


2

Ich kann nicht mit der Veröffentlichungsgruppe sprechen, die Sie erwähnt haben, da Sie die Mediainfo nicht gepostet haben. Hier ist ein Leitfaden für die Erstellung kompakter Codierungen, bei denen ein ausgewogenes Verhältnis zwischen Qualität und Größe erzielt wird.

Sie sollten mit HandBrake und der besten verfügbaren Quelle beginnen. Im Quell Abschnitt, wählen Sie eine kurze , aber schwer zu kodieren Segment (sowohl mit Action und feinen Details). Im Zielbereich wählen SieWählen Sie Option libmkv aus . Deaktivieren Sie auf der Registerkarte " Video" die Option " Erweiterte Optionen verwenden" (Sie können diese Optionen immer noch in mehreren Einstellungen von Fall zu Fall hinzufügen ), wählen Sie " --rc=crfRatensteuerung", den höchsten Wert, den --presetIhr Computer tragen kann ( sloweroder veryslow), einen Wert, der --tunemit der Quelle übereinstimmt ( filmoder animationihn abdecken sollte), und Stellen Sie das Profil und die Stufe auf auto/ auto. Spielen Sie dann mit der Auflösung (nur wenn die Quelle HD ist; in den Bildeinstellungen), stellen Sie anamorph ein, um eine der Achsen zu lockern und zu variieren (ab der nächsten hohen Auflösung und abwärts) und --crfbis Sie einen guten Kompromiss zwischen Qualität und Bitrate für Ihr kurzes Segment finden. Beachten Sie, dass der crf an die übrigen Kodierungseinstellungen gebunden ist. Aus diesem Grund sollte dies die letzte von Ihnen geänderte Videoeinstellung sein. In Audio , geht mit Vorbis bei 160kbps (diese AoTuV verwenden -q5, Transparenz ohne weitere Abstimmung zu erreichen). In den anderen RegisterkartenÜberprüfen Sie, ob alles, was Sie benötigen, erhalten bleibt (Kapitelmarkierungen, Untertitelspuren, Metadaten usw.). Wenn Sie zufrieden sind, können Sie diese Einstellungen verwenden, um den Rest der Episode zu codieren. Die durchschnittliche Bitrate dürfte deutlich niedriger ausfallen als im schwierigen Segment. Wenn Sie mit Ihren Einstellungen vertraut sind, können Sie sie zum Codieren ganzer Jahreszeiten verwenden.

Wie die obigen Schritte die Kompaktheit verbessern: Mit libmkv können Sie auf mehr Codecs, Profile und Versionen zugreifen, um die automatische Wiedergabe zu beschleunigen. Ein kurzes Segment (ein paar Sekunden) gibt Ihnen viel mehr Zeit, um Dinge zu optimieren und die Ergebnisse zu betrachten. Tune optimiert die psychovisuelle (wahrgenommene) Qualität für das, wie die Quelle aussehen soll. Höhere Voreinstellungen verbessern die Kompaktheit auf Kosten der Codierungszeit (dies ist in Ihrem schwierigen Segment möglicherweise nicht erkennbar, verbessert jedoch die Bitrate in den meisten anderen Szenen). CRF-Ratensteuerung bedeutet, dass Ihre Kodierung die Bitrate variiert, um eine bestimmte Qualität zu erreichen, wobei anspruchsvollere Episoden mehr Speicherplatz erhalten.

Ein Entrauschungsfilter kann auch sehr nützlich sein, wenn Sie die ursprüngliche Auflösung beibehalten. Sie sollten es leicht halten, da es nicht darum geht, einen wahrnehmbaren Quellendefekt zu beseitigen, sondern die Komprimierbarkeit zu verbessern, ohne die Qualität merklich zu beeinträchtigen. Hier ist eine Anleitung zur Verwendung von Handbrake des HQDN3D denoiser , die zwischen x264 der ist --nrund der Stand der Technik Denoisern für Qualität.


2

FFmpeg TV

Basierend auf der Antwort von slhck habe ich diese einfache Python-Lösung erstellt, um die richtigen ffmpegParameter aufzurufen . Basierend auf den neuesten TV-Standards von scenerules 2016 .

python3 ffmpeg-tv.py input.mp4 output.mkv

Beschrieben finden Sie alle Parameter und eine kurze Beschreibung, warum diese standardmäßig so eingestellt wurden.

  # 1.3) Providers which downscale 1080i to 720p (e.g. BellTV) are not allowed.
  # 5.10) Resized video must be within 0.5% of the original aspect ratio.
  scale="-1:-1" # <width>:<height>; -1 maintain ratio.

  # 4.1) Video must be H.264/MPEG-4 AVC encoded with x264 8-bit.
  video_encoder="libx264"

  # 4.4) Constant Rate Factor (--crf) must be used.
  # 4.4.1) CRF values below 18 and above 23 are never allowed.
  # http://slhck.info/video/2017/02/24/crf-guide.html
  # (lossless) 0 <- (better) 23 <- (worst) 51
  # ┌─────────────────┬───────┬───────────────────────────────────────────┐
  # │ Compressibility      │  CRF    │ General Examples                                      │
  # ├─────────────────┼───────┼───────────────────────────────────────────┤
  # │ High                 │ 18-19   │ Scripted, Talk Shows, Animation, Stand-Up             │
  # │ Medium               │ 20-21   │ Documentary, Reality, Variety, Poker                  │
  # │ Low                  │ 22-23   │ Sports, Awards, Live Events                           │
  # └─────────────────┴───────┴───────────────────────────────────────────┘
  crf="19"

  # 4.6) Settings cannot go below what is specified by preset (--preset) 'slow'.
  preset="slow"

  # 4.7) Level (--level) must be '4.1'.
  level="4.1"

  # 6.4) Only sharp resizers, such as Spline36Resize, BlackmanResize or LanczosResize/Lanczos4Resize,
  # must be used.
  # 6.4.1) Simple resizers, such as Bicubic, PointResize or Simple, are not allowed. 
  resizer="lanczos"

  # 4.17) Optional tuning (--tune) parameters allowed are: 'film', 'grain' or 'animation'. 
  # /superuser/564402/explanation-of-x264-tune
  # film – intended for high-bitrate/high-quality movie content. Lower deblocking is used here.
  tune="film"

  # 8.1) Audio must be in the original format provided.
  # 8.1.1) Transcoding audio is not allowed.
  # 8.2) Multiple language audio tracks are allowed.
  # Since we cannot ensure that the external content is in an acceptable TV format, we'll recode
  # it into aac. We're just playing safe here.
  # 
  # FFmpeg supports two AAC-LC encoders (aac and libfdk_aac) and one HE-AAC (v1/2) encoder
  # (libfdk_aac). The license of libfdk_aac is not compatible with GPL, so the GPL does not permit
  # distribution of binaries containing incompatible code when GPL-licensed code is also included.
  # libfdk_aac is "non-free", and requires ffmpeg to be compiled manually.
  # Second best encoder is the native FFmpeg AAC encoder. (aac)
  audio_encoder="aac"

  # Audio quality (bit rate).
  # Use either VBR or CBR. VBR is the easiest.
  # https://trac.ffmpeg.org/wiki/Encode/AAC#fdk_vbr
  # VBR: Target a quality, rather than a specific bit rate. 1 is lowest quality and 5 is highest
  # quality.
  # https://trac.ffmpeg.org/wiki/Encode/AAC#fdk_cbr
  # http://wiki.hydrogenaud.io/index.php?title=Fraunhofer_FDK_AAC#Bitrate_Modes
  # CBR: kbps
  vbr="5"
  cbr=None

  # 8.2) Multiple language audio tracks are allowed.
  # 8.2.1) The default audio track must be the language intended for release (e.g. An English release
  # containing English, German and Russian audio tracks, must have the default flag set on the English
  # track).
  # https://trac.ffmpeg.org/wiki/Map
  # Include "all" inputs to the output: -map 0
  map="0"

Siehe ffmpeg-tv.py für den vollständigen Quellcode.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.