x264 + Vorbisのエンコード

こんにちはHabr。

実際、私はこれを読んだ後、最初の投稿を書くことにしました。 その中で、著者は自分のビジョンを述べようとしましたが、私の意見では、成功しませんでした。



だから、与えられた:BDRemux、1080p、25シリーズ。

タスク:最高品質のリッピングを480p(または720p)で、10ビットで行います。



すぐにアニメをコーディングすることを予約してください。



仕事には、次のものが必要です。

1.x264 、ビデオストリームのエンコード用。

2. ffmpeg 、サウンドのエンコードにのみ使用するため、私の意見では簡単です。

3. mkvtoolnix 、mkvコンテナーでこの奇跡を構築します。



エピソードがたくさんあるので、以降のリッピングに役立つ単純なバッチファイルを作成します。



映像



最初にコードを提供し、次にパラメーターを説明します。



"...\x264-10b.exe" "...\  .m2ts" --input-res 1920x1080 --fps 23.976 --profile high10 --preset medium --tune animation --crf=15.5 --me=umh --ref=9 --deblock=-1,-1 --merange=24 --bframes=12 --trellis=1 --video-filter resize:width=854,height=480,method=lancoz --output "...\  .264"
      
      







パラメータ


 --input-res 1920x1080 --fps 23.976
      
      





ソースのx264解像度とフレームレートを提案します。 (MediaInfoを覗くことができます)



 --profile high10
      
      





オプション:ベースライン、メイン、高、高10、高422、高444。

プロファイルを指定します。 この場合、10ビットでエンコードします。8の場合はhigh10です。



 --preset medium
      
      





オプション:超高速、超高速、超高速、高速、高速、中、低速、低速、超低速、プラセボ。

コーディングの速度と品質のバランス。 つまり 高速-品質が低下します。

私は主にミディアム、スロー、時には非常に遅いを使用します。



 --tune animation
      
      





オプション:フィルム、アニメーション、粒子、静止画像、psnr、ssim、fastdecode、zerolatency。

入力ビデオに応じたプリセット。 映画の場合、アニメの場合とは異なります。



 --crf=15.5
      
      





範囲:1〜50。

通常の品質モードとそのレベル。 小さいほど、品質が向上します。 各フレームがフレームの複雑さに基づいて独自のQPを使用できるようにします。

ここでもっと英語読んでください

これは、シングルパスエンコーディングに最適な方法です。

可能な代替オプション:--bitrateまたは--qp、それらは考慮しません。



次に、いくつかのパラメーターを再定義します。 ミディアムプリセットのすべてが私たちに適しているわけではありません。



 --me=umh
      
      





オプション:dia、hex、umh、esa、tesa。

フルピクセルの動きを推定する方法。 ええと



 --ref=9
      
      





範囲:1〜16。

参照フレームの数。 エンコードするほど遅くなります。 家電製品をサポートするための仕様に従っている場合、4-1080pで最大、9-720pで最大です。

6以上では、品質に大きな違いは見られず、エンコード速度は大幅に低下します。



 --deblock=-1,-1.
      
      





:



の形式での非ブロック化。 つまり、非ブロック化のパワーが高いほど、適用される強度が高くなり、しきい値が高くなるほど、ブロックが多くなります。

ここによく描かれています

BDRemuxアニメをエンコードするため、線のぼやけを減らすために強度としきい値を下げることが望ましいです。 私は-1:-1を使用しますが、-2:-2でもリッピングが見られます。



 --merange=24
      
      





範囲:4-64。

マクロブロックモーションベクトルを検索するときに最適なオプションを見つけるための最大試行回数を決定します。 より多くの、より良い品質。

24を超えるベットはあまり意味がありません。



 --bframes=12
      
      





範囲:1〜16。

並列Bフレームの最大数を設定します。 価値が高いと、圧縮率の効率が大幅に向上する可能性があります。



 --trellis=1
      
      





範囲:0-2。

圧縮効率を高めるトレリス量子化。 0-無効。 1-「マクロブロック上」のオプション 2-「どこでも」。

1は、速度の低下と圧縮効率の間の適切な妥協点です。 2のベスト、ただし--psy-rd



と組み合わせて--psy-rd



すると、 --psy-rd



がぼやけます。



サイズ変更


 --video-filter resize:width=854,height=480,method=lancoz
      
      





幅と高さ、および方法を指定します。 lancozを使用しています。

オプション:fastbilinear、bilinear、bicubic、experimental、point、area、bicublin、gauss、sinc、lanczos、spline。



音声



