x264guiEx 0.04
x264guiEx 0.04です。
x264 r1804,r1820でも大丈夫です。
x264 r1804,r1820でも大丈夫です。
更新
・GUIの表示・レイアウトを一部変更
今までのままだといろいろと限界だったので整理した。おかしな表示とかあったし。
・--cqmfileにGUIで対応
・GUIの --open-GOPがきちんと反映されていなかった問題を修正
・GUIの --log-level、--slow-firstpassがエンコード時には指定されるのに、GUI設定時は表示されない問題を修正
・afs使用時のtcfile自動消去を追加(mux成功時のみ)
・自動マルチパス + afs時に、「設定ビットレート通りになるよう、強引に補正する」機能を追加
この名前からして怪しい機能は、名の通り実にインチキくさいと思う。ようはafsを使うとdropによってフレームレートが変化するので、タイムコードをmuxするとビットレートも変化してしまう結果、2passで指定した通りのビットレートにならない。そうすると2passの意味がないので、1pass目で取得したdrop数からそれを相殺するようにビットレート計算をしてx264に渡すというもの。
なんか書いてても、言ってる意味が分からなさそうな文章なので、具体例で説明してみる。
たとえば、2000frameエンコードするとして、
自動2passで1000kbpsを指定したとする。
で、afsによって400frame dropしたとすると、タイムコードmux前は 1000kbpsでも、タイムコードmux後の実レートは
1000(kbps)×( (2000 - 400) / 2000 ) = 800(kbps)になってしまい、
あれー?なして? みたいなことになる。
そこで「強引に補正」っていうのは、1pass目の時に400frame dropするとわかったなら、
1000(kbps)×( 2000 / (2000 - 400) ) = 1250(kbps)をx264に指定してやるってこと。
タイムコードmux前が 1250kbpsだと、
タイムコードmux後の実レートは
1250(kbps)×( (2000 - 400) / 2000 ) = 1000(kbps)
このようにするとタイムコードmux後の実レートが 1000kbpsになるようにする。
問題は1pass目と2pass目で違うビットレートを指定して本当にいいのかとか、やっぱインチキだろとか。
まあ、パイプ方式っていうのはこういうところが難しい。
・x264guiExDefault.iniで、デフォルトのコマンドラインで、インターレースに関する指定を、
--no-interlaceのみから、--tff --no-interlace のように変更。
デフォルトはインターレースオフなんだけど、インターレースオンの時に--tffと--bffのどちらがデフォルトなのかを指定する必要があった。そうでないとGUIでtffにもbffにもチェックが入ってない怪しい状態になる。
・今後の設定ファイルの互換性向上を行った。
今後設定ファイルの構造が変化しても、
x264のパラメータの大半は常に復活できるようにした。
音声の設定、パスの設定等は復活しない。
また v0.03とそれ以前 -> v0.04 時は復活しない。あくまでv0.04 -> v0.xx(あれば)の話。
・Aviutlのコピーフレーム指定に対応
・afs不使用時のみ、Aviutlのキーフレーム指定に対応 (--qpfile自動生成、Iフレーム指定)
afs使用時は対応せず。dropがどこで来るかわからない以上、難しい。
Kフレーム指定でなく、Iフレーム指定にしたのは、Aviutlでキーフレームを指定するというのは、そこでファイルを分割したいという意図もあるかもしれないので、open-GOPに関係なく確実に問題なく分割できる(であろう)Iフレーム指定にした。…IDRフレームとかの理解が間違っていたらごめん。
・かげろう氏のコピーフレームやキーフレームについてのご指摘・ご助言に感謝します。
なんかよくmuxに失敗するっていう話なんだけど、うーん。私の環境ではほとんど失敗しないんでなんとも。
muken氏がtc2mp4Modの同梱mp4boxを更新してくださったので、それを使うか、こちら(POP氏)のもいいかもしれない。
ダウンロード>>
・GUIの表示・レイアウトを一部変更
今までのままだといろいろと限界だったので整理した。おかしな表示とかあったし。
・--cqmfileにGUIで対応
・GUIの --open-GOPがきちんと反映されていなかった問題を修正
・GUIの --log-level、--slow-firstpassがエンコード時には指定されるのに、GUI設定時は表示されない問題を修正
・afs使用時のtcfile自動消去を追加(mux成功時のみ)
・自動マルチパス + afs時に、「設定ビットレート通りになるよう、強引に補正する」機能を追加
この名前からして怪しい機能は、名の通り実にインチキくさいと思う。ようはafsを使うとdropによってフレームレートが変化するので、タイムコードをmuxするとビットレートも変化してしまう結果、2passで指定した通りのビットレートにならない。そうすると2passの意味がないので、1pass目で取得したdrop数からそれを相殺するようにビットレート計算をしてx264に渡すというもの。
なんか書いてても、言ってる意味が分からなさそうな文章なので、具体例で説明してみる。
たとえば、2000frameエンコードするとして、
自動2passで1000kbpsを指定したとする。
で、afsによって400frame dropしたとすると、タイムコードmux前は 1000kbpsでも、タイムコードmux後の実レートは
1000(kbps)×( (2000 - 400) / 2000 ) = 800(kbps)になってしまい、
あれー?なして? みたいなことになる。
そこで「強引に補正」っていうのは、1pass目の時に400frame dropするとわかったなら、
1000(kbps)×( 2000 / (2000 - 400) ) = 1250(kbps)をx264に指定してやるってこと。
タイムコードmux前が 1250kbpsだと、
タイムコードmux後の実レートは
1250(kbps)×( (2000 - 400) / 2000 ) = 1000(kbps)
このようにするとタイムコードmux後の実レートが 1000kbpsになるようにする。
問題は1pass目と2pass目で違うビットレートを指定して本当にいいのかとか、やっぱインチキだろとか。
まあ、パイプ方式っていうのはこういうところが難しい。
・x264guiExDefault.iniで、デフォルトのコマンドラインで、インターレースに関する指定を、
--no-interlaceのみから、--tff --no-interlace のように変更。
デフォルトはインターレースオフなんだけど、インターレースオンの時に--tffと--bffのどちらがデフォルトなのかを指定する必要があった。そうでないとGUIでtffにもbffにもチェックが入ってない怪しい状態になる。
・今後の設定ファイルの互換性向上を行った。
今後設定ファイルの構造が変化しても、
x264のパラメータの大半は常に復活できるようにした。
音声の設定、パスの設定等は復活しない。
また v0.03とそれ以前 -> v0.04 時は復活しない。あくまでv0.04 -> v0.xx(あれば)の話。
・Aviutlのコピーフレーム指定に対応
・afs不使用時のみ、Aviutlのキーフレーム指定に対応 (--qpfile自動生成、Iフレーム指定)
afs使用時は対応せず。dropがどこで来るかわからない以上、難しい。
Kフレーム指定でなく、Iフレーム指定にしたのは、Aviutlでキーフレームを指定するというのは、そこでファイルを分割したいという意図もあるかもしれないので、open-GOPに関係なく確実に問題なく分割できる(であろう)Iフレーム指定にした。…IDRフレームとかの理解が間違っていたらごめん。
・かげろう氏のコピーフレームやキーフレームについてのご指摘・ご助言に感謝します。
なんかよくmuxに失敗するっていう話なんだけど、うーん。私の環境ではほとんど失敗しないんでなんとも。
muken氏がtc2mp4Modの同梱mp4boxを更新してくださったので、それを使うか、こちら(POP氏)のもいいかもしれない。
ダウンロード>>
スポンサーサイト