x264guiEx 1.34

いろいろ機能を追加した。


設定ファイル(stgファイル)の表示を、フォルダ構造を反映して表示できるようにした。
設定ファイルが増えて、ごちゃごちゃしてきた時に、整理できるように。

設定ファイルの新規保存もフォルダを指定できるようにした。

ニコ動のエコ回避設定ファイル(stgファイル)を一般用とプレミアム用に分けた。
とりあえず、ニコ動向けにはこのプロファイル(設定ファイル)をもとにいじっていくといいと思う。

ポップアップヘルプの誤字修正。
weightb。ご指摘感謝です。

メモリ使用量を少し削減。

x264 r2183での--output-csp rgbの仕様変更に対応。
並べ替えが不要になったようだ。

設定保存処理を改良。

x264guiEx.iniのmkvmerge用コマンドラインで、mkvmerge v5.2.0以降だとタイムコードmux用コマンドが --timecodes 0:"%{tcpath}" でなければならないので変更。
逆に古いmkvmergeだと、muxに失敗するようになってしまうので、x264guiEx 1.34に更新する場合、mkvmergeもついでに更新してみてください。もちろん、mp4出力をしていて、mkvmergeを使用しない場合は関係ありません。

簡易ビットレート計算機で、動画の長さをフレーム数 + フレームレートでも計算できるようにした。
時分秒での指定とフレーム数での指定は下のボタンで切り替えられる。

自動マルチパスで、上限をオーバーしてしまい自動再エンコードが行われる際に、上限オーバーしてしまった動画を削除しない設定を追加。
その他の設定から。




ダウンロード>>

x264guiExの導入>



前回の補足 (自動マルチパス上限設定)

自動マルチパスで上限設定した場合、--bitrateで指定されるビットレートは、
・目標ビットレートで指定した値
・(上限により計算されるレート - 音声レート) - (適当な余裕)
のどちらか小さい方になる。

これで、殆どの場合は問題ないけれど、これでも上限をオーバーした場合には、さらに目標レートを少し下げて再エンコードするようになってる。

まあ、あまり考えなくてもいい感じの動画を作ってくれる…はず。
スポンサーサイト



コメントの投稿

非公開コメント

お礼

ビットレート計算のフレーム数入力に対応していただきありがとうございました。

今回のstgのフォルダ参照といい、すばらしいです。

なお、fpsの入力について検討されていたようですが、MeGUIでは主要なフレームレートはプルダウンで選択(23,976、24、25、29,97、30、50、60)、それと手入力のフレームレート(一度入力したフレームレートは記憶して2度目からは選べる)というものになっていました。

ご参考までにお伝えします。

No title

いつも便利に使わせていただいております。
今現在のVerは1.33での質問です。

自動上限設定で655Kbpsに設定し、
映像595Kbps、音声56Kbpsでエンコードしたところ
エンコード前に映像575Kbpsに落とされてしまって
(auo [warning]: 上限ビットレートの設定を守るには、指定された目標ビットレートは大きすぎます。
auo [warning]: 目標ビットレートを 595 kbps -> 575 kbpsに変更します。)
今まで毎回ギリギリで通していたものなので便利になった!
と思ったら下がりすぎてしまいました・・・。
ここの部分の適当な余裕というのはどの程度あるのでしょうか?

また1.34での>上限オーバーしてしまった動画を削除しない設定
というのは上のようなエンコード前に調整されてしまうものには効果はありますか?

No title

1.33での問題なんですが・・・

追加コマンドにコマンドを入力した後、反映させてそのまま設定を保存すると、出力時に反映させた設定と追加コマンドがダブ(同じコマンドが2重に入力)ってしまう問題があるようです。

使い方の問題なのかもしれませんが、同じコマンドが多重にならないようにチェックを入れるか、コマンドが反映されている場合は追加コマンド部分は無視する機構があると便利かと・・・

引数のダブりについて

確かに追加コマンドの引数が2重に渡されることがありますね。
例えば、aq-mode3を試したときですが、
AQをデフォルトのVAQにしておき、追加コマンドに--aq-mode 3を記述すると、引数に--aq-mode 3が2回引き渡されました。
エンコードはされますし、ちゃんと動作はしているようなのですが。

No title

>Rin様
1.34の「上限オーバーしてしまった動画を削除しない設定」はおっしゃている内容には効果ありません。

"適当な余裕"はその名の通り、結構適当な計算で求めています。
音声を除いた映像のビットレートの上限(これをxとします)を計算して、
100kbps なら -10kbps(-10%)
400kbps なら -20kbps(-5%)
1600kbpsなら -40kbps(-2.5%)

というふうになっています。
計算式としては、
余裕(kbps) = x * (A / 100) / sqrt(x/100)
です。(sqrt()は平方根)
また、現在はA = 10です。

