web-dev-qa-db-ja.com

LOLリリースグループのような高品質/低サイズのMP4を入手するにはどうすればよいですか?

リリースグループLOLは、ヴァンパイアダイアリーでのリリースのエンコードに優れた仕事をしています(他の番組では、どのように私はあなたの母親に会いましたか?.

各約200 MBの約45分MP4ファイル、驚異的な品質を考慮。

どの設定とどのソフトウェアを使用しているのだろうと思います。 MediaInfoを使用してこれらのファイルから情報を取得し、HandBrakeの設定を使用しようとしましたが、実際には成功しませんでした。

誰か私を助けてくれませんか?エンコード/圧縮についての知識があまりありません。

21
thankyouinadv

(海賊版)ビデオをエンコードするためのガイドラインは、「シーンガイド」と呼ばれます。動画はガイドに準拠していることを確認するさまざまなリリースグループによって署名されています。LOLはこれらのグループの1つです。

シーンガイドのリスト scenerules.org を見つけることができます。あなたが探している標準は、私が間違っていない限り、 SD x264 TVリリース標準 です。ビデオが1280×780であると仮定しています。 HDビデオを使用している場合、200 MBで45分間、本当に高品質を得ることができないでしょう。これはおよそ600 kBit/sに変換され、720pには十分です。

エンコーディングツールについては、 FFmpeg (これはHandbrakeのベースです)でかなり遠くまで行くことができます。唯一の犯人は、FFmpegとFAACオーディオの使用がそのシーンガイドで禁止されていることですが、実際に貢献していない限り、それは問題になりません。

ビデオエンコーディングの経験がなく、これらのキーワードすべてが意味をなさない場合は、次のブログ記事/スーパーユーザーの質問をご覧ください。

基本的に、ルールでは、x-264エンコーダーを 定数レート係数 品質設定で使用する必要があるとしています。それが行うことは、一定のビットレートを設定することとはまったく異なります。x264でビデオを一定の品質でエンコードするようにCRFを設定できます。

典型的なCRFレベルは18から28の間であり、リリースグループは、圧縮が容易な素材の高品質なエンコーディングのために19〜20を推奨しています。その際、事前に最終的なファイルサイズを知る必要はありませんが、CRFエンコーディングを行うことの要点は次のとおりです。実際のファイルサイズは気にせず、質を高めたいだけです。

ffmpegを設定し、入力ビデオの準備ができたら、エンコードは実際には非常に簡単です。ただし、ソースビデオは高品質である必要があります。そうしないと、再エンコードしても品質が大幅に低下するだけです。

主なパラメータは次のとおりです。

  • x264ビデオ:
    • CRF 19–20
    • slowプロファイル(エンコード時間を犠牲にして圧縮効率を向上)
    • H.264レベル 3.1、これはいくつかの制約を設定します
    • ダウンスケーリングは、バイキュービック(FFmpeg-default)以外のリサイザーで行う必要があります。 たとえば、Lanczosを使用できます
    • A tune setting ソース用(例:filmは映画のようなコンテンツ)
  • AACオーディオ:
    • 可変ビットレートエンコーディング
    • 96〜160 kBit/sのビットレート

ffmpegでは、これは次のように変換されます。

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

FFmpegでは、AACエンコーディングの選択肢は少し制限されています。 AACの選択についてはこちらを参照してください 、および詳細については FFmpegおよびAACエンコーディングガイド も参照してください。

ビデオが大きすぎる場合は、CRFを調整できます。値が±6の場合、ビットレートは半分または2倍になるため、19から始めて25にすると、ビットレートの半分になります。シーンルールでは、24を超えるCRFは許可されていませんが、おそらく気になりません。

29
slhck

FFmpeg TV

slhck 回答に基づいて、私はこの単純なPython正しいffmpegパラメータを呼び出すためのソリューションを構築しました。最新の scenerules 2016 TV標準に基づいて

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

すべてのパラメーターを見つけることができ、デフォルトでこのように設定された理由の簡単な説明を説明しました。

  # 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'. 
  # https://superuser.com/questions/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"

完全なソースコードについては ffmpeg-tv.py を参照してください。

2
zurfyx

Mediainfoを投稿しなかったため、あなたが言及したリリースグループと話すことができません。しかし、これはコンパクトなエンコードを作成するためのガイドです。これは、優れた品質/サイズのバランスを実現することを意味します。

あなたはHandBrakeと入手可能な最良のソースから始めるべきです。 Sourceセクションで、短いがエンコードが難しいセグメントを選択します(アクションと細部の両方を含む)。 Destinationセクションで、libmkvを選択します。 Videoタブで、use advanced optionsのチェックを外します(これらのオプションはケースバイケースで追加できます) 詳細設定)、--rc=crfレート制御、コンピューターが耐えられる最高の--presetを選択(slowerまたはveryslow) 、ソースと一致する--tunefilmまたはanimationでカバーする必要があります)、プロファイルとレベルをauto/autoに設定します。次に、解像度で再生します(ソースがHDの場合のみ;画像設定で、アナモルフィックを緩め、軸の1つを次の高解像度から変更します解像度以下)と--crfを使用して、短いセグメントの品質とビットレートの妥協点を見つけます。 crfは残りのエンコード設定に関連付けられているため、変更する最後のビデオ設定にする必要があることに注意してください。 Audioでは、Vorbis160kbps (これはAoTuV -q5を使用し、さらに調整することなく透過性を実現します)。 その他のタブで、必要なすべてのものが保持されていることを確認します(チャプターマーク、字幕トラック、メタデータなど)。問題がなければ、これらの設定を使用して残りのエピソードをエンコードできます。平均ビットレートは、困難なセグメントよりもはるかに低くなるはずです。設定に自信がある場合は、それらを使用してシーズン全体をエンコードできます。

上記の手順でコンパクトさを向上させる方法:libmkvを使用すると、より多くのコーデック、プロファイル、およびバージョンに自動でアクセスでき、エンコーダーを保持するための再生の制約がなくなります。短いセグメント(数秒)は、物事を調整して結果を確認するための時間を大幅に増やします。 Tuneは、ソースがどのように見えるかに応じて、心理視覚(知覚)品質を最適化します。プリセットを高くすると、エンコード時間を犠牲にしてコンパクトさが向上します(これは難しいセグメントでは目立たない場合がありますが、他のほとんどのシーンではビットレートが向上します)。 CRFレート制御とは、エンコードがビットレートを変化させて特定の品質をターゲットにすることを意味します。

ノイズ除去フィルターは、元の解像度を維持する場合にも非常に役立ちます。目的は、認識できるソースの欠陥をクリーンアップすることではなく、品質を著しく低下させることなく圧縮率を改善することであるため、軽量に保つ必要があります。これが HandBrakeのHQDN3Dノイズ除去機能の使用ガイド で、x264の--nr最先端のノイズ除去装置 の中間にあります。

2
Tobu