---------------------------------------------------


	拡張 x264 出力(GUI) Ex  1.xx / 2.xx
	 by rigaya
	 
	  (seraphy氏 拡張 x264 出力(GUI) のパイプ処理版の書き直し)

---------------------------------------------------

拡張 x264 出力(GUI) Ex (x264guiEx) は、
x264を使用してエンコードを行うAviutlの出力プラグインです。

seraphy氏 拡張 x264 出力(GUI) を改造し、
x264を分離し、別プロセスとして実行できようにしたものです。


【動作環境】
Windows XP            (x86)
        Vista,7,8,8.1 (x86/x64)
Aviutl 0.99g4 以降
Aviutl 0.99k2 以降 推奨

【x264guiEx 使用にあたっての注意事項】
無保証です。自己責任で使用してください。
拡張 x264 出力(GUI) Exを使用したことによる、いかなる損害・トラブルについても責任を負いません。
つまり、こんなのってないよっていう状況に陥っても知りません。

【x264guiEx 再配布(二次配布)について】
このファイル(x264guiEx_readme.txt)と一緒に配布してください。
まあできればアーカイブまるごとで。

【使用方法】
1.
x264guiEx_2.xx.zipを解凍してください。

2.
解凍して出てくる auo_setup.exeをダブルクリックして実行してください。

3.
黒い画面が表示されますが、一瞬で終わる場合もあれば、最大で15分ほどかかる場合もあると思います。
しばらくすると黒い画面が消え、新たな画面が開かれます。

4.
Aviutl.exeのあるフォルダを指定してください...という画面が表示されます。
右のボタンをクリックして、Aviutl.exeのあるフォルダを指定してください。
※プラグインフォルダではありません。

5.
「次へ」をクリックしてください。
すると、新たなウィンドウが開きます。
「x264guiExでは音声エンコーダとして、neroaacencを使用します。...」
という画面が表示されたら、OKをクリックし、
表示されるneroaacencの利用許諾に「同意」をクリックした後、
そのウィンドウを閉じてください。

6.
必要な物が自動でダウンロードされ、インストールが行われます。

7.
完了しました、というメッセージが出たら終了です。「終了」をクリックしてください。

8.
Aviutlを起動し、「その他」>「出力プラグイン情報」にx264guiEx 2.xxがあるか確かめます。
ここでx264guiExの表示がない場合、1.で必要なものを忘れている、あるいは失敗したなどが考えられます。

9.
x264guiExの設定画面を開き、各実行ファイルの場所を指定します。
あと適当に設定します。

10.
エンコード開始。気長に待ちます。


【x264guiExで利用できる実行ファイル】

以下に実行ファイル名とダウンロード場所を列挙します。
実行ファイルは32bit/64bitともに可です。
<主要エンコーダ・muxer>
 [x264] 
 (探せばもっと様々な方がビルドしてくれています。)
 http://x264.nl/
 http://pop.4-bit.jp/
 http://www.xvidvideo.ru/x264-video-codec/
 http://komisar.gin.by/
 http://xhmikosr.1f0.de/x264/
 http://x264.fushizen.eu/
 
 [neroaacenc (AACエンコーダ)]
 http://www.nero.com/jpn/downloads-nerodigital-nero-aac-codec.php
 
 [mp4box / L-SMASH (mp4出力時に必要)]
 http://pop.4-bit.jp/
 
 [tc2mp4mod  (mp4出力 + 自動フィールドシフト使用時に必要)]
 http://vfrmaniac.fushizen.eu/OtherStuff/
 
 [mkvmerge   (mkv出力時に必要)]
 http://www.bunkus.org/videotools/mkvtoolnix/ 
 
 [mplex      (mpg出力時に必要)]
http://sourceforge.net/projects/mjpeg/files/mjpegtools/
mjpegtools > x.x.x > mjpegtools-x.x.x-mingw-bin.tar.bz2
x.x.xは適当なバージョン
 
<音声エンコーダ>
 [FAW(fawcl) (FakeAACWave(偽装wav)解除)]
 http://2sen.dip.jp/cgi-bin/friioup/upload.cgi?search=FakeAacWav&sstart=0001&send=9999
 
 [faw2aac.auo (FakeAACWave(偽装wav)解除)]
 http://www.rutice.net/FAW2aac

 [qtaacenc   (AACエンコーダ, 要QuickTime)]
 http://tmkk.pv.land.to/qtaacenc/
 
 [ext_bs     (PVシリーズAAC抽出)]
 http://www.sakurachan.org/soft/mediatools/
 
 [lame       (mp3エンコーダ)]
 http://www.rarewares.org/mp3-lame-bundle.php
 
 [ffmpeg     (AC3エンコーダとして使用)]
 http://blog.k-tai-douga.com/
 
 [oggenc2    (ogg Vorbis, mkv専用)]
 http://www.rarewares.org/ogg-oggenc.php
 
 [qaac/refalac (AAC/ALACエンコーダ)]
 http://sites.google.com/site/qaacpage/
 
 [mp4alsrm23 (MPEG4 ALS (MPEG4 Audio Lossless Coding))]
 http://www.nue.tu-berlin.de/menue/forschung/projekte/beendete_projekte/mpeg-4_audio_lossless_coding_als/parameter/en/
 ※Reference Software のとこにある MPEG-4 ALS codec for Windows - mp4alsRM23.exe
 
 [flac (可逆圧縮)]
 http://flac.sourceforge.net/download.html
 http://www.rarewares.org/lossless.php


【利用するx264について】
パイプ処理のため、多くの方のビルドしているx264.exeを使用できます。
ただし、x264 r1673 (2010年 7月頃)以降が必須です。

64bitOSではx264 x64版が使用可能です。そのほうが速いです。(0〜15%程度)
64bitOSかどうかはマイコンピュータ右クリックから確認できます。


【iniファイルによる拡張】
x264guiEx.iniを書き換えることにより、
音声エンコーダやmuxerのコマンドラインを変更できます。
また音声エンコーダを追加することもできます。

