x264guiEx 1.35

要望のあったものの追加。

v1.33で追加した、上限ビットレート指定について、自動計算される余裕の大きさを設定できるようにした。
その他の設定から。

通常のx264guiEx.iniの代わりに専用のx264guiEx.iniを使用することで、muxerとしてmp4boxの代わりにL-SMASH(remuxer)を使用することもできるようにした。
L-SMASH remuxerに対応して、音声alacも普通にmuxできるようにして欲しいという要望があったので。
使用法が多少ややこしいので、続きに詳しく書きました。よくわからない人はこれまでどおりmp4boxを使用してください。

・その他細かい修正。

※今回はx264guiEx.iniも更新が必要です。
といっても通常のmp4box用での変更は、
[SETTING_MUXER_TC2MP4]

base_cmd=" -i "%{vidpath}" %{au_cmd} -o "%{muxout}" %{tc_cmd} -O " -brand mp42 %{ex_cmd} %{tmp_cmd} ""

base_cmd=" -i "%{vidpath}" %{au_cmd} -o "%{muxout}" %{tc_cmd} -L "%{mp4muxerpath}" -O " -brand mp42 %{ex_cmd} %{tmp_cmd} ""
だけなので、上の一行を書き換えてもらえればOKです。



ダウンロード>>

x264guiExの導入>




まず、余裕の大きさの設定について。

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

今回設定できるのは、この"適当な余裕"の大きさ。

「その他の設定」の「自動マルチパス」タブ(新設)から設定できる。

スライドバーを適当に弄ってみると、自動計算される余裕の大きさが変わるのがわかると思う。

余裕の大きさを小さくすると、上限ぎりぎりのサイズになる可能性が上がるけども、逆に上限を超えて再エンコードとなり、時間がかかってしまう可能性が上がる。

デフォルトの余裕の大きさ「10」はあまり再エンコードがかからないよう大きめの余裕設定になっている。お手軽自動マルチパスとしてはこのぐらいでいいと思うけど、もっとぎりぎりを目指したい人は(再エンコードが頻繁に必要になることを覚悟して)この余裕を小さくするといいかもしれない。



次にL-SMASH対応について。

v1.33でqaac/refalac用設定をx264guiEx.iniに追加したわけだけど、「alacはmp4boxで格納できず、L-SMASHでやるしかない」との要望があったので、対応してみた。


L-SMASHはmp4コンテナを取り扱うためのライブラリで、mp4の規格に忠実な実装が行う、という方針で開発されている。x264のmuxerとして使用されていたり(x264_L-SMASH)、remuxer/muxerなどを使用すれば単体でmp4 muxできる。
猫科研究所 - L-SMASH
github - L-SMASH

L-SMASHはPOP氏がビルドして下さっています。
http://pop.4-bit.jp/(左上から)

今回はL-SMASH用の設定が書かれたx264guiEx.iniを使用することで、x264guiExでL-SMASH remuxer/muxerを使用できるようにしたということ。

x264guiExでL-SMASHを使用するための手順。

1) 「L-SMASH muxer用のいろいろ」フォルダに入ってるx264guiEx.iniをpluginフォルダに入れます(通常版を上書き)。

2) x264guiExの設定画面から、「remuxer.exeの指定」「timelineeditor.exeの指定」を行います。

3) L-SMASH remuxer.exeは、rawストリーム(AAC-ADTSなど)のmux(多重化)に対応していません。音声エンコーダがrawストリームを出力する場合には、加えてL-SMASH muxer.exeによるmp4への格納が必要になるので、これはwrapperバッチファイルを用意することで対応しました。

wwapper.bat内で、音声エンコ → muxer.exeでmp4に格納、の手順を行なっている。

この処置が必要なのはfawcl、Lame(mp3)、ffmpeg(AC3)、ext_bs。
手順は、
- それぞれのエンコーダに対応するwrapper.batを、L-SMASH muxer.exeとともにエンコーダ実行ファイルのある場所と同じフォルダに配置する。

- x264guiExの設定画面から、wrapper.batを指定する。

のようにする。



L-SMASHの実行ファイルについて。(POP氏ビルド r512)

ご存知の人も多いだろうけど、大雑把にL-SMASHの実行ファイルについて。細かいオプションなどは書くとごちゃごちゃしてわかりにくくなるので、もっとも基本的な使い方だけ。


muxer.exe -i <rawストリームのファイル> [-i <rawストリームのファイル>] -o <出力mp4ファイル名>

muxer.exeは、rawストリームをmp4へ格納したり、rawストリーム同士を多重化したりできる。

rawストリームってのはAAC raw (AAC-ADTS)とか、H.264/AVC ES(Elemetary Stream)とか。

neroaacencとか、qtaacencとか、デフォルトのqaacの出す音声はあらかじめmp4に入ったAACだけど、fawclとかの出すAACはraw AAC (AAC-ADTS)だったりして罠にハマる。(まあ、MediaInfoで見れば一発でわかるけど。)


remuxer.exe -i <入力mp4ファイル1> [-i <入力mp4ファイル2>] -o <出力mp4ファイル>

remuxer.exeはmp4に格納されたファイルどうしのmux(多重化)。


timelieneditor.exe --timecode <タイムコードファイル> <入力mp4ファイル> <出力mp4ファイル>

タイムコードをmp4に反映させる。x264guiExで自動フィールドシフト使用時はこれを使う。


mp4boxのように「#」「%」使えないトラップが仕込まれていたりしないのがいいですね。