これはなんとなくわたしの直感で「こんなかんじかな~」ってなものを計算式にしたものです。

計算式のAの値で余裕の大きさを調整できるわけですが、「上限を上回ったので3回目」が起こりにくいよう、結構余裕は大きめにとり、A=10となっています。A=8ぐらいにすると、余裕が小さくなり、頻繁に3回目が発生するのでA=10にしたという経緯があります。

ただ、上限ぎりぎりを目指すのが2passエンコの意義であることも確かです。(というよりやるからには狙いたくなる)

余裕の大きさ(つまり"A"の値になるわけですが)を設定できるようになるといい感じでしょうか?


>hoge様、shakunin様
…なるほど。言われてみるとそうですね。

x264では後から渡されたオプションが使用されるため、特に問題はない(コマンド入力欄が優先される)ので、あまり気にしてませんでした。

が、たしかに気持ち悪いですね。う~ん。

No title

なるほど、詳しくありがとうございます。

そうですね、直接余裕を設定できるといいと思います。
もしくはオーバーした場合の下げる幅を設定するように、とかでしょうか。

あとは最終的な調整は音声の方のビットレートで行うこともありますね。
以前は音声は一定値しか選べなかったので外で直接Nero叩いてましたが今なら1Kbps単位で調整できるようにしていただけたので可能でしたらこちらも考慮いただけると映像をエンコードしなおすより格段に早いのでいいかもしれません。

自分はオーバーしたときは1Kbps単位で調整してたもので・・・
バッチで1Kbps単位で5個ほど同時に通したりしましたし。

Re: No title

音声での調整は、2つの問題から見送っています。

・例えば、4000kbpsのように映像レートが大きい時に、振れ幅が比較的大きくなるので、音声側で吸収しにくい。まあ、こんな大レートで2passすることもあまりないとは思いますが、そういうことも考えないといけないので。

・音声エンコーダの設定をビットレート指定に制限しなくてはいけないのと、音声レートを変えると適切な設定が変化する場合がある。(ようはAAC-LCを使うのか、HE-AACにするのか、ということです。)

おっしゃるように上限オーバー時に音声で調整するのは、速くてよいのは確かなのですが、上に挙げた問題点をうまく処理するためには、かなり細かく条件分岐をする必要があり、難しい(というかさすがに面倒)です。

そこでv1.33の実装としては、大きめに余裕をとり、上限オーバーの可能性を少なくしつつ、それでもオーバーした時だけ動画再エンコする、というようにしました。まあ、「お手軽エンコとしてはこんなもんじゃない?」というわけでして。

ただ現在の余裕設定は、ぎりぎりエンコしたい、というのには向いていません。とりあえず、余裕の大きさ(の目安たる例の"A")を設定できるようにしてみようと思います。

No title

たしかに考慮するべき点が一気に増えてしまいますね。
特定の環境しか考えておらず浅薄でした。

回答ありがとうございました。
これからも応援しています。
プロフィール

rigaya

Author:rigaya
アニメとか見たり、エンコードしたり。
連絡先: rigaya34589@live.jp
github twitter

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

○Aviutl 出力プラグイン
x264guiEx 3.xx
- x264を使用したH264出力
- x264guiExの導入紹介動画>
- x264guiExの導入
- x264guiExのエラーと対処方法>
- x264.exeはこちら>

x265guiEx
- x265を使用したH.265/HEVC出力
- x265guiExの導入>
- x265.exeはこちら>

QSVEnc + QSVEncC
- QuickSyncVideoによるHWエンコード
- QSVEnc 導入/使用方法>
- QSVEncCオプション一覧>

NVEnc + NVEncC
- NVIDIAのNVEncによるHWエンコード
- NVEnc 導入/使用方法>
- NVEncCオプション一覧>

VCEEnc + VCEEncC
- AMDのVCE/VCNによるHWエンコード
- VCEEnc 導入/使用方法>
- VCEEncCオプション一覧>

svtAV1guiEx
- SVT-AV1によるAV1出力
- svtAV1guiExの導入>
- SVT-AV1単体はこちら>

VVenCguiEx
- VVenCによるVVC出力
- VVenCguiExの導入>

ffmpegOut
- ffmpegを使用した出力
- ffmpegOutの導入>


○Aviutl フィルタプラグイン
自動フィールドシフト (ミラー)
- SSE2~AVX512による高速化版
- オリジナル: aji様

clfilters 
- OpenCLベースの複数のGPUフィルタ集
- 対応フィルタの一覧等はこちら

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

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

PMD_MT
- SSE2~AVX512による高速化版
- オリジナル: スレ48≫989氏

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

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

○その他
Amatsukaze改造版
- AmatsukazeのAV1対応版

rkmppenc
- Rockchip系SoCのhwエンコーダ

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 (ミラー)
SVT-AV1 (ミラー)

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

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

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