デフォルトの設定では不十分だと思った場合は、
iniファイルの音声やmuxerのコマンドラインを調整してみてください。

【特定条件で発生する問題への対策】
・WinXPでエンコードを開始しようとすると、ログウィンドウが表示されず、例外が発生する。
  → 視覚効果関連の問題が発生することが稀にあるようです。
     一度設定画面の右上「その他の設定」から 「視覚効果をオフにする」にチェックを入れ、
	 Aviutlを再起動し、使用してみてください。
	 
・UltraVNC使用時にログウィンドウが表示されない。
  → ログウィンドウの透過が影響しているようです。
     設定画面の右上「その他の設定」から「ログウィンドウの透過をオフにする」に
	 チェックを入れて使用してみてください。
	
【エンコ後バッチ処理】
出力したファイルに対してなんらかの処理をするためのものです。
指定されたbatファイルから特定の文字列を検索し、置換を行ったバッチファイルを実行します。
バッチ処理が開始されるタイミングは、
動画・音声エンコード / mux処理 / 一時ファイルの削除及び移動が行われた後です。
そのため以下の置換文字列で一時ファイル系のパスにファイルはすでに存在しません。(自動削除されたあとです)
じゃあなんで置換できるんだよ、というとバッチ処理中の一時ファイル名として便利そうだからです。
だってmp4boxって#%でこけるし…orz
 -- 共通置換文字列 --
;コマンドライン部分で共通で使用できる置換名
%{vidpath} … 一時動画ファイル名(フルパス)
%{audpath} … 一時音声ファイル名(フルパス)
%{tmpdir}  … 一時フォルダ名(最後の\無し)
%{tmpfile} … 一時ファイル名(フルパス・拡張子除く)
%{tmpname} … 一時ファイル名(ファイル名のみ・拡張子除く)
%{savpath} … 出力ファイル名(フルパス)
%{savfile} … 出力ファイル名(フルパス・拡張子除く)
%{savname} … 出力ファイル名(ファイル名のみ・拡張子除く)
%{savdir}  … 出力フォルダ名(最後の\無し)
%{aviutldir} … Aviutl.exeのフォルダ名(最後の\無し)
%{chpath} … チャプターファイル名(フルパス)   (%{savfile}[chapter_appendix])
%{tcpath} … タイムコードファイル名(フルパス) (%{tmpfile}[tc_appendix])
%{muxout} … muxで作成する一時ファイル名(フルパス)
%{x264path}     … 指定された x264.exe のパス
%{x264_10path}  … 指定された x264.exe(10bit版) のパス
%{audencpath}   … 実行された音声エンコーダのパス
%{mp4muxerpath} … mp4 muxerのパス
%{mkvmuxerpath} … mkv muxerのパス
%{fps_scale}        … フレームレート(分母)
%{fps_rate}         … フレームレート(分子)
%{fps_rate_times_4} … フレームレート(分子)×4
%{sar_x} / %{par_x} … サンプルアスペクト比 (横)
%{sar_y} / %{par_y} … サンプルアスペクト比 (縦)
%{dar_x}            … 画面アスペクト比 (横)
%{dar_y}            … 画面アスペクト比 (縦)
 -- 以下エンコ後バッチファイルでのみ使用できるもの --
%{logpath}      … ログファイルのパス
 -- 以下はmuxを行った場合のみ --
%{chapter}      … チャプターファイルへのパス (チャプターを追加するよう指定した時のみ)
%{chap_apple}   … Apple形式のチャプターファイルへのパス (チャプターを追加するよう指定した時のみ)

【注意事項】
・自動フィールドシフト使用上の制限 
自動フィールドシフト使用時はx264のvbv-bufsize,vbv-maxrateは正しく反映されません。
これは、エンコード中にタイムコードを取得して、mux時にタイムコードを反映させるためです。

・2passの制限 
自動フィールドシフト(afs)を有効にした場合、 
「自動マルチパス」以外の方法での2-pass(およびn-pass)エンコードは失敗します。
これは afsによるdrop数が2pass目以降 
事前にわかっていなければならないためです。 
自動フィールドシフトを使わない場合は問題ないです。 

・パイプを作成するには、CreateProcess関数なるものを使うのですが、
調べると管理者権限が必要らしいのでよろしくです。 


【ソースコードについて】
   ・無保証です。
   ・ソースコードを使用したことによるいかなる損害・トラブルについてrigayaは責任を負いません。
   以上に了解して頂ける場合、ソースコードの使用、複製、改変、再頒布を行って頂いて構いません。
   
【簡易インストーラについて】
auo_setup.exe … .NET Framework をインストールし、auoSetup.exeを使用可能にします。libcurlを使用しています。
setup\\auoSetup.exe … .NET を利用した簡易インストーラ本体です。zlibを使用しています。
libcurl, zlibのライセンスファイルはsetup\licence以下に同梱しています。
	
【ビルドについて】
ビルドにはVC++2012が必要です。VC++2010もいけると思います。

【おわび】
x264guiEx 0.xxはGPL的によろしくない可能性がありました。
申し訳ありませんでした。

【謝辞】
以下の方のソースやwebページ等は特に参考になりました。
ありがとうございます。(無論ほかにもいろいろ参考にしましたが。)

seraphy様
muken様
あじ様
猫科研究所様


【コンパイル環境】
VC++ 2012 Express for Desktop
  Win XP 互換ビルド


【どうでもいいメモ】
2014.02.12 (2.04v4)
・簡易インストーラが.NET Framework 4.0のインストールに失敗する事があるのを修正。

2014.02.05 (2.04v3)
・簡易インストーラの-dirオプションで、
  最後に"\"付きでパスを指定すると正常に動作しない問題を修正。

2014.02.04 (2.04v2)
・簡易インストーラ強化
  コマンド実行に対応

2014.01.12 (2.04)
・ログウィンドウのスクロール処理を改善。
  スクロールを2重にかけていたのをやめるようにした。
  wineにおける0xe0434352例外を解決。