というわけで、全体の流れとしては、

1. 動画エンコ
x264.exe [オプション] -o <out_video.mp4> <入力ファイル>

2. 音声エンコ
neroaacenc.exe [オプション] -if <入力音声ファイル> -of <out_audio.m4a>

or
fawcl.exe <偽装wavファイル> <out_audio.aac>
muxer.exe -i <out_audio.aac> -o <out_audio.m4a>


3. mux
remuxer.exe -i <out_video.mp4> -i < out_audio.m4a> -o <out_movie.mp4>

4. 必要ならさらに…
timelineeditor.exe --timecode <タイムコードファイル> <out_movie.mp4> <out_movie_new.mp4>


コマンドラインから実行する場合、x264_L-SMASH使って、

neroaacenc.exe [オプション] -if <入力音声ファイル> -of <out_audio.m4a>
x264_lsmash.exe [オプション] [--timecode <タイムコードファイル>] --audiofile <out_audio.m4a> --acodec copy -o <out_movie.mp4>
<入力ファイル>
or
fawcl.exe <偽装wavファイル> <out_audio.aac>
x264_lsmash.exe [オプション] [--timecode <タイムコードファイル>] --audiofile <out_audio.aac> --acodec copy --ademuxer lsmash -o <out_movie.mp4> <入力ファイル>

のほうがシンプルですがね。
スポンサーサイト

コメントの投稿

非公開コメント

No title

更新お疲れです
そういえばqaac/refalacとともに対応したAnonEncoderの方は
サイト完全に閉鎖しちゃってますねw

No title

再生できるプレイヤーはVLCぐらいしかないのでiOSで利用可能なALACよりさらに使う人少ないと思いますが
MPEG-4 フォーマット標準ロスレスコーデックのMPEG-4 ALSというコーデックもありますね。
remuxer.exeでも利用可能みたいなのでALACと並んでロスレスエンコーダ選択肢の1つとしてあってもいいかもしれませんね。(mp4alsRM23.exe)
http://www.google.co.jp/search?q=mpeg4+als
http://www.nue.tu-berlin.de/menue/forschung/projekte/beendete_projekte/mpeg-4_audio_lossless_coding_als/parameter/en/

No title

追記です
mp4alsRM23.exeにシーク対策用の-r#というオプションがあるのですが最良と思われる-r-1のときにmuken氏が苦言(?)を呈してる(?)のでもっと調べる必要があったかもしれません。(remuxer.exe以外のツールの可能性が高いですが・・・)
1年立っているので事態がどう変わっているかわかりませんので実装の判断はお任せします。
自分がremuxer.exeを使う分には-r-1のALSであってもなにも問題なかったのですがご迷惑おかけするわけにはいかないので追記させて頂きます

https://twitter.com/#!/MP4_maniac/statuses/42283356964134912

No title

-r-1に特に問題はありませんよ。
問題が起こりうるのはむしろデフォルトの-r0の方。

ALSをmp4コンテナに格納する場合、ランダムアクセス単位でALSフレームを1つのサンプルに纏める仕様となっているため、デフォルトの-r0は全てのALSフレームを一つのサンプルに纏める必要があり、ファイルアクセスに問題が生じる可能性があるのです。(映像と音声のインターリーブはサンプル単位で行う必要があります。)

そのような事情で全てのALSフレームでランダムアクセス可能にする-r-1が推奨されます。

# 仕様書(14496-3:2009)からの引用
11.5.1.2 frame_data
This is the top level payload of ALS. If random_access > 0, the number of payloads mapped into one access
unit equals the value of random_access (1…255). In this case, the size of each access unit can be stored in
ra_unit_size. If random_access = 0, all payloads are mapped into the same access unit.

3ch以上のALACは最近のオープンソース化にあたって仕様が判明したばかりか、3ch以上のALAC in MP4の再生はlibavcodecだけでなくQuickTime側でも対応していないらしいので、現状、3ch以上のロスレス エンコードではALSの方が推奨されると思われます。

No title

muken様、詳しくありがとうございます。

random access off(mp4alsRM23のデフォルト)だとうまくインターリーブされなくなってしまうのですね…。

次回更新時にmp4alsRM23.exeの設定を追加してみます。その際には必ず-r-1を指定しておきます。

No title

私の環境だけだとは思いますが一応報告です
WarpsharpMTフィルタを適用した状態だと、詳細設定の画面を出そうとビデオ圧縮のボタンを押すと、kernelbase.dllがうんたらこうたらのエラーが出ます。このバージョンに限ってではなくおそらくすべてのバージョン、そしてQSV出力のプラグインでも同様のエラーが起きました。
報告でした。

Re: No title

WarpSharpMTもいくつかバージョンがあるので、どれかにもよるのですが…。うーん。

WarpsharpMTを適応した状態だと…という条件が謎ですね。ちょっとわからないです、すみません。

No title

L-SMASH muxer使用時
チャプターファイルが無いのにチャプターmuxのチェックつけていると

auo [warning]: 指定されたチャプターファイルが存在しません。チャプターはmuxされません。

が表示されるがチャプターmuxするコマンドラインが使用されて
VIDEOAODIOが正常にmuxされません

できればmp4box使用時と同じようにチャプターファイルがなくてもmuxするようにして欲しいです。

Re: No title

x264guiEx 1.36にて対応しました。
http://rigaya34589.blog135.fc2.com/blog-entry-212.html

ぜひ更新してみてください。
プロフィール

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