回答:
(海賊版)ビデオをエンコードするためのガイドラインは、「シーンガイド」と呼ばれます。彼らはビデオがガイドに準拠していることを確認するさまざまなリリースグループによって署名されています。LOLはこれらのグループの1つです。
シーンガイドscenerules.orgのリストを見つけることができます。あなたが探している規格は、もし私が間違っていなければ、SD x264 TV Releasing Standardで、ビデオが1280×780であると仮定しています。HDビデオをお持ちの場合、45分間200 MBで本当に良い品質を得ることはおそらくないでしょう。それは約600 kBit / sに変換され、720pには十分でしょう。
エンコードツールについては、FFmpeg(Handbrakeのベース)を使用してかなり遠くまで到達できます。唯一の原因は、FFmpegとFAACオーディオの使用がそのシーンガイドで禁止されていることですが、実際に貢献しているのでなければ、それは問題ではありません。
ビデオエンコーディングの経験がなく、これらすべてのキーワードが意味をなさない場合は、次のブログ記事/スーパーユーザーの質問をご覧ください。
基本的に、ルールでは、一定レート係数の品質設定でx264エンコーダーを使用する必要があると規定されています。行うことは、一定のビットレートを設定することとはまったく異なります。一定の品質でビデオをx264でエンコードするようにCRFを設定できます。
一般的なCRFレベルは18〜28であり、リリースグループは、圧縮が容易な素材の高品質なエンコードには19〜20を推奨しています。最終的なファイルサイズを事前に知ることはありませんが、それがCRFエンコーディングの重要なポイントです。実際のファイルサイズは気にせず、高品質が必要なだけです。
をセットアップしffmpeg
、入力ビデオの準備ができたら、エンコードは実際には非常に簡単です。ただし、ソースビデオは高品質である必要があります。そうしないと、再エンコードによって品質が大幅に低下するだけです。
主なパラメーターは次のとおりです。
slow
プロファイル(エンコード時間を犠牲にしてより良い圧縮効率)tune
設定(例えばソース用のfilm
フィルム状の内容のために)では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は許可されませんが、おそらく気にしないでしょう。
mediainfoを投稿しなかったため、あなたが言及したリリースグループと話すことができません。しかし、ここにコンパクトなエンコードを作成するためのガイドがあります。これは、良い品質/サイズのバランスをとることを意味します。
HandBrakeと利用可能な最良のソースから始める必要があります。ソース部(作用及び細部の両方で)セグメントをコードする短いが困難を選択。「宛先」セクションで、libmkvを選択します。では動画 ]タブ、チェックを外して使用し、高度なオプション(それでも場合によってそれらのオプションのケースを追加することができ、より多くの設定)を選択--rc=crf
レートコントロール、最高の--preset
コンピュータが負担することができます(slower
またはveryslow
)、--tune
それがソースと一致した(film
あるいはanimation
、それをカバーしなければならない)、およびプロファイルとレベルをauto
/に設定しますauto
。次に、解像度で再生します(ソースがHDの場合のみ、画像設定で、アナモルフィックを緩めに設定し、軸の1つを次の高解像度から下に変更します)--crf
、短いセグメントの品質とビットレートの適切な妥協点を見つけるまで。crfはエンコード設定の残りの部分に関連付けられているため、変更する最後のビデオ設定にする必要があることに注意してください。では、オーディオ、一緒に行くVorbisので160kbps(これはAoTuVを使用します。-q5
さらにチューニングすることなく、透明性を実現し、)。では他のタブ、必要なものがすべて保存されていることを確認してください(章マーク、字幕トラック、メタデータなど)。満足したら、これらの設定を使用してエピソードの残りをエンコードできます。平均ビットレートは、困難なセグメントよりもはるかに低くなるはずです。設定に自信があれば、それらを使用してシーズン全体をエンコードできます。
上記の手順がコンパクトさをどのように改善するか:libmkvは、より多くのコーデック、プロファイル、および自動バージョンへのアクセスを提供し、エンコーダーを抑制する再生制限がないことを意味します。短いセグメント(数秒)で、物事を微調整して結果を確認するための時間が長くなります。Tuneは、ソースがどのように見えるかについて、心理視覚(知覚)品質を最適化します。より高いプリセットは、エンコード時間を犠牲にしてコンパクトさを改善します(これはあなたの難しいセグメントでは目立たないかもしれませんが、他のほとんどのシーンでビットレートを改善します)。CRFレート制御とは、エンコードが特定の品質をターゲットとするようにビットレートを変化させ、より要求の厳しいエピソードがより多くのスペースを獲得することを意味します。
元の解像度を維持している場合は、ノイズ除去フィルターも非常に便利です。目標は知覚可能なソースの欠陥をクリーンアップすることではなく、品質を著しく低下させることなく圧縮率を改善することであるため、軽量に保つ必要があります。以下に、HandBrakeのHQDN3D denoiserの使用ガイドを示します。これは、x264 --nr
と品質の最先端のdenoiserの中間にあります。
slhckの答えに基づいて、適切なffmpeg
パラメーターを呼び出すためのこの単純なPythonソリューションを構築しました。最新の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を参照してください。