2013.12.07 (2.03v3)
・簡易インストーラを更新
  - 簡易インストーラをインストール先のAviutlフォルダに展開すると
    一部ファイルのコピーに失敗する問題を修正
    ご指摘感謝です。
  
2013.11.23 (2.03v2)
・簡易インストーラを更新
  - L-SMASHがダウンロードできなくなっていたのを修正。
  - インストール先が管理者権限を必要とする際は、
    これを取得するダイアログを表示するようにした。

2013.10.19 (v2.03)
・変更したフォントの(標準⇔斜体)が保存されない問題を修正。

2013.09.21 (v2.02)
・チャプターの位置にキーフレームを設定する機能を追加。「拡張」タブから。
・簡易インストーラを更新
  - Windows 8.1に対応したつもり
  - アップデートの際にプリセットを上書き更新するかを選択できるようにした。

2013.07.07 (v2.01 v2)
・PS3用プロファイルを更新。--no-container-sarオプションを追加。

2013.07.02 (v2.01)
・「LW48モード」にチェックを入れても"上書き保存"がアクティブにならない問題を修正。
  ご指摘感謝です。
・LW48 -> nv12p/nv12i/nv16/yuv444をSSE4.1とAVXで高速化。

2013.06.22 (v2.00)
Aviutl <推奨> 0.99k2以降
x264 <必須> r1673 (2010年 7月頃)以降  
     <推奨> r2334 (r2184〜r2334)
・開発環境をVC++ 2012 Express for Desktopに移行。
・.NET Frameworkのバージョンを4.0 Clientに移行。
・色空間変換でAVX2/AVX対応。
  いつもどおり自動的に最速のものを選択。
・ログウィンドウで出力ファイル名を右クリックから
  「動画を再生」「動画のあるフォルダを開く」機能を追加。
・LW48モード追加。
  - LW48 -> nv12p/nv12i/nv16/yuv444 (8bit/16bit)
  - インタレ対応
  - SIMD化はまだ
・簡易インストーラを2.xx用に更新。

2013.06.12 (v2.00 beta)
  設定ファイル等にも変更はありません。1.xxのものをそのまま使用可能。
・開発環境をVC++ 2012 Express for Desktopに移行。
・.NET Frameworkのバージョンを4.0に移行。
・色空間変換でAVX2対応。→まだチェックしてないし、遅い。
・ログウィンドウで出力ファイル名を右クリックから
  「動画を再生」「動画のあるフォルダを開く」機能を追加。
  →まだバグってる
・LW48モード追加。(低速)

2013.04.14 (v1.75)
・mux時にディスクの空き容量の取得に失敗した場合でも、警告を出して続行するようにした。

2013.03.26 (v1.74)
・設定画面で「デフォルト」をクリックした時の挙動を修正。
  「デフォルト」をクリックしたあと、「キャンセル」してもキャンセルされていなかった。
  ご指摘感謝です。

2013.03.11 (v1.73)
・自動マルチパスモードの目標ビットレートを「-1: 自動」とした状態で
  ビットレート計算機を開こうとすると、例外が発生する問題を解決。
  ご指摘ありがとうございました。

2013.03.01 (v1.72)
Aviutl <推奨> 0.99k2以降
x264 <必須> r1673 (2010年 7月頃)以降  
     <推奨> r2273 (r2184〜r2273)
・自動マルチパスモードの目標ビットレートに自動設定を追加。
  -1で自動とする。
  上限設定から、エンコ時に自動的にビットレートを計算する。
  そのため、自動設定を使用する場合には、上限設定が必須。
・ニコ動用プリセットを改編。

2013.02.24 (v1.71)
・FAW mix modeに対応、FAW経由で二重音声をより簡単に扱えるように。
  tc2mp4modは非対応。L-SMASH系のtimelineeditorを使用してください。
  
2013.02.23 (v1.70 v3)
・Bluray出力用プリセットを調整。
  - 最大ビットレート、VBVバッファサイズ、最大GOP長の設定を緩和。

2013.02.18 (v1.70 v2)
・Bluray出力用プリセットを追加。

2013.01.30 (v1.70)
・上限確認付 品質基準VBR モードを追加。
  まず品質基準(crf)でエンコードを行った後、上限を上回っていないか確認する。
  上限を上回っていたら、マルチパスビットレート指定で自動的に再エンコードを行う。
・上限確認で、オーバーした容量がある一定以下の時、
  音声エンコをビットレート指定モードで行なっていたら、音声再エンコードを行うように。
  通常音声エンコのほうが時間がかからない。
・自動マルチパスの余裕のデフォルトを10→5に。
・ニコ動用プリセットを改編。
・音声設定のパイプ - 2passのチェックボックスの挙動を修正。
  ご指摘ありがとうございました。

2013.01.19 (v1.69)
・「Aviutlのキーフレーム設定検出を行う」にチェックを入れた場合に、
  取得したキーフレームのリストを残す設定を追加。
  その他の設定から。

2013.01.15 (v1.68)
・エンコ前後バッチ処理を最小化で実行する設定を追加。
  その他の設定から。

2012.12.26 (v1.67)
・出力ファイルの種類のデフォルトを変更できるようにした。
  その他の設定から。反映には設定後Aviutlの再起動が必要。

2012.12.22 (v1.66)
・自動マルチパス時の上限設定を使用した際の「上限オーバーの動画を削除しない」が効かなかった問題を修正。
・自動マルチパスの上限設定をしていても音声のみ出力ができるようにした。

2012.11.30 (v1.65)
・自動フィールドシフトを使用しない場合にメモリ使用量を削減。
・1.59からエンコード開始時にクラッシュする可能性があるのを修正。
・高Dpi設定時の表示の崩れを修正。(設定画面・透過率の指定・ログウィンドウ色の指定)
  ControlBoxをとりあえずTrueにしたほうがいいらしい…?

2012.11.27 (v1.64)
・一部の環境で1.63からログウィンドウが表示されるとともにエラーが発生し、
  エンコードできなくなっていた問題を修正。ぴっく様の報告に感謝。

2012.11.23 (v1.63)
・ログウィンドウの位置を保存するようにした。
・稀にmux終了後にクラッシュするのを修正。

