上限確認付き品質基準VBR(crf)の詳細

x264guiEx 1.70での自動マルチパス関係の機能の拡張について、もうちょっと詳細。

まず、1.70で追加した、上限確認付き品質基準VBR(crf)だけの図。

x264guiEx_auto_npass_1_70_crf_all

これについて、具体的にどうなるのか、続きに書いておいた。







上限確認付き品質基準VBR(crf)を選ぶと、まず設定されたcrfでエンコードを行う。


--------------------------------------
[S:\test_crf.mp4]
--------------------------------------
auo [info]: converting YUY2 -> nv12p, using SSE2
auo [info]: x264 options...
--preset slow --crf 26 ~(中略)~ -o "S:\test_crf.mp4" "-"
auo [info]: NeroAacEnc で音声エンコードを行います。
       AAC-LC ビットレート指定, 128kbps, 2pass


で、crfでのエンコードが終わると、上限を確認する。上限ファイルサイズ100MBと設定したとすると、100MB以内に収まっていれば、


auo [info]: 出力ファイルサイズ 89.45 MB,
       ファイルビットレート 1389.34 kbps
auo [info]: 指定された上限を下回っていることを確認しました。
auo [info]: 総エンコード時間 : 0時間 3分35.7秒


と出て、終了。




もう少しcrfを下げ、画質をあげようとしてみると、そのままでは100MBをオーバーしてしまう。


--------------------------------------
[S:\test_crf2.mp4]
--------------------------------------
auo [info]: converting YUY2 -> nv12p, using SSE2
auo [info]: x264 options...
--preset slow --crf 25.5 ~(中略)~ -o "S:\test_crf2.mp4" "-"
auo [info]: NeroAacEnc で音声エンコードを行います。
       AAC-LC ビットレート指定, 128kbps, 2pass

~(中略)~

auo [warning]: 出力ファイルサイズ 102.61 MB,
         ファイルビットレート 1593.72 kbps
auo [warning]: 上限ファイルサイズ 100.00 MB を上回ってしまいました。


で、こんなかんじでcrfでのエンコードが終わって、上限を上回ってしまった場合は、自動的に自動マルチパスモードに移行する。目標ビットレートは上限設定から自動的に計算。

--------------------------------------
[S:\test_crf2.mp4] (1 / 2 pass)
--------------------------------------
auo [warning]: 目標ビットレートを 1423 kbpsに設定します。
auo [info]: converting YUY2 -> nv12p, using SSE2
auo [info]: x264 options...
--preset slow --bitrate 1423 --pass 1 --stats "S:\test_crf2.stats"
~(中略)~ -o "nul" "-"

~(中略)~

--------------------------------------
[S:\test_crf2.mp4] (2 / 2 pass)
--------------------------------------
auo [info]: converting YUY2 -> nv12p, using SSE2
auo [info]: x264 options...
--preset slow --bitrate 1423 --pass 3 --stats "S:\test_crf2.stats" ~(中略)~ -o "S:\test_crf2.mp4" "-"

~(中略)~

auo [info]: 出力ファイルサイズ 99.72 MB,
       ファイルビットレート 1548.91 kbps
auo [info]: 指定された上限を下回っていることを確認しました。
auo [info]: 総エンコード時間 : 0時間 7分44.1秒


ここまで行けば終了。


この流れは、図にすると

x264guiEx_auto_npass_1_70_crf

こんな感じ。



x264guiEx 1.70では、音声によるビットレート再調整も行えるようにしたけど、上限確認付き品質基準VBR(crf)で上限をオーバーする場合はたいてい上限を大幅に上回ってしまう。そのため、音声での再調整はできずに上に書いたような自動マルチパスを使った再調整になると思う。

(音声のビットレートはそもそも小さいことが多く、音声側による調整には限界がある。)

ニコ動プレミアム用の動画を作る場合、現在上限は100MB。3分とかの短い動画ならcrfでオーバーすることはほとんどなく、crfでぱぱっとやってしまうのがいいんじゃないかなと思う。

プリセットの方は6分以内のほうを「上限確認付き品質基準VBR(crf)」、6分以上を「自動マルチパス」で作ってあるけど…まあエンコ対象によって結構違うので、6分というのはおおまかな値。
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

rigaya

Author:rigaya
アニメとか見たり、エンコードしたり。
連絡先(@を半角にしてください!)
rigaya34589@live.jp
github

最新記事
最新コメント
カテゴリ
月別アーカイブ
カウンター
検索フォーム
いろいろ
公開中のAviutlプラグインとかのダウンロード

○Aviutlプラグイン
x264guiEx 2.xx (ミラー)
- x264を使用したH264出力
- x264guiExの導入>
- x264.exeはこちら>

x265guiEx (ミラー)
- x265を使用したH.265/HEVC出力
- x265.exeはこちら>

QSVEnc + QSVEncC (ミラー)
- QuickSyncVideoによるH264出力
- QSVEncCはコマンドライン版
- QSVEncC 導入/使用方法>
- QSVEncCオプション一覧>

NVEnc + NVEncC (ミラー)
- NVIDIAのNVEncによるH264出力
- NVEncCオプション一覧>

VCEEnc + VCEEncC (ミラー)
- AMDのVCEによるH.264出力

ffmpegOut (ミラー)
- ffmpeg/avconvを使用した出力

自動フィールドシフト (ミラー)
- SSE2~AVX2による高速化版
- オリジナル: aji様

エッジレベル調整MT (ミラー)
- エッジレベル調整の並列化/高速化
- SSE2~AVX対応
- オリジナル: まじぽか太郎様

バンディング低減MT (ミラー)
- SSE2~AVX2による高速化版
- オリジナル: まじぽか太郎様

PMD_MT (ミラー)
- SSE2~FMA3による高速化版
- オリジナル: スレ48≫989氏

透過性ロゴ (ミラー)
- SSE2~FMA3によるSIMD版
- オリジナル: MakKi氏

AviutlColor (ミラー)
- BT.2020nc向け色変換プラグイン
- BT.709/BT.601向けも同梱

○その他
x264afs (ミラー)
- x264のafs対応版

aui_indexer (ミラー使い方>)
- lsmashinput.aui/m2v.auiの
 インデックス事前・一括生成

auc_export (ミラー使い方>)
- Aviutl Controlの
 エクスポートプラグイン版
 エクスポートをコマンドから

aup_reseter (ミラー)
- aupプロジェクトファイルの
 終了フラグを一括リセット

CheckBitrate (ミラー, 使い方, ソース)
- ビットレート分布の分析(HEVC対応)

チャプター変換 (ミラー使い方>)
- nero/appleチャプター形式変換

エッジレベル調整 (avisynth)
- Avisynth用エッジレベル調整

メモリ・キャッシュ速度測定
- スレッド数を変えて測定

○ビルドしたものとか
L-SMASH (ミラー)
x264 (ミラー)
x265 (ミラー)

○その他
サンプル動画
その他

○読みもの (ミラー)
Aviutl/x264guiExの色変換
動画関連ダウンロードリンク集
簡易インストーラの概要

○更新停止・公開終了
改造版x264gui
x264guiEx 0.xx
RSSリンクの表示
リンク
QRコード
QR