コーディングにはffmpegを使用します。



 "...\ffmpeg\bin\ffmpeg.exe" -i "...\  .m2ts" -vn -c:a libvorbis -qscale:a 6 "...\  .ogg"
      
      







ここではすべてが簡単です:



 -vn
      
      





ビデオエンコーディングをオフにします。



 -c:a libvorbis -qscale:a 6
      
      





エンコーダと品質を示します。

範囲:0〜10。

より多くの、より良い品質。

6は〜192 Kbpsです。



組立:



最初のシリーズをエンコードします。



mkvtoolnix GUIを開き、結果のビデオとオーディオを選択し、パラメーターを設定し(たとえば、ビデオのアスペクトとフレームレート、オーディオのトラック言語を設定すると便利です)、クリップボードにコピーをクリックすると、次のようになります。



 "...\mkvtoolnix\mkvmerge.exe" -o "...\  .mkv" "--default-track" "0:yes" "--forced-track" "0:no" "--aspect-ratio" "0:16/9" "--default-duration" "0:23.976fps" "-d" "0" "-A" "-S" "-T" "--no-global-tags" "--no-chapters" "(" "...\  .264" ")" "--language" "0:jpn" "--default-track" "0:yes" "--forced-track" "0:no" "-a" "0" "-D" "-S" "-T" "--no-global-tags" "--no-chapters" "(" "...\  .ogg" ")" "--track-order" "0:0,1:0"
      
      





25エピソードの完全なコード:



 @echo off for /L %%i in (1,1,9) do ( "...\ffmpeg\bin\ffmpeg.exe" -y -i "...\ 0%%i.m2ts" -vn -map 0:2 -c:a libvorbis -qscale:a 6 "...\ 0%%i.ogg" "...\x264\x264-10b.exe" "...\ 0%%i.m2ts" --input-res 1920x1080 --fps 23.976 --profile high10 --preset medium --tune animation --crf=15.5 --me=umh --ref=9 --deblock=-1,-1 --merange=24 --bframes=12 --trellis=1 --video-filter resize:width=854,height=480,method=lancoz --output "...\ 0%%i.264" "...\mkvtoolnix\mkvmerge.exe" -o "...\ 0%%i.mkv" "--default-track" "0:yes" "--forced-track" "0:no" "--aspect-ratio" "0:16/9" "--default-duration" "0:23.976fps" "-d" "0" "-A" "-S" "-T" "--no-global-tags" "--no-chapters" "(" "...\ 0%%i.264" ")" "--language" "0:jpn" "--default-track" "0:yes" "--forced-track" "0:no" "-a" "0" "-D" "-S" "-T" "--no-global-tags" "--no-chapters" "(" "...\ 0%%i.ogg" ")" "--track-order" "0:0,1:0" ) for /L %%i in (10,1,25) do ( "...\ffmpeg\bin\ffmpeg.exe" -y -i "...\ %%i.m2ts" -vn -map 0:2 -c:a libvorbis -qscale:a 6 "...\ %%i.ogg" "...\x264\x264-10b.exe" "...\ %%i.m2ts" --input-res 1920x1080 --fps 23.976 --profile high10 --preset medium --tune animation --crf=15.5 --me=umh --ref=9 --deblock=-1,-1 --merange=24 --bframes=12 --trellis=1 --video-filter resize:width=854,height=480,method=lancoz --output "...\ %%i.264" "...\mkvtoolnix\mkvmerge.exe" -o "...\ %%i.mkv" "--default-track" "0:yes" "--forced-track" "0:no" "--aspect-ratio" "0:16/9" "--default-duration" "0:23.976fps" "-d" "0" "-A" "-S" "-T" "--no-global-tags" "--no-chapters" "(" "...\ %%i.264" ")" "--language" "0:jpn" "--default-track" "0:yes" "--forced-track" "0:no" "-a" "0" "-D" "-S" "-T" "--no-global-tags" "--no-chapters" "(" "...\ %%i.ogg" ")" "--track-order" "0:0,1:0" ) pause
      
      





私は2つの曲がった手を持っているので、同じコードが2回書かれています。



ご清聴ありがとうございました。



UPD:



 --input-res 1920x1080 --fps 23.976
      
      





指定できません。 これは、x264にクリーンな未加工ストリームを供給する場合にのみ必要です。



 --profile high10
      
      





また、指定できないため、

ビットレートはコンパイル段階で決定され、1つのバイナリで8および10にエンコードすることはできません。 そのため、原則としてプロファイルを設定しても意味がありません(4:2:2または4:4:4が必要な場合を除く)。


tp7に感謝します



また、私の意見では、 -submeを9に上げることは理にかなっています。

すべてのパラメーターの詳細については、英語でこちらをご覧ください



All Articles