2012.11.10 (v1.62)
Aviutl <推奨> 0.99k2以降
x264 <必須> r1673 (2010年 7月頃)以降  
     <推奨> r2184, r2197, r2200, r2208, r2216, r2230
・ログウィンドウの色を変更できるように。ログウィンドウ右クリックから。
・各ウィンドウのスケーリングモード(AutoScaleMode)をDpiに。
・一部のウィンドウでEscキーの効かなかったのを修正。

2012.11.01 (v1.61)
・v1.60でのメモリ解放漏れを修正。
・ログウィンドウ透過率の指定。ログウィンドウ右クリックから。

2012.10.27 (v1.60)
・音声エンコード/muxの際のメッセージをログウィンドウに表示。
  エラー時にメッセージをログに残すことで原因特定を簡単に。
  また、メッセージをログウィンドウ側にとり込むことで
  コンソール画面には何もでなくなるので、コンソール画面は非表示に。
  これに伴い、コンソール最小化設定を削除。

2012.10.16 (v1.59)
・簡易インストーラを追加。
  解凍して出てくるauo_setup.exeをダブルクリックしてください。
・設定画面にブログへのリンクを追加。(x264guiExについて)
・エンコ"前"バッチ処理を追加。

2012.09.15 (v1.58)
・コマンド入力欄へドラッグ&ドロップできるようにした。
・置き換え文字列の挿入を簡単にできるようにした。

2012.08.30 (v1.57)
・映像・音声同時エンコ時に、x264がエラーで終了した場合、
  音声出力がすべて終わるまで待機するのでなく、
  直ちにエラーとして終了するようにした。

2012.08.24 (v1.56)
・MediaInfoのオプション表示をGUIに取り込めるように。
・コマンド入力欄で読み込める書式を拡大。
  -t2 (--trellis 2)とか。 

2012.08.19 (v1.55)
・x264のメッセージ(の一行)がものすごく長い場合、強制的に改行するようにした。
・デフォルトログウィンドウサイズの変更。
・音声設定にflacの設定を追加。

2012.08.18 (v1.54)
・コミケも終わり大量のチェックが終わったので公開。

2012.08.08
・映像と音声の同時処理方法を変更。安定性の向上。
・1/2サイズのFAWCheckで、384kbpsを超えるAACの場合にnon-FAWと誤判定するのを修正。

2012.08.04
・映像と音声の同時処理モードを追加。
  総エンコード時間の短縮に有効かもしれない。
  (映像処理中に音声処理もやるので、"x264エンコード時間"は遅くなる)
  音声処理順の選択肢として"後","前","同時"。
  ただし、自動マルチパス上限設定を行った場合はこれまで同様"前"モードで処理される。
・音声の長さと動画の長さが大きく異なる場合に警告を出すようにした。
  主にBandicamで音声をMP2で音声をキャプチャして、
  それをソースとしてエンコードすると発生する問題への警告。
  どうやらBandi MPEG1 Decoderを使用してデコードされると音声が短く出力される場合がある模様。

2012.08.15 (v1.53)
・CLIモードから10bitエンコードができなくなっていた問題を修正。
  また、1.52から16bitで渡すようにしているので、
  コマンド入力欄には--input-depth 10でなく、--input-depth 16と入力してください。

2012.07.31 (v1.52)
Aviutl <推奨> 0.99k2以降
x264 <必須> r1673 (2010年 7月頃)以降  
     <推奨> r2184, r2197, r2200, r2208
・1.51はx264のr2208により必要なくなったので削除。
・色空間変換をいろいろ見直し
  - YC48 -> i420/i422/i444(10bit)をYC48 -> i420/i422/i444(16bit)に変更
    --input-depth 16を使用。 (将来的な汎用性の向上)
  - YC48 -> i420/i422/i444でfullrangeを分けて扱うのを廃止。
    計算式上は必要な気がしていたけども、いくつかの方法で再生・表示してみると要らない子疑惑。
  - インタレi420変換で、これまでの単純平均でなく、3,1-加重平均を使用。
・x264guiEx.iniで、音声/muxファイル名を記述するところで、2つ以上書けるように
  具体的には、
  filename="ffmpeg.exe;avconv.exe"
  みたく、どちらでも利用できるように。
・x264guiEx.iniにfdk-aac (ffmpeg/avconv)用の設定を追加。
  ビルドは(ライセンスの関係上)自分で…。
・実行ファイルを指定するボタンを右クリックすると、
  現在指定中の実行ファイルのhelpを表示できたり。
・再エンコードの必ずかかるyoutube用のプリセットについて、
  flash player 11.3の仕様にあわせ、--colormatrix bt709に変更。
  使用の際にはAviutlの色空間(出力)をBT.709に。
・ログにx264のバージョン情報を表示。長ったらしくなるので使用時に重要なとこだけ。
  ついでにrev1673以降かチェック。

2012.07.18 (v1.51)
Aviutl <推奨> 0.99k2以降
x264 <必須> r1673 (2010年 7月頃)以降  
     <推奨> r2184, r2197, r2200, r2207
・x264 r2207(以降)使用時の進捗表示を改善。

2012.07.15 (v1.50v2)
・iniファイルに記述ミスがあり、mp4box使用のafs時にmuxに失敗する問題を修正。

2012.07.14 (v1.50)
・timecode mux時にfpsに基づいて時間分解能を指定するように。
  tc2mp4mod で -T, -bを指定。
  timelineeditorで --media-timebase, --media-timescaleを指定。
・共通置換文字列を拡張。

2012.07.08 (v1.49)
・%{chpath}の置換が一時ファイル名を元に作られていたのを、出力ファイル名からに修正。
  よも様、ご指摘ありがとうございます。
・L-SMASH muxer使用時にraw音声mux後にエラーが発生する可能性があったのを修正。
  おそらく大丈夫だとは思うけども、念のため。

2012.07.06 (v1.48)
・faw2aac.auoがあれば、fawclがなくてもFAW処理できるように。

