x264guiEx の導入
guiExの使い方書いたの 0.00とかのころだから、書き直しておこうかと。といってもあんま変わってないので、一応書いておこう、ぐらい。
(追記)この記事は公開終了としたx264guiEx 0.xx用です。現在公開中のx264guiEx 1.xx用の導入記事はこちら>> 拡張 x264 出力(GUI) Ex は、seraphy氏 の 拡張 x264 出力(GUI) を改造し、パイプを利用することで、x264を分離したものです。
x264が別プロセスであるため、64bitOSでは64bit版のx264が使え、32bitのx264に比べ、エンコードの高速化が期待できます。
またパッチをあてたものなどさまざまなx264を選択することができます。多くの場合x264の更新のみで最新版のx264を使用できます。
そしてわたしがめんどくありません (おい
重要事項
・自己責任で。
動くとは限りません。また、出力が正しい(?)とも限りません。私に動画ファイルやエンコードのさほど深い知識があるわけではありませんので、あんまり細かいことを言われても困ります。
そのため、x264guiExを使用する場合、そのあたりをご理解いただき、自己責任でお願いします。
x264guiExの使用によるいかなる直接的・間接的・精神的ダメージを被っても責任はとりません。
ダウンロード
x264guiExの記事の下のほうの「ダウンロード>>」をクリックし、その先のページからダウンロードできます。
ダウンロードされたファイルは7z形式で圧縮されており、解凍が必要です。
この7z形式は
7-zip
http://sevenzip.sourceforge.jp/
lhaz
http://www.chitora.jp/lhaz.html
などで解凍できます。
準備
x264guiExの準備
Aviutl.exeと同じフォルダ、またはプラグインフォルダに
解凍して出てきたauoフォルダのなかに入っている
x264guiEx.auo、x264guiEx.ini、x264guiExDefault.ini
の3つを放り込んでください。こんなかんじ
また、以下のものが必要なので、
インストールしてください。
インストールされてれば必要ないです。
Aviutlが32bitアプリで、x264guiExも32bitです。
なので64bitOSであっても以下3つのものは32bit版(x86版)が必要です。
.Net Framework 2.0 SP2 (x86)
http://www.microsoft.com/downloads/details.aspx?familyid=5B2C0358-915B-4EB5-9B1D-10E506DA9D0F&displaylang=ja
リンク先のページの下のほうのこれ↓
.Net Framework 2.0 SP2 LanguagePack (x86)
http://www.microsoft.com/downloads/details.aspx?familyid=C69789E0-A4FA-4B2E-A6B5-3B3695825992&displaylang=ja
VC++ 2008 SP1 再頒布可能パッケージ (x86)
http://www.microsoft.com/downloads/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&displayLang=ja
それぞれダウンロードしたら普通にインストールします。
必要なものを集める
以下のものが必要になるのでとりあえず集めてください。
ダウンロード先の例を書いておきます。
探せばこのほかにも見つかるものもあります。
x264
・8bit depth のもの
・x86版(32bit版) / 64bitOSなら x64版(64bit版) も可。
http://x264.nl/
OSが32bitか64bitかは「コンピュータ」を右クリックして「プロパティ」から確認できます。Win7の例
neroaacenc (aacエンコーダ)
http://www.nero.com/jpn/technologies-aac-codec.html
mp4box (mp4 muxer, mp4作成時に必要)
http://www.videohelp.com/tools/mp4box
※こちらで配布されているmp4boxの 0.4.6 rev2735 はMSVCR100.dllが必要なようです。MSVCR100.dllはVisual C++ 2010 再頒布可能パッケージ (x86)に含まれますので、インストールされていない場合、Visual C++ 2010 再頒布可能パッケージ (x86)をインストールしてください。
POP氏(http://pop.4-bit.jp/)のビルドされているmp4boxか、tc2mp4mod同梱のmuken氏ビルドのmp4boxなどのほうがややこしくなくておすすめかも。
tc2mp4mod (mp4 vfr化, 自動フィールドシフトを使用してmp4作成する場合必要)
http://vfrmaniac.fushizen.eu/OtherStuff/
mp4box同梱です。
mkvmerge (mkv muxer, mkv作成時に必要)
http://www.bunkus.org/videotools/mkvtoolnix/
その他あるといいかもしれないもの
qtaacenc (aacエンコーダ)
http://tmkk.pv.land.to/qtaacenc/ (要QuickTimeインストール)
lame (mp3 エンコーダ)
http://www.rarewares.org/mp3-lame-bundle.php
FAW+fawcl (FakeAACWave, aacを無劣化移行)
http://2sen.dip.jp/cgi-bin/friioup/upload.cgi?search=FakeAacWav&sstart=0001&send=9999
ext_bs
http://www.sakurachan.org/soft/mediatools/
ffmpeg
http://blog.k-tai-douga.com/
oggenc2 (Ogg Vorbis, mkv用)
http://www.rarewares.org/ogg-oggenc.php
x264guiExの確認
Aviutlを起動して、その他 > 出力プラグイン情報 から x264guiEx.auo が認識されているか確かめます。
認識されていない場合、
.Net Framework 2.0 SP2 / .Net Framework 2.0 SP2 LanguagePack / VC++ 2008 SP1 再頒布可能パッケージ (x86) あたりのインストールを忘れている or インストールに失敗している などが考えられます。
x264guiExの設定と使用
エンコード時に設定画面を開いたら、
・x264.exeの場所
・音声エンコーダの場所
・muxerの場所
を指定してください。
自動フィールドシフトを使用する際にはtc2mp4modの場所も指定する必要があります。忘れないでください。
クリックで拡大
エンコードのパラメータを調整してください。
x264に渡される予定のコマンドが下部表示欄に出ます。
実際には、下部表示欄に出たものに、次のコマンドを自動的に追加したものが渡されます。
- コマンド入力欄のコマンド
- 解像度情報 (--input-res)
- 色空間情報 (--input-csp yv12)
- フレーム数情報 (--frames) (自動フィールドシフト使用時を除く)
- フレームレート情報 (--fps) (--tcfile-in を指定した場合は付加されない)
- 出力先情報 (-o)
- 入力元情報 (パイプ "-")
また、一部はGUI独自の機能としてエンコード時に自動的に置換されるオプションがあります。
OK をクリックして、設定画面を閉じる
出力ファイル名を指定して、保存 -> エンコード開始。
注意事項
・自動フィールドシフト使用上の制限
自動フィールドシフト使用時はx264のvbv関連のものは正しく反映されません。これは、エンコード中にタイムコードを取得して、あとからタイムコードを反映させるためです。自動フィールドシフトのタイムコード取得はエンコードを1回は回さなければ得られないため、どうしようもありません。
・2passの制限
重要なことですが、自動フィールドシフト(afs)を有効にした場合、
「自動マルチパス」以外の方法での2-pass(およびn-pass)エンコードは
失敗します。これは afsによるdrop数が2pass目以降
事前にわかっていなければならないためです。
自動フィールドシフトを使わない場合は問題ないです。
・コマンド入力欄のパラメータチェックは行いません。
これによってパッチをあてたx264にもある程度対応できるはずです。
一方で間違ったコマンドラインも素通りさせてしまうので、
間違っていると、エンコードされませんので注意してください。
・パイプを作成するには、CreateProcess関数なるものを使うのですが、調べると管理者権限が必要なことがあるっぽいことが書いてありますのでそこらへんよろしくです。
・Aviutlのキーフレーム指定に対応させるには、拡張オプションの「非afs時もAviutlのキーフレーム検出をスキップする」のチェックを外してください。
エンコード前にAviutlのキーフレーム指定を検出し、qpfile用の自動生成してx264 の --qpfile を使って反映させます。
自動シールドシフト(afs)使用時は無効です。
(dropがいつ来るかわからないため)
また、コマンド入力欄で--qpfileを使用した場合も無効です。
Aviutl内蔵の自動24fps化を使用すると検出速度が遅くなります。(~10fps)
あと詳しくはx264guiEx_readmeを。
その他
・x264afsってなんぞ
x264afsは自動フィールドシフトをavisynthで使用するためのx264改造版で、もとはseraphy氏が公開されていたものです。
誤解を招きそうなので書いておきますが、x264guiExで自動フィールドシフトを使用するからと言って、x264afs.exeを使わなければならないということではありません。もちろん使ってもいいですが、ほかの方のビルドしているx264で問題ないです。
・x264 の --sar が反映されない?
最近のx264(r1876とそれ以降)での一部の--sarの指定がHaali Media Splitterを使用した再生環境だと反映されない問題があります。2011.03.03に "Added more H.264 aspect ratio options" とあるのですが…2011.03.03版では私は反映されませんでしたorz
- x264 r1876より前のものを使う
- Haali Media Splitterのかわりにsarを反映してくれるLAVFilter(http://forum.doom9.org/showthread.php?t=156191)を使う
- mp4boxのparオプション付きでmuxしなおす
などで対処してください。
・ログウィンドウのちょっと透過ってなに & ログウィンドウの文字の色なんで水色?
→趣味です。
バグってたらどっかのコメント欄にでも。バグったタイミングとか、エラーメッセージとか、ログウィンドウになんて出てるかとか教えてくれるともっと助かります。はい。
(追記)この記事は公開終了としたx264guiEx 0.xx用です。現在公開中のx264guiEx 1.xx用の導入記事はこちら>> 拡張 x264 出力(GUI) Ex は、seraphy氏 の 拡張 x264 出力(GUI) を改造し、パイプを利用することで、x264を分離したものです。
x264が別プロセスであるため、64bitOSでは64bit版のx264が使え、32bitのx264に比べ、エンコードの高速化が期待できます。
またパッチをあてたものなどさまざまなx264を選択することができます。多くの場合x264の更新のみで最新版のx264を使用できます。
そしてわたしがめんどくありません (おい
重要事項
・自己責任で。
動くとは限りません。また、出力が正しい(?)とも限りません。私に動画ファイルやエンコードのさほど深い知識があるわけではありませんので、あんまり細かいことを言われても困ります。
そのため、x264guiExを使用する場合、そのあたりをご理解いただき、自己責任でお願いします。
x264guiExの使用によるいかなる直接的・間接的・精神的ダメージを被っても責任はとりません。
ダウンロード
x264guiExの記事の下のほうの「ダウンロード>>」をクリックし、その先のページからダウンロードできます。
ダウンロードされたファイルは7z形式で圧縮されており、解凍が必要です。
この7z形式は
7-zip
http://sevenzip.sourceforge.jp/
lhaz
http://www.chitora.jp/lhaz.html
などで解凍できます。
準備
x264guiExの準備
Aviutl.exeと同じフォルダ、またはプラグインフォルダに
解凍して出てきたauoフォルダのなかに入っている
x264guiEx.auo、x264guiEx.ini、x264guiExDefault.ini
の3つを放り込んでください。こんなかんじ
また、以下のものが必要なので、
インストールしてください。
インストールされてれば必要ないです。
Aviutlが32bitアプリで、x264guiExも32bitです。
なので64bitOSであっても以下3つのものは32bit版(x86版)が必要です。
.Net Framework 2.0 SP2 (x86)
http://www.microsoft.com/downloads/details.aspx?familyid=5B2C0358-915B-4EB5-9B1D-10E506DA9D0F&displaylang=ja
リンク先のページの下のほうのこれ↓
.Net Framework 2.0 SP2 LanguagePack (x86)
http://www.microsoft.com/downloads/details.aspx?familyid=C69789E0-A4FA-4B2E-A6B5-3B3695825992&displaylang=ja
VC++ 2008 SP1 再頒布可能パッケージ (x86)
http://www.microsoft.com/downloads/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&displayLang=ja
それぞれダウンロードしたら普通にインストールします。
必要なものを集める
以下のものが必要になるのでとりあえず集めてください。
ダウンロード先の例を書いておきます。
探せばこのほかにも見つかるものもあります。
x264
・8bit depth のもの
・x86版(32bit版) / 64bitOSなら x64版(64bit版) も可。
http://x264.nl/
OSが32bitか64bitかは「コンピュータ」を右クリックして「プロパティ」から確認できます。Win7の例
neroaacenc (aacエンコーダ)
http://www.nero.com/jpn/technologies-aac-codec.html
mp4box (mp4 muxer, mp4作成時に必要)
http://www.videohelp.com/tools/mp4box
※こちらで配布されているmp4boxの 0.4.6 rev2735 はMSVCR100.dllが必要なようです。MSVCR100.dllはVisual C++ 2010 再頒布可能パッケージ (x86)に含まれますので、インストールされていない場合、Visual C++ 2010 再頒布可能パッケージ (x86)をインストールしてください。
POP氏(http://pop.4-bit.jp/)のビルドされているmp4boxか、tc2mp4mod同梱のmuken氏ビルドのmp4boxなどのほうがややこしくなくておすすめかも。
tc2mp4mod (mp4 vfr化, 自動フィールドシフトを使用してmp4作成する場合必要)
http://vfrmaniac.fushizen.eu/OtherStuff/
mp4box同梱です。
mkvmerge (mkv muxer, mkv作成時に必要)
http://www.bunkus.org/videotools/mkvtoolnix/
その他あるといいかもしれないもの
qtaacenc (aacエンコーダ)
http://tmkk.pv.land.to/qtaacenc/ (要QuickTimeインストール)
lame (mp3 エンコーダ)
http://www.rarewares.org/mp3-lame-bundle.php
FAW+fawcl (FakeAACWave, aacを無劣化移行)
http://2sen.dip.jp/cgi-bin/friioup/upload.cgi?search=FakeAacWav&sstart=0001&send=9999
ext_bs
http://www.sakurachan.org/soft/mediatools/
ffmpeg
http://blog.k-tai-douga.com/
oggenc2 (Ogg Vorbis, mkv用)
http://www.rarewares.org/ogg-oggenc.php
x264guiExの確認
Aviutlを起動して、その他 > 出力プラグイン情報 から x264guiEx.auo が認識されているか確かめます。
認識されていない場合、
.Net Framework 2.0 SP2 / .Net Framework 2.0 SP2 LanguagePack / VC++ 2008 SP1 再頒布可能パッケージ (x86) あたりのインストールを忘れている or インストールに失敗している などが考えられます。
x264guiExの設定と使用
エンコード時に設定画面を開いたら、
・x264.exeの場所
・音声エンコーダの場所
・muxerの場所
を指定してください。
自動フィールドシフトを使用する際にはtc2mp4modの場所も指定する必要があります。忘れないでください。
クリックで拡大
エンコードのパラメータを調整してください。
x264に渡される予定のコマンドが下部表示欄に出ます。
実際には、下部表示欄に出たものに、次のコマンドを自動的に追加したものが渡されます。
- コマンド入力欄のコマンド
- 解像度情報 (--input-res)
- 色空間情報 (--input-csp yv12)
- フレーム数情報 (--frames) (自動フィールドシフト使用時を除く)
- フレームレート情報 (--fps) (--tcfile-in を指定した場合は付加されない)
- 出力先情報 (-o)
- 入力元情報 (パイプ "-")
また、一部はGUI独自の機能としてエンコード時に自動的に置換されるオプションがあります。
OK をクリックして、設定画面を閉じる
出力ファイル名を指定して、保存 -> エンコード開始。
注意事項
・自動フィールドシフト使用上の制限
自動フィールドシフト使用時はx264のvbv関連のものは正しく反映されません。これは、エンコード中にタイムコードを取得して、あとからタイムコードを反映させるためです。自動フィールドシフトのタイムコード取得はエンコードを1回は回さなければ得られないため、どうしようもありません。
・2passの制限
重要なことですが、自動フィールドシフト(afs)を有効にした場合、
「自動マルチパス」以外の方法での2-pass(およびn-pass)エンコードは
失敗します。これは afsによるdrop数が2pass目以降
事前にわかっていなければならないためです。
自動フィールドシフトを使わない場合は問題ないです。
・コマンド入力欄のパラメータチェックは行いません。
これによってパッチをあてたx264にもある程度対応できるはずです。
一方で間違ったコマンドラインも素通りさせてしまうので、
間違っていると、エンコードされませんので注意してください。
・パイプを作成するには、CreateProcess関数なるものを使うのですが、調べると管理者権限が必要なことがあるっぽいことが書いてありますのでそこらへんよろしくです。
・Aviutlのキーフレーム指定に対応させるには、拡張オプションの「非afs時もAviutlのキーフレーム検出をスキップする」のチェックを外してください。
エンコード前にAviutlのキーフレーム指定を検出し、qpfile用の自動生成してx264 の --qpfile を使って反映させます。
自動シールドシフト(afs)使用時は無効です。
(dropがいつ来るかわからないため)
また、コマンド入力欄で--qpfileを使用した場合も無効です。
Aviutl内蔵の自動24fps化を使用すると検出速度が遅くなります。(~10fps)
あと詳しくはx264guiEx_readmeを。
その他
・x264afsってなんぞ
x264afsは自動フィールドシフトをavisynthで使用するためのx264改造版で、もとはseraphy氏が公開されていたものです。
誤解を招きそうなので書いておきますが、x264guiExで自動フィールドシフトを使用するからと言って、x264afs.exeを使わなければならないということではありません。もちろん使ってもいいですが、ほかの方のビルドしているx264で問題ないです。
・x264 の --sar が反映されない?
最近のx264(r1876とそれ以降)での一部の--sarの指定がHaali Media Splitterを使用した再生環境だと反映されない問題があります。2011.03.03に "Added more H.264 aspect ratio options" とあるのですが…2011.03.03版では私は反映されませんでしたorz
- x264 r1876より前のものを使う
- Haali Media Splitterのかわりにsarを反映してくれるLAVFilter(http://forum.doom9.org/showthread.php?t=156191)を使う
- mp4boxのparオプション付きでmuxしなおす
などで対処してください。
・ログウィンドウのちょっと透過ってなに & ログウィンドウの文字の色なんで水色?
→趣味です。
バグってたらどっかのコメント欄にでも。バグったタイミングとか、エラーメッセージとか、ログウィンドウになんて出てるかとか教えてくれるともっと助かります。はい。