Handbrakeは、ビデオ変換にx264エンコーダーを使用します。すべてのx264オプションと対応するFFmpegの概要をまとめたサイトがあります。ただし、これらは少し非推奨であり、これらのオプションの一部は機能しなくなったか、名前が変更された可能性があります。ほとんどの詳細オプションにはx264プロファイルを使用する必要がありますが、ここで取得します。
基本的なハンドブレーキオプション(フレームレートなど)の多くはx264に固有のものではなく、FFmpegオンラインドキュメントに散在しています。
始める前に、最新のFFmpegバージョンを使用していることを確認してください。彼らのダウンロードサイトはすべての主要なオペレーティング・システム用のビルド静的を持っています。
行こう:
--input "d:\input.mpg" --output "d:\output.mp4"
FFmpegの構文はffmpeg -i input.mpg … d:\output.mp4
です。
--rate 29.97
でビデオフレームレートを指定し-r 29.97
ます。(ハンドブレーキ--cfr
は一定のフレームレートを設定するだけです。ここでは必要ありません)。
--arate 44.1
音声サンプルレートを-ar 44100
(Hz単位で)設定します。
--format mp4
FFmpegはMP4が必要であることを知っているため、必要ありません。
--width 1920 --height 1080 --custom-anamorphic --display-width 1920 --keep-display-aspect --modulus 8 --crop 0:0:0:0
これは、サイズを1920×1080に設定する以外は何もしません。FFmpegでは、-s:v 1920x1080
を使用するか、フィルターを使用する場合はを使用します-filter:v "scale=1920:1080"
。
--encoder x264 --vb 5200
でエンコーダを設定し-c:v libx264
、でビットレートを一定に設定し-b:v 5200K
ます。品質設定に関しては、まだそこにいないことに注意してください。
--aencoder faac --ab 128 --mixdown stereo
と、上記と同様-c:a libfaac -b:a 128K -ac 2
。FAACはFFmpegでサポートされなくなったことに注意してください。代わりに、組み込みのFFmpegエンコーダーを-c:a aac -b:a 128K
代わりに使用してください。
-x bitrate=5200:vbv-bufsize=5200:vbv-maxrate=5200
これにより、エンコーディングモードがVBVに設定され、一定のビットレートや一定の品質ではなく、ストリーミングシナリオがターゲットになります。一定品質は、x264のデフォルトであるCRFとも呼ばれます。これは、Handbrakeでは「レート係数」と呼ばれています。CRFは通常最高品質のエンコードを提供しますが、VBVモードはオンラインストリーミングまたは機能が制限されている特定のデバイスに適したファイルを提供します。
VBVを設定するには、ffmpeg の-maxrate 5200K
および-bufsize 5200K
オプションを使用します。
CRFを設定するに-crf 23
は、ffmpeg で使用します。
level=42
を使用し-level 42
ます。これはH.264レベルです。
bframes=2:min-keyint=60:keyint=60:ref=4
Bフレームの数をで設定し-bf 2
ます。キーフレームの最小間隔はで設定され-keyint_min 60
、最大間隔はで設定されます-g 60
。参照画像の枚数はで設定し-refs 4
ます。
me=umh:merange=64:subme=7:8x8dct:cabac=1
これらは、ffmpegで-x264-params me=umh:merange=64:subme=7:8x8dct:cabac=1
直接設定できない他のx264エンコーダー設定と同様に、ffmpegでさらに設定できるオプションです。
怠惰で詳細を気にしない、または機能しない場合の "TL; DR"バージョンは次のとおり-preset:v medium
です。x264プリセットは、エンコード速度と圧縮効率をトレードオフする一連のオプションを選択します。彼らは、都合から名付けられているultrafast
、superfast
、veryfast
、faster
、fast
、medium
へslow
、slower
とveryslow
。快適に感じるものは何でも選択してください。
要約すると、長いバージョン:
ffmpeg -i input.mpg -c:v libx264 -r 29.97 -s:v 1920x1080 -b:v 5200K -maxrate 5200K -bufsize 5200K -level 42 -bf 2 -keyint_min 60 -g 60 -refs 4 -x264-params me=umh:merange=64:subme=7:8x8dct:cabac=1 -c:a aac -b:a 128K -ar 44100 d:\output.mp4
または、私が使用する短いもの(VBVエンコーディングといくつかの詳細オプションを削除したもの):
ffmpeg -i input.mpg -c:v libx264 -r 29.97 -s:v 1920x1080 -b:v 5200K -maxrate 5200K -bufsize 5200K -c:a aac -b:a 128K -ar 44100 d:\output.mp4
多目的変換のために一定品質のエンコーディングに変更し、これを使用して、-crf
パラメーターを18から28に変更します。ここで、低いほど品質が高く、23がデフォルトです。
ffmpeg -i input.mpg -c:v libx264 -r 29.97 -s:v 1920x1080 -crf 23 -c:a aac -b:a 128K -ar 44100 d:\output.mp4