2012.07.03 (v1.47)
※要x264guiEx.ini更新。
・v1.35の暫定的なL-SMASH対応を強化。
  - wrapperを使用せず、普通に実行ファイルを指定する素直な方法に変更。
  - wrapperを指定していた方は、実行ファイルを指定しなおしてください。
  - muxerの指定欄を追加。muxer(remuxerじゃないほう)も指定。
・faw2aacの進捗をログウィンドウにも表示。
・細かい問題の修正。
  - 実行ファイルを開く... 画面で、デフォルトのフォルダがおかしくなることがあるのを修正。
  - 保存していた"stg設定ファイルの場所"のルートが存在しない場合に、エラーを吐くのを修正。
・表示の修正
  - mux時のエラーメッセージで、音声ファイルがないのでmuxできない場合に、
    映像ファイルがないという表示になっていたのを修正。
  - 自動マルチパス時の「上限を上回ってしまいました。」のあとに変なごみが表示されるのを修正。

2012.06.28 (v1.46)
・faw2aac.auoを使用し、wav中間出力をせずにaacを出力できるようにした。
  faw2aac.auoがあれば、自動的にそちらを利用する。

2012.06.08 (v1.45)
・mux拡張オプションのmkv/mpgが入れ替わってGUIにロードされてた問題を修正。
  mp4出力には影響なし。maki様に感謝です。

2012.06.07 (v1.44)
※要iniファイル更新
・設定項目にサブスレッド数(--lookahead-threads)の追加。
・プリセットの追加/見直し
  - youtube用プリセットの追加
  - ニコ動用プリセットのLevel指定を"3.1"から"自動"に (高解像度出力に配慮)
  - ニコ動用プリセットの--me esaだったものはumhに (umhで十分かな…と)
  - アニメ(高画質)のプリセットのcrfを22->20に (高画質ならやっぱ20ぐらいかな…と)
・x262実験用改造

2012.05.24 (v1.43)
Aviutl <推奨> 0.99k2以降
x264 <必須> r1673 (2010年 7月頃)以降  
     <推奨> r2184, r2197, r2200
・最大キーフレーム間隔を"-1"にすると、エンコ時に自動的にfps×10を設定するようにした。
・全プロファイル(設定ファイル)で最大キーフレーム間隔を"-1"に。

2012.05.15 (v1.42v2)
・ニコ動用設定ファイルに一般会員の上限解像度の変更を反映。
  800x600 -> 1280x720

2012.05.07 (v1.42)
・WinXPで相対パスが正常に取得されない問題への対策。
  WinXPだと、相対パスを取得するときに使うPathRelativePathTo関数が、".\dir"を返すべきときに"\dir"を返すことがあるようで、
  とりあえず、回避のためのコードを追加した。
・x264guiEx.iniのqtaaacenc/qaac用設定にCVBRモードの設定を追加した。
  順番的に自然な、ABRとTVBRの間に挿入したので、
  設定ファイルのインデックスがずれることがあるかもしれない。
・上限ビットレート指定で、目標ビットレートの設定値が上限ビットレートを超えているときには、
  自動的に調整を行うようにした。(これまではエラーとして弾いていた。)
  
2012.04.27 (v1.41)
Aviutl <推奨> 0.99k2以降
x264 <必須> r1673 (2010年 7月頃)以降  
     <推奨> r2184, r2197
・x264 r2197のH.264 Level 5.2を追加。
・高画質プリセットのsubme 10を11に変更。

2012.04.17 (v1.40)
・「ファイルを開く...」などから得られるパスを、相対パスにする設定を追加。
  その他の設定から。
・設定フォルダ(x264guiEx_stg)のデフォルト位置を相対パスに変更した。
・自動ログ保存先の設定が直ちに反映されるようにした。
・v1.39がちょい適当なのを真面目に。
・その他細かい変更とかいろいろ。

2012.04.10 (v1.39)
・幅(横解像度)が16で割り切れない場合に、左上にゴミが出る問題を修正。
  v1.34からのバグ (「メモリ使用量を少し削減」が原因)。

2012.04.07 (v1.38)
・v1.37でCLIモードを壊していたので修正。
・L-SMASH remuxer用x264guiEx.iniを更新。
  L-SMASH remuxerを使用する際にremuxerとtimelineeditorの実行順を変更。
・その他細かい調整。

2012.04.01 (v1.37)
・上限ビットレート指定の余裕の大きさを設定するところで、
  1以下や21以上に設定しようとすると例外が発生するのを修正。
・コマンド入力欄とGUIで指定した値が衝突して、コマンドが二重に出てしまったりする。
  動作上全く問題はないけど、見た目が気持ち悪いので、コマンドの二重発行を抑制。
  動作としてはこれまでどおり、コマンド入力欄の設定が優先される。

2012.03.24 (v1.36)
・chapterファイルをmuxすることを選択し、しかしchapterファイルが存在しない時に、
  L-SMASH remuxerやmkvmergeを使用したmuxでも、とりあえずmuxは通るようにした。
・x264guiEx.iniにmp4alsrm23.exe(MPEG4 ALS)用の設定を追加。

2012.03.17 (v1.35)
※要x264guiEx.ini更新。要変更箇所は1行だけ。
[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} ""

両方とも要望があったので対応。
・v1.33で追加した、上限ビットレート指定について、
  その他の設定から、自動計算される余裕の大きさを設定できるようにした。
・通常のx264guiEx.iniの代わりに専用のx264guiEx.iniを使用することで、
  muxerとしてmp4boxの代わりにL-SMASH(remuxer)を使用することもできるようにした。
  またこの場合、tc2mp4modの代わりとして、timelineeditorを使用する。
  L-SMASHフォルダの中にL-SMASHを使用するためのx264guiEx.iniが入っている。
  音声エンコーダがrawストリームを出力する場合には、加えてL-SMASH muxerによる
  mp4への格納が必要になるので、これはwrapperバッチファイルを用意することで対応した。
  この処置が必要なのはfawcl、Lame(mp3)、ffmpeg(AC3)、ext_bs。
・その他細かい修正。

2012.03.10 (v1.34)
Aviutl <推奨> 0.99k2以降
x264 <必須> r1673 (2010年 7月頃)以降  
     <推奨> r2184
・設定ファイル(stgファイル)の表示を、フォルダ構造を反映して表示できるようにした。
  あわせて、設定ファイルの新規保存もフォルダを指定できるようにした。
・ニコ動のエコ回避設定ファイル(stgファイル)を一般用とプレミアム用に分けた。
・ポップアップヘルプの誤字修正。
・メモリ使用量を少し削減。
・x264 r2183での--output-csp rgbの仕様変更に対応。並べ替えが不要になったようだ。
・設定保存処理を改良。
・x264guiEx.iniのmkvmerge用コマンドラインで、mkvmerge v5.2.0以降だと
  タイムコードmux用コマンドが --timecodes 0:"%{tcpath}" でなければならないので変更。
・簡易ビットレート計算機で、動画の長さをフレーム数 + フレームレートでも計算できるようにした。
  時分秒 <-> フレーム数は下のボタンで切り替えられる。
・自動マルチパスで、上限をオーバーしてしまい自動再エンコードが行われる際に、
  上限オーバーしてしまった動画を削除しない設定を追加。(その他の設定)

2012.02.23 (v1.33)
・自動マルチパスの強化。
  上限ファイルサイズと上限ビットレートの指定を行い、
  エンコード後にそれを満たしていなければ適宜再エンコードを行う。
・ニコ動のエコ回避ビットレートが変更されたみたいなので、設定ファイルを調整。
・設定ファイル保存処理の改良。
・ファイルサイズ取得の改良。
・x264guiEx.iniにqaac/refalac用設定を追加。
・x264guiEx.iniにAnonEncoder用設定を追加。

2012.02.18 (v1.32)
・v1.31でチャプターファイルの再生時間が異常に長く設定されることがある問題を修正。

2012.02.16 (v1.31)
・v1.30の「再生時間を--tcfile-inを行っているならタイムコードから計算する」について、
  コマンド入力欄から--tcfile-inを行った場合にも対応した。
  また%{savname}などが置換されず、タイムコードファイルが見つからないという問題を解決した。

2012.02.11 (v1.30)
・設定画面とログウィンドウでフォントを変更できるようにした。
・Apple式チャプターを用意する際、動画再生時間が必要になる。
  この再生時間を--tcfile-inを行っているならタイムコードから計算するようにした。
・x264.exeの指定で使用する「ファイルを開くダイアログ」の制限をx264guiEx.iniから変更できるようにした。
・ソースコードにVC++2010用プロジェクトファイル追加。

2012.02.02 (v1.29)
・STAThreadAttributeを指定。
  まれにバッチ処理2番目で止まってしまう問題が解消するかもしれない。
・稀にmux前にコケる問題を修正。v1.27で壊していたかも。

2012.01.29 (v1.28)
・設定メモの色をWinXPでも見やすいよう調整。
・ログウィンドウの大きさを保存できるようにした。
  ログウィンドウ右クリックから保存を有効化できる。

2012.01.28 (v1.27)
Aviutl <推奨> 0.99k2以降
x264 <必須> r1673 (2010年 7月頃)以降  
     <推奨> r2120, r2146
・YC48出力時に色空間変換を行う機能を削除。
  Aviutl 0.99k2からAviutl側の色変換がYC48出力時にも反映されるようになり、
  x264guiEx側でのYC48 BT.601->BT.709変換は不要になった。
  x264guiEx側にこの設定があると、今後紛らわしくなるため、削除することにした。
・muxを行っていない場合に「エンコ後バッチ処理」に失敗するのを修正。
・録画後バッチ処理のバッチファイル指定欄のドラッグドロップ対応。
・音声エンコで単純なWAV出力に対応した。
・x264guiEx.iniのoggenc2コマンドラインを修正。強制的に44.1kHzになってしまっていた。
・その他細かいコードをいじった。

2012.01.21 (v1.26)
・ログ自動保存先の設定を行う部分で、
  .NET のOpenFileDialog/SaveFileDialogで(マネージドコード側の)カレントディレクトリが
  勝手に変更されるXP環境 + .NETのバグを回避できていなかったのを修正。
・YC48色変換式の係数を検証しなおした。ほとんど変わらないが、このほうがより正しい。
・typoの修正。

2012.01.17 (v1.25)
・コマンド入力欄の改行に対応。

2012.01.04 (v1.24)
・ポップアップヘルプを抑制するが逆になっていた問題を修正。

2012.01.03 (v1.23)
・バッチファイル実行などのツールチップヘルプをちょい追加。
  またx264.exeの指定などx264guiEx.confに保存される設定をツールチップに書いておいた。
・Aviutlからキーフレーム設定を取得するにチェックをしていると、
  キーフレーム設定をしていないときにエンコ開始前に
  1分ほどフリーズする問題を解決。(v1.21からのバグ)

2011.12.29 (v1.22)
・WinXP環境下のエンコ後バッチファイル実行で、
  バッチファイル名やAviutlフォルダ名に &()[]{}^=;!'+,`~などがあると
  実行にコケる問題を修正。Win7では問題なかった。
・音声エンコ終了時の成功判定を改善。

2011.12.12 (v1.21)
・PSP用設定ファイルのメモ修正。
・muxエラー対策。mux時チェックを根本的に改善。

2011.12.07 (v1.20)
x264 <必須> r1673 (2010年 7月頃)以降  
     <推奨> r2120
・x264の--fullrange → --input-range + --rangeに対応。
・「指定した自動ログ保存先が存在しません。動画出力先に保存します。」
  というメッセージを誤って表示してしまう問題を修正。
・謎のmuxエラーへの対策第2弾。
  前回の対策でどこでコケるかはっきりしたので、ちょこっと小細工してみた。
  これでいけるか…?

2011.12.03 (v1.19)
・設定画面でEscキーのオンオフ設定を追加。
・エンコ後バッチファイル実行を追加。

2011.11.23 (v1.18)
・mp4 mux時にpar置き換えを可能に。
  %{par_x}, %{par_y}が置き換わる。mp4box/tc2mp4mod時のみ。
  拡張オプションに「PAR再指定」として追加した。
・自動フィールドシフト使用時、tc2mp4modとmp4boxが違うフォルダにあると
  mp4boxを相対パスで指定するとmuxに失敗する問題を修正。
・チャプターファイルが存在しない場合でもとりあえずmuxを成功させるようにした。
・mux時のエラーチェックを強化し、誤判定の可能性を減らした。
・エンコ中でないとき、Escキーでログウィンドウを閉じるようにした。
  (エンコ中はこれまでどおり、エンコードを中断するかどうかが出る)

2011.11.19 (v1.17)
・YC48(BT.601)->yuv444(8bit,BT.709)が出来なかった問題を修正。
・YC48->yuv444(10bit)のSSE4.1版のバグ修正。色成分がおかしかった。
・YC48(BT.601)->nv12/nv16/yuv444(10bit,BT.709)のSSE2/SSE4.1版をかなり高速化。
  BT.601->BT.709をしようとすると、SSSE3だけだとあまり速くならないのでSSSE3版は削除。
・YC48->nv12/nv16/yuv444のSSSE3/SSE4.1版をわずかに高速化。
・ログ表示の調整。
・チャプターファイルの自動削除をオンオフできるようにした。その他の設定から。

2011.11.12 (v1.16)
・x264guiEx v1.13以前のAviutl側のプロファイルに保存された設定も読めるようにした。
  もう遅かったら申し訳ないです。

2011.11.09 (v1.15)
・Apple用muxerコマンドに -mpeg4 追加。Apple製品でtsからFAWを通してコピーしたAAC-LC音声が再生可能に。
  Canorus様に感謝。
・160kbps以上でもiPhoneで再生できてしまったのでApple製品のプリセットから160kbps以下というメモを削除。
・VistaでPathRemoveFileSpecが挙動不審(0x5C問題)なためにエンコードに失敗する問題に対する回避策を導入。
  調べてくださったkaz様に感謝。
・YC48出力にツールチップヘルプを追加。

2011.11.08 (v1.14)
x264 <必須> r1673 (2010年 7月頃)以降  
     <推奨> r2085, r2106
・Aviutlからの入力としてYC48を使用する時にcolormatrix変換を行えるようにした。動画・拡張タブから。
  デフォルトは「自動」。縦解像度720以上でBT.601→BT.709変換。
  そのうちSIMDで高速化したい。が、時間かかるかも。SIMDの書き方(?)にあまり詳しくない。
  というか現在は一度BT.601→BT.709をしてからYC48->NV12/NV16/YUV444をしているので、
  これを一緒にすれば速いんじゃないかなあ…とか。これもゆっくりやっていきたい。
  詳しく調査してくれた金の髭様に感謝。
・その他の設定にログウィンドウ関連の設定(「透過」と「最小化で開始」)を追加。
  UltraVNCで透過がオンだとログウィンドウが表示されないので、設定画面から透過を切れるようにした。
  yas774様の報告に感謝。

2011.10.25 (バグ見つけてぐだぐだしたため、結局この時点では公開せず)
・プロファイルにメモを残せるようにした。プロファイルの右側に表示。ダブルクリックで変更できる。
・x264guiEx.iniが存在しない、あるいは古い時にエラーメッセージの前に例外が発生する問題を解決。
・Apple系に対応したmp4/chapterをmp4boxを用いても出力できるようにした。
  iniファイルバージョン1→2
・視覚効果をオフにできるようにした。XPにおいて視覚効果がオンだと環境によっては
  ログウィンドウ表示に失敗することがあるので、その回避策。
  その他の設定から。反映にはAviutlの再起動が必要。
・設定ファイルサンプルを追加。あくまでサンプルなのでこれをベースに好きな設定に上書きして行って欲しい。
  邪魔だったら消してください。
・ポップアップヘルプの表記を修正。ご指摘に感謝。

2011.10.12 (v1.13)
・x264エンコード経過時間表示(ステータスバーに表示)
・ツールチップヘルプの抑制(その他の設定から)
・「このウィンドウを最小化で開始」が一回しか効力を発揮せず、解除されてしまう問題を修正。

2011.10.10 (v1.12)
・Windows XPで相対パスを使用すると様々な挙動不審が発生する現象への対策を行った。
  .NET のOpenFileDialog/SaveFileDialogで(マネージドコード側の)カレントディレクトリが
  勝手に変更されることがあるという有名な(?)問題がXPにはあるらしい。
  Win7ではそんなおかしな事にはならんので、XPのバグなのだろう。
  疲れた。そして詳細な報告ありがとうございます。助かりました。
・aviutl.exeと同じフォルダにあるx264.exeファイルを相対パスで指定するとエンコードに失敗するのを修正。

2011.10.07 (v1.11)
・相対パスを使用できるようにした。
・YC48->YUV444(10bit)にSSE4.1版を追加。SSE2版より少し速い。
  今んとこi444とか私は使わないので放置してきた。
  YC48->YUV444(10bit)のSSSE3版とか、YC48->YUV444(8bit)のSSSE3/SSE4.1版とかも
  考えたが、あまりいいことないのでやめた。

2011.10.01 (v1.10)
・自動マルチパス時に、ステータスファイルを自動で削除するオプションを追加。
・YC48->NV12/NV16/YUV444のSSSE3版/SSE4.1版をわずかに高速化。
  が、(色形式変換とかたいして重くもないのであたりまえだが)エンコ時間に差はほぼない。

2011.09.29 (v1.09)
・afsオン時に動画入力初期化でエラーが発生した時、afsを自動的にオフにして続行するモードを追加。
  設定画面右上、「その他の設定」から。
・mp4boxのコマンドラインに#video, #audioを追加。
  このほうが安定する模様。

2011.09.25 (v1.08)
・自動ログ保存場所を変更できるようにした。
  自動ログ保存は追記型なので、ひとつのファイルにどんどん追記していくことができる。
  
  また、x264guiEx.iniの先頭に書いてある、「コマンドライン部分で共通で使用できる置換名」も使用可能。
  例えば、C:\Aviutl\plugins\x264guiEx_log\%{savname}_log.txt
  とかとすると、ログファイルをC:\Aviutl\plugins\x264guiEx_logフォルダに貯められる。
  (そんでいらなくなったらフォルダごと削除とか)

2011.09.23 (v1.07)
x264 <必須> r1673 (2010年 7月頃)以降  
     <推奨> r2085
・output-csp i422 (8bit/10bit)に対応
・簡易ビットレート計算機で音声レートの制限が変にかかることがあるのを修正。

2011.09.21 (v1.06)
・「シングルパス - ビットレート指定」が反映されないことがあるのを修正。
・テキストボックスの一部謎な挙動を改善。
・その他コード整理・追加。(yuy2->nv16, yc48->nv16等)
・簡易ビットレート計算機の幅を少し広げた。(XPだと「〜を反映」の「映」だけ改行されてた)

2011.09.14 (v1.05)
・mkv出力時に、raw aac(ようはFAWの出力)をmuxするとmuxが失敗してしまう問題を修正。
  muxが成功したかの判定をexitcodeで判定するのはやめ、
  もとのmuxファイルサイズによる判定に戻した。
・afs時強制的にmuxしていたのを訂正。

2011.09.11 (v1.04)
・よく見たら色設定のオプションリストがおかしかったので修正。

2011.09.11 (v1.03)
・自動マルチパス時にnul出力を指定したあと、crfなどの他のモードに切り替えると
  nul出力のチェックボックスはオフにもかかわらずnul出力されてしまう問題を修正。
・8bit/10bitで異なるx264の実行ファイルの場所を保存するようにした。
・解像度に対するチェック(エラーメッセージ)を追加。
  まあご存知だろうけど、例えば--input-csp i420(ようはYV12とかNV12)の時は
  横: 2の倍数
  縦: 2の倍数(インタレ保持時は4の倍数)
  が必要だったりする

2011.09.08 (v1.02)
・一部のパッチを当てたx264で、進捗が表示されない状態になったあと、
  途中でエンコードが止まってしまう問題を修正
・プロファイル名に"."のついたファイル名を指定すると、
  "."以降が表示されず、おかしなことになる問題を修正
・x264guiEx.iniのlame用のリストがnero用のリストに置き換わってた問題を修正

2011.09.07 (v1.01)
・x264guiEx.iniのmp4box追加オプション、chapter.auf自動出力用で
  \ が抜けていたので修正

2011.09.06 (v1.00)
x264 <必須> r1673 (2010年 7月頃)以降  
     <推奨> r2034 - r2074
[v0.xxの既存の機能の変更点/バグ修正]
・一から書きなおし
・内部構造大幅変更(だが表面上は同じなはず)
・設定ファイルの互換性がない(作りが違うので)
・iniファイルの構造変更(リスト式)


・置換文字列を変更・共通化
なんのことかというと
ステータスファイルとか、タイムコードファイルとかで
"%savefile" とすると自動的に置換されたやつのことです。
とりあえず、見やすくするために { } でくくってみました。
%{vidpath} … 一時動画ファイル名(フルパス)
%{audpath} … 一時音声ファイル名(フルパス)
%{tmpdir}  … 一時フォルダ名(最後の\無し)
%{tmpfile} … 一時ファイル名(フルパス・拡張子除く)
%{tmpname} … 一時ファイル名(ファイル名のみ・拡張子除く)
%{savpath} … 出力ファイル名(フルパス)
%{savfile} … 出力ファイル名(フルパス・拡張子除く)
%{savname} … 出力ファイル名(ファイル名のみ・拡張子除く)
%{savdir}  … 出力フォルダ名(最後の\無し)
%{aviutldir} … Aviutl.exeのフォルダ名(最後の\無し)
%{chpath} … チャプターファイル名(フルパス)   (%{savfile}[chapter_appendix])
%{tcpath} … タイムコードファイル名(フルパス) (%{tmpfile}[tc_appendix])
%{muxout} … muxで作成する一時ファイル名(フルパス)

1.xxからはこれらが、
・ステータスファイル
・cqmファイル
・タイムコードファイル
・追加コマンド
の4箇所で使用できます。

・映像ビットレート制限廃止
・プリセットの方式変更(より少ないクリック数で
・タブ枚数削減
・YUY2->NV12変換に変更
・YC48->YUV(YC圧縮)時の色差についての計算式を修正
・Windows XP 環境下で高DPI設定にすると表示が崩れる問題を修正…したつもり
  (うちにそのような環境がないので再現できていないが対策したつもり)
・その他いろいろ(忘れた)

[ご要望の反映]
お待たせしました。
・音声bitrate指定機能(1kbps単位で設定できる(とヘルプに書いてある)の限定)
・ログ自動保存(ログウィンドウ右クリックからオンにできます)
・mux失敗時に、失敗したファイルで元ファイルを上書きしてしまわないよう、
  muxの成功・失敗の判定を改善 (muxerのexitcodeによる判定を加えた)
・追加コマンドの情報からでも色変換関数切り替え
  (CLIモードでもtff/bff/input-depth/output-cspなどにより適切に色変換関数が切り替わる)
・簡易ビットレート計算機(時間は設定画面からは取得できないので手動で)
  簡易なので過度な期待はしないでください。

[機能の追加]
・output-csp i444/rgbに対応
  - output-csp i444 (8bit / 10bit)
  - output-csp rgb  (8bit)
・音声先にエンコード機能追加
・afs時にも残り時間表示
・一時停止機能(まあ別にAviutlで止めてもいいけど、最小化できないから)
・ステータスバーとプログレスバー…特に意味ないかも。なんとなく。
・Win7タスクバー進捗表示(わりとおもしろい)
・実行ファイルの指定の箇所でドラッグドロップ

・アイコン VS2010ImageLibrary / 自作(x264,削除,矢印) 
  x264の画像がしょぼくなったのは自作したせい(パワポで描いた)