アニメエンコで役に立つかもしれない覚書


目次

index.html

□□□ 1章 初めに □□□
 

□□□ 2章 AVI出力 □□□
 

index1a.html

□□□ 3章 作業地獄のために □□□
 
index2.html

□□□ 4章 x264 □□□
 
-------------以下加筆予定--------------------------

index3.html

 
□□□ 5章 観られてる!! □□□
 

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

□□□ 3章 作業地獄のために □□□

エンコする作品には、優先順位がある。
リアルタイムに放送を観て、キャプチャ・エンコしたにも関わらず、DVDも購入したい作品もあれば、
キャプチャして、見てデリートする作品もあり、
ファイルサイズ小さめにエンコして、DVDに2クール押し込める作品もあるだろう。
自分が作業してる全部のキャプチャ作品について、全力フィルタ・全力エンコでは疲れきってしまう。
マシンは増やせるが、自分の体は一つである。「 いのちだいじに 」
ぃょぅι、ここはゴニョゴニョして、<しないでください。(藁
そこで、楽できるところは、楽しようという提案だ。
でも余裕ができると、その余裕の分だけ作業を増やす罠が未来予知できてしまうのも、エンコヲタである宿命。
それでも、その最高で最悪な未来に超電磁スピンで突っ込んでいく様も、エンコヲタゆえの漢らしさってモノだ。
━━━さぁ。みんなで幸せになろうぜ。
 
 

・04- さらに深みに、はまってみる。

・04-01 アスペクト比のために画面サイズは、いくつがいいか?
はいはーい。先生、こんなことを疑問に思う方が、どうかしてると思うわ。
D1以下のSD規格で限定すればPixel数は 720x480 704x480 640x480 480x480 352x480。
これら以外には、無いと思いまーす。
 
ツンデレ14歳金髪で赤いエヴァに乗るキャラなら、こんなこと言う希ガス。
━━━昔話はさて置き、漏れもそう思うYO。
"比"というぐらいだ。やはりココは、比自体を指定してあげて、
解像度は考えない方向で逝ったほうが、スマートでクールな気がしますよ。どうでしょう。
次の項目へ。

 
-*-*-*-*-*-*-*-*-
 

・04-02 aviでのアスペクト比埋め込み
さてさて。指定するにしても、方法はどうしたらいいでしょう。いくつか、あります。
・1.見る時にPlayerで指定する。
・2.圧縮時に、アスペクト比を指定出来るcodecを使って指定する。
・3.コンテナに指定させる。
順番に考えてみましょう。
 
1.はナンセンスですね。見るたびにいちいち弄るのは、('A`)マンドクセー
 
2.は、いいですね。いいのですが、aviだと比を参照しないPlayerが多いのが残念です。
ちなみに、aviのアスペクト比を参照するPlayerは、
mplayer( MSのdefaultのクズではなく、mencoderが付属してる優秀な方 )ぐらいですかねぇ
codecでのアスペクト比は、Pixelアスペクト比が多いです。Xvid・x264とかそうですね。
もっとも、Xvidはディスプレイアスペクト比もサポートしていますが。 orz
それはさて置き、話をPixelアス比に戻します。
Xvidの640x480でエンコードするのであれば、defaultのSquare(1:1)を選んでるかと思います。
コレは、ピクセル一個の形が正方形であるということである。
Xvidのvfw( codec設定をAviUtlなどで設定出来るヤツ )では、
プリセットにNTSC4:3と16:9があるので、704x480でエンコードする場合困りません。
だが、他の解像度の時どうすればいいのでしょう。
Pixelの比なので、4:3や16:9を入力すればいいワケでは有りません。
ちなみに、x264のCLI( コマンドラインインターフェース )でのアスペクト比もPixelでの比になっています。
ここは、解像度ごとの例をあげちゃった方が楽でいいでしょう。
 
以下、解像度内すべてが表示領域の場合。
------------------------------------------------
・720x480の16:9 - 32:27
・704x480の16:9 - 40:33
・352x480の16:9 - 80:33
・704x352の16:9 - 8:9 *
*LetterBoxの暗部を削除後、縦方向を360→352とリサイズした場合。
 
・720x480の4:3 - 8:9
・704x480の4:3 - 10:11
・352x480の4:3 - 20:11
------------------------------------------------
 
352x480は、704x480に比べてx方向が半分なので、比ではx側を倍にすればいいですね。
それでも。結局、aviで扱っても大して報われない。じゃ、いっそのことavi辞めちゃいましょう。
そんなワケで、下の項目でコンテナに指定させる話をします。次へ。

 
-*-*-*-*-*-*-*-*-
 

・04-03 MatroskaVideo
さてさて。結局Aviじゃないコンテナを使う必要が出てくるし、
コンテナで指定できるのなら、その機能を使ってもいいでしょう。
そこでだ。どのコンテナを使いましょうか。
…mkvを例にあげてみる。
mp4も使いやすくなってきたが、説明がメンドイ。(莫迦
そんなワケで、ここではmkvを扱っていく。
 
えーと。mkvを見るには、matroska splitterをインスコする必要があるかと思います。
Haali Media Splitterあたりで、拾ってくれば問題ないかと思います。
別に、 матрёшка / matroska でMatroska Packを拾ってきて、使ってもらっても一向に構いません。
また、見れるPlayerを使ってもらっても構いません。
mplayerやMPC(Media Player Classic)は、matroska splitter入れて無くても見れます。
ただし。不具合報告をチェックしつつ、それぞれできるだけ新しいものを使いましょう。
 
mkvファイルを作成するには、
MKVToolnix -- Matroska tools で、MKVToolNix拾ってきて、mkvmerge.exeで作成してください。
GUIフロントエンド(mmg.exe)も同梱されています。
こちらは、使い方が分らなくなったら、利用するのがいいでしょう。

 
-*-*-*-*-*-*-*-*-
 

・04-04 CLIでのツールの使い方
さて。コンソールで使うツールに抵抗がある人もいるでしょうから、少し使い方を紹介しましょう。
*注:以下、windows2000の場合。XPは若干変わるかもしれません。
---------------------------------------------------------------------------------------
 
・直接実行しても、CLIのツールは動いてくれませんね。コンソール上で実行する必要があります。
 NT系のwindowsで有れば、「 ファイル名を指定して実行 」に cmd とタイプして実行すれば、
 簡単にコマンドプロンプトを開くことが出来ます。
 
・また「ファイル名を指定して実行」は、windowsキー+R でショートカットキーが割り振られています。
 スタートメニューから呼び出すよりも多分便利なので、活用しましょう。
 
・DOSプロンプト(command.com)とコマンドプロンプト(cmd.exe)は、違うモノになります。別物です。
 すなわち、コマンドプロンプトでのコマンド記述は、DOSのソレと別になります。
 例えば、「 〜 /? 」としても、〜命令のhelpは出ません。
 
・目的の*.exeファイルを、コマンドプロンプトにドラッグ&ドロップすると、
 そのファイルのフルパスがタイプされる。ゆえに、直接タイプして実行することは、実は少ない。
 CLIであっても、ディレクトリ移動を特にすることなく、簡単に実行することが、可能である。
 
・コマンドプロンプト内の文字をコピーするには、選択後Enterキーを押すと選択が解除される。
 が、それでコピーされる。適当にテキストエディタにペーストしてもらえば、
 クリップボードにコピーされていることが分かるだろう。
 
・コマンドプロンプトの内容全てをコピーしたいときは、
 windowのタイトルバーを右クリックしメニューを出す。そして 編集 → すべて選択 を利用すると便利かと思う。
 
・コマンドプロンプト内にクリップボードの内容をペーストするには、右クリックをプロンプト内で行う。
 
・コマンドプロンプトwindowのタイトルバーを右クリックしメニューを出し、編集→範囲指定を選ぶと、
 実行中のプログラムを一時停止することが出来る。…場合もある。使ってるプログラム次第かも。
 
・CLIでのツールのヘルプは、「 -h 」や「 --help 」をつけて実行すれば大体見れる。
 また、オプションなし・引数なしで実行すれば、ヘルプの閲覧の仕方を教えてくれ場合が多い。
 例えば、mkvmerge -hと実行すればいい。
 実行すると、 mkvmerge とほぼ同じ内容が、コマンドプロンプトに表示される。
 使い方がワカラナイという前に、ヘルプを見ましょう。
 
・ツール使う内容をテキストに書き、*.txt→*.batとする。*.batは、バッチファイルと言います。
 バッチファイルを実行すると、コマンドプロンプトを開き、記述してる内容を順番に実行していきます。
 そんなワケで、CLIのツールは、バッチファイルで運用していくことになる。
 
---------------------------------------------------------------------------------------
このぐらい説明すると、mkvmergeでビデオ部とオーディオ部をmkvに入れることが、できるでしょう。
例えば、こんな感じで、使えるかと思います。
input.aviとinput.mp3を、output.mkv出力するとき、
 
mkvmerge -o output.mkv -A input.avi input.mp3
 
こんな感じで、バッチファイルに書いて実行すれば、使えるわけです。
ディスプレイ アスペクト比16:9・タイムコード・チャプターを加えて表記すると、次のようになる。
 
mkvmerge -o output.mkv -A --aspect-ratio 0:16/4 --timecodes 0:input.avi.txt --chapters input-chapter.txt input.avi input.mp3
 
・ディスプレイアスペクト比は、mkv側で管理できる。
 しかしDivx5XXなどのアスペクト比を管理できないcodecでは、制御されない。
 どうせ、XviDかx264を使うかと思うので、気にしなくていい。
・タイムコードは、vfrout.auoなどで出力されるものが、そのまま使える。
・チャプターファイルは、 AviUtl実験室 のchapter.aufを使用して作ってもいいし、自分で書いてもいいだろう。
 チャプターファイル例:
 --------------------------------------
 CHAPTER01=00:00:00.000
 CHAPTER01NAME=OP
 CHAPTER02=00:01:30.023
 CHAPTER02NAME=A-Prat
 CHAPTER03=00:11:06.033
 CHAPTER03NAME=B-Prat
 CHAPTER04=00:21:40.033
 CHAPTER04NAME=ED
 CHAPTER05=00:23:10.057
 CHAPTER05NAME=NextTrack-Episode
 --------------------------------------

 
-*-*-*-*-*-*-*-*-
 

・04-05 その他ツール紹介
コンテナをせっかくバッチで処理してるんだし、他の処理もバッチでいっしょに書いちまった方が楽ですね。
必要だろうと思われるツールを紹介。
 
・AVSファイルを経由してソースからwavを作る。(切るだけ) → avs2wav をgoogle先生に聴く。
 google先生に聴いた後、例えば ここ(1.0)とか、ここ(1.1) でdownloadする。
 
 avsに読ませてるソースについてるwavファイルを、Trimの記述サイズにあわせてカット・出力する。
 切るだけなので、時間がこれといってかからない。なかなか便利。
 google先生に聴く限り、1.1と1.0が世の中にありますが、1.0系の方がいいのかもしれません。
 断定は出来ません。が、個人的にはそう思う。(仮
 
 
・音をエンコードする。 →  rarewares , nero , aoTuVから必要なコーダーを持ってくる。
 
 lameMP3 , ogg , AAC 辺りがいい希ガス。
 それぞれ味が違うので、好きなものを使うのがいいでしょう。
 漏れ個人の感覚では、OggVorbisは高音が、AACは中域が、得意な気がします。
 OggVorbisは、 aoTuV でのエンコーダがなかなかいい音します。
 AACはfaacの質が良くないので、 nero のneroAacEnc.exeを使うといいかと思う。
 ただし。neroAacEncに入力させるファイルは、カットでのwavファイルを使えない。注意しておこう。
 
 
・AVSファイルを経由してソースからwavを作る。(エンコする) →  ffmpegでエンコ
 ( ffdshow.faireal.net(米鯖) →  Index of /mirror/ →  ffmpeg)
 ffmpeg・ffplay自体は、libavcodecのエンコ・デコードの実装例として、存在している。
 これら自身に機能は基本的に無く、直接利用する機会は、ほとんど無い。
 しかしながら、実装例として用意してるだけの事はあるのも、確かだ。
 libavcodecで出来る事に限られるが、何でも喰えるし、何でも出力できる。
 その点に着目し、avs2wav.exe → neroAacEnc.exe の代用として、
 ffmpeg.exe → neroAacEnc.exe と利用しようと、考えた。
 例えば、次のように記述する。
    ffmpeg.exe -i input.avs -ac 2 -ar 48000 output.wav
 こうやって、閉じた一個のwavファイルとして、エンコしておく。
 sampleファイルとしてエンコを全部バッチでやらせるときとか、使える手だと思う。
 wavファイルエンコを実行する都合、avs2wav.exeより時間がかかる。
   
 
・CLIで使えるVFWcodecフロントエンド → AVS2AVI
 このツールは、設定ファイルを先に生成する必要がある。
 生成された設定ファイルは、何故かAVSファイルのディレクトリに生成される。
 使用例:
 ------------------------------------------------------------------------------
 ・avs2aviのcodec設定ファイル(CodecParameters)の生成法は以下の通り。
  avs2avi *.avs -s CodecParameters -e
 
 ・avs2aviのavi出力(実行時)
  avs2avi *.avs Output.avi -l CodecParameters -p 2
 ------------------------------------------------------------------------------
 何で、こういう記述かは、ヘルプを確認してください。
 ちなみに、にーやんのページ の、
 AvisynthWikiAVS2AVIのヘルプ(日本語訳)に 、avs2aviの解説が有ります。
 
 
・AviUtl出力プラグインを、CLIで使いたい。 → warpsharpパケージ の中に入ってるauoenc.exeを使う。
 引数なしで実行すると、以下のように表示される。
 \auoenc.exe AUOファイル 設定ファイル 入力ファイル 出力ファイル プライオリティ(0-5)
 このツールはcodec設定ファイルを、実行した初回にカレントディレクトリに生成する。
 バッチファイルを実行して、放置プレイしたいのならば、一度は実行し設定ファイルを作る必要がある。
 使用例:
 auoenc exavi_vfr.auo CodecParameters.cfg Input.avs Output.avi 0 > auoenc.log
 ちなみに、AvisynthWiki の、 auoenc.exe の項目にauoenc.exeの解説が有ります。
 
 
・絶対AviUtlじゃないと駄目。AviUtl使っちゃうもんね!! → AviUtlプラグイン置き場のAviUtl Controlを使う。
 AviUtlがファイルを読み込むタイムラグを考えて、バッチファイル書かないと不味いが、何ら問題なく使うことが出来る。
 AviUtlのwindow番号は省略可能だが、記述した方が的確に動作しやすい。
   
 
・mp4コンテナを使う →MP4Boxでmp4化
 ( ffdshow.faireal.net(米鯖) →  Index of /mirror/ →  gpac →  dev )
 ここの、「 Index of /mirror/ 」に大概のtoolは在るので、良く探すように。
 ヘルプ見ると、詳細ヘルプの見方を紹介されてる。
 全部表示すると、プロンプトのdefault表示限度を超えやすい為かとおもうが、これ見辛い。('A`)
 ━━━でも、見てください。
 基本的には、
   mp4box -fps 29.970030 -add Input.264#video:par=10:11 Output.mp4
 とか、記述すればいい希ガス。
 オプションたくさんあるので、使うもの使ってください。
 
 
・mp4でVFR@tc2mp4 →hereticからtc2mp4を拾ってきて使う。
 mp4でVFRするのは、少々面倒だった。
 zmi氏が、簡単に作れるスクリプトを作ってくれたので、必要な人は使ってみよう。
 timecodeは、v1・v2が使えるので、exavi_vfr・vfroutが吐くもの(v2)が、そのまま使える。
 必要ファイルをカレントに用意して実行すれば、簡単に作れる。 zmi氏Good Jod!!
 
 使用例↓
 MP4Box.exe -fps 29.970030 -dref -nodrop -add Input_raw.264#video:par=10:11 x264_before.mp4
 tc2mp4.exe -i x264_before.mp4 -t timecode.txt -o NOAudio_x264.mp4
 MP4Box.exe -chap chapter.txt -add InPutAAC.mp4 -add NOAudio_x264.mp4 Output_x264.mp4
 例えば。こんな感じに、Timecode制御でのmp4で、AACとチャプターが付けられる。@Output_x264.mp4
 
 tc2mp4自体は、Perlスクリプトです。→ 
 いろいろな人が、自分が使いやすい機能を追加しているようです。
 他者が配布しているモノを探して利用するのも、いいかもしれません。
 
 
 
・[SMAIL] 送信専用コマンドラインメールソフト →SMAIL
 バッチの最後などに書いておいて、ケータイにメールを出させるのとか、便利かと思う。

 
-*-*-*-*-*-*-*-*-
 

・05- # 05- もっと深く。@バッチ処理

・05-01 バッチ処理構築目的:自分の都合にあわせる
バッチファイルを書く上で参考になるサイトを挙げると、
kiraruノートの《切れ端》  コマンドプロンプトを使ってみよう!  コマンドプロンプト こんなところだろうか。
何回か記述してますが、自分の都合がいいように作成するのがいいでしょう。バッチファイルも同じです。
個個人で、その「 自分の都合 」とやらを、考えてみましょう。
━━━参考までに、ここでは俺の例を挙げておきます。
--------------------------------------------------------------------------------------------
1. 2006_01/14現在、1週間に6本作ってます。
2. それぞれの作品は、一週間後に次の話が放送される。
3. マシンは、3台所有。エンコ・キャプチャの役割は、同一マシンに任せていない。
4. 全部の作品が本気作業ではなく、とりあえず観れればいいと思っている。
5. だが、ファイルはキチンと保存しようとは思っている。
6. 書き込みDVDメディアは、安くなった。ファイルサイズは、あまり気にしていない。
7. でも、いくつかは、ファイルサイズ小さくしたい。そんな気分。
--------------------------------------------------------------------------------------------
順番に考えて逝きましょう。
 
・1.2.について。
 最低でも一週間後ぐらいには、作業が完了しているのが好ましいと思う。
 30分huffyuv720x480 + PCM48KHz = 14GB 程度 なので、14x6=84GB。
 1週間放置しておくと、このぐらいキャプチャーマシンのキャプチャHDDの容量を喰う。
 仮に、400GB有ったとしても、一ヶ月もたない。ゆえに、貯めない方が賢明だ。
 ちなみに、漏れがキャプ用に使ってるHDDは、80GBである orz
 足りねェ('A`)
 
・3.について。
 3.より、キャプチャの時間と仕上がりの時間を考慮する必要はない。
 だが、キャプチャマシンにデータを貯めすぎないように、気をつける。
 
・4.について。
 綺麗に出力するならAviUtlをフロントに選ぶ方がいいだろう。フィルタ内容が同じでも、少し綺麗になる。
 だが、今回本気作業が求められていない。VFR自動処理は、auoenc.exeで十分である。
 バッチで処理しても、問題ない。
 
・5.について。
 保存するんだし、codecの圧縮設定は、できるだけ綺麗に仕上がる方法を使いたい。
 つまり、圧縮するスピードが遅くなる設定を使うことになる。
 今回は、一週間に7本しか作ってないし、時間は十分に有る。
 時間はたっぷりあるので、1ファイル辺りの圧縮時間は、8時間程度で考てみる。
 
・6.について。
 1クールが2枚(A=4.2x2=8.4 A/13=600ぐらい)。つまり、1ファイル600MB程度でいいと思ってる。
 片方のディスクが1話多くなる。2枚で入らないと困るので、400〜500MB程度に収めたい。
 codecは、XVIDがいいかと思う。理由は、俺が観賞しやすいから。
 
・7.について。
 ファイルサイズを小さくしたい。 → ビットレートを下げる or codecを変える。
 ここでは、x264を 352x480・480x480・640x480でmkvに入れて、使っていこうかと思う。
 ファイルサイズは、100MB程度〜300MB台になると、思う。音はoggを使う。
 
以上のことより、考えられる必要なバッチ処理は、こんなものが有れば、便利かと思います。
-------------------------------------------------------------------
・設定生成バッチ → avs2aviは設定ファイルを先に作る必要がある。
              auoencは、処理中にVFW設定画面出されても困る。
・サンプル作成バッチ → 作成前に画質確認。
・wav生成バッチ → 音の編集は、GUIでしないと、やり辛いかと。
・1週間スケジュール処理バッチ → やること全部やってもらう。
-------------------------------------------------------------------
上三つは、ファイルパスを取得し、実行する形を取るといいでしょう。
さて。上から順番に紹介していくと、します。
 
 
その前に、マシン内ディレクトリ構造が、どうなってるか説明。
自分での環境で試すときは、自分のマシンのディレクトリ構造に合わせてください。
 
・マスターHDDは、CドライブとDドライブに割ってある。
・スレーブHDDは、Eドライブのみ。必要な実行ファイルは、大体入れてる。作業はここでやってる。
・AVSファイルは、D:\Script\に入れてる。
・ 設定生成バッチ・サンプル作成バッチ・wav生成バッチ は、ショートカットを作りSendToに入れる。
 
 

 
-*-*-*-*-*-*-*-*-
 

・05-02 設定生成バッチ
-------------------------------------------------------------------------------------------
@echo off
e:
rem VFR設定。例えばこんな感じ
auoenc "C:\Program Files\aviutl99\exavi_vfr.auo" MiddleOutput-huffyuv.cfg "D:\Script\%~n1.avs" 1000.avi 5
rem auoenc "C:\Program Files\aviutl99\exavi_vfr.auo" XVID-MyDefault.cfg "D:\Script\%~n1.avs" 1000.avi 5

rem CFR設定。例えばこんな感じ
rem avs2avi "D:\Script\%~n1.avs" -s avs2avi_XVID-Max -e
rem avs2avi "D:\Script\%~n1.avs" -s avs2avi_XVID-Easy -e
rem avs2avi "D:\Script\%~n1.avs" -s avs2avi_MiddleOutput-huffyuv -e

pause
-------------------------------------------------------------------------------------------
説明:
@echo off  → バッチファイルの頭に書く。展開処理が見えてると、プロンプトが読み辛い。 echoの説明。
e:  → ディレクトリ移動は、cdコマンドだが、ドライブレターでの移動は、cd e:\とはしない。こうする。
rem  → この命令の行は、コメントアウト行である。
auoenc  → windows側にパスが登録して無くても、カレントディレクトリ内ならば、フルパス表記は必要ない。
%~n1  → 取得したファイルパスのファイルネームのみを、用意する。 パラメータ修飾子説明
pause  →バッチを止める。キー入力を待ち続ける。
━━━説明終わり。
 
SendToにショートカット入れて、「 送る 」を利用する。
avsファイルを送ると、送ったファイルは%1にファイルパスを格納される。
すると、codec・出力プラグインの設定が、いつものGUIが出てきて、設定出来るワケだ。
avs2aviの設定ファイルを作りたいならば、今使ってるauoenc行をrem行にして、目的の行を用意すればいい。
もっとも、一個の設定ファイルにつき、一個のバッチファイルを作ってもらっても構いません。
ですが、codecの設定を頻繁にしないのならば、この方が送るが汚れなくて、見やすい気がします。
設定ファイルの名前は、自分の分かり易いようにつけよう。忘れると、改変期に悩むかと思う(藁

 
-*-*-*-*-*-*-*-*-
 

・05-03 サンプル作成バッチ
-------------------------------------------------------------------------------------------
@echo off

echo.
echo ####Output_sample-VerXXX-20051204更新####
echo.

echo.
echo %~n1.avsのでのエンコードを開始します。
echo.


rem ####音エンコ########################################

D: cd "D:\Script"
copy %1 "E:\%~n1.avs"

e:
avs2wav %~n1.avs
ren %~n1.avs.wav 5000.wav

lame -V 0 5000.wav _5000.mp3

oggenc --quality 8.75 "E:\5000.wav"
ren 5000.wav 5005.wav
oggenc --quality 3.25 "E:\5005.wav"



rem ####判別後動画エンコ########################################

rem ---------------------------------------------
if %~n1 == 02_x264CBR goto CFR_16x9-x264-Q14
if %~n1 == 05_XVID-VBR goto VFR_16x9-XVID
if %~n1 == 22_x264VBR goto VFR_4x3-x264-Q14
rem ---------------------------------------------


echo ####-処理判別に失敗しました。-####
goto :end


rem #####-VFR_16x9-XVID###################################################
:VFR_16x9-XVID
echo ####-VFR_16x9-XVID####
e:
auoenc "C:\Program Files\aviutl99\exavi_vfr.auo" XVID.cfg "D:\Script\%~n1.avs" 1000.avi 5
mkvmerge -o output_1000.mkv -A --aspect-ratio 0:16/9 --timecodes 0:1000.avi.txt 1000.avi "E:\_5000.mp3"
goto mkv_save


rem #####-VFR_16x9-x264-Q14####################################################
:VFR_16x9-x264-Q14
echo ####-VFR_16x9-x264-Q14-####

e:
auoenc "C:\Program Files\aviutl99\exavi_vfr.auo" MiddleOutput-huffyuv.cfg "D:\Script\%~n1.avs" YV12_sample.avi 5

echo.
echo エンコード開始。開始時刻は以下の通り
prompt $d$s$t$s$p$g
echo on
prompt
@echo off
echo.

"C:\Program Files\x264\x264.exe" -I 300 -i 24 -b 1 -m 6 --me esa -w --qp 14 -o "E:\output.264" "D:\Script\zz_YV12.avs"
mp4box -fps 119.880 -add output.264 output.mp4

echo エンコード終了。終了時刻は以下の通り
prompt $d$s$t$s$p$g
echo on
prompt
@echo off
echo.

mkvmerge -o output_1000.mkv -A --aspect-ratio 1:16/9 --timecodes 1:YV12_sample.avi.txt output.mp4 "E:\_5000.mp3"
goto mkv_save



rem #####-CFR_16x9-x264-Q14####################################################
:CFR_16x9-x264-Q14
echo ####-CFR_16x9-x264-Q14-####

e:
avs2avi "D:\Script\%~n1.avs" "E:\YV12_sample.avi" -l "D:\Script\MiddleOutput-huffyuv" -p 2


echo.
echo エンコード開始。開始時刻は以下の通り
prompt $d$s$t$s$p$g
echo on
prompt
@echo off
echo.

e:
"C:\Program Files\x264\x264.exe" -I 300 -i 24 -b 1 -m 6 --me esa -w --qp 14 -o "E:\output.264" "D:\Script\zz_YV12_24fps.avs"
mp4box -fps 23.9760 -add output.264 output.mp4

echo エンコード終了。終了時刻は以下の通り
prompt $d$s$t$s$p$g
echo on
prompt
@echo off
echo.

e: mkvmerge -o output_1000.mkv -A --aspect-ratio 1:16/9 output.mp4 "E:\_5000.mp3"
goto mkv_save
rem /////////////////////////////////////////////////////////////////////////


:mkv_save
copy output_1000.mkv "\\MainPC\mkv\Sample%~n1.mkv"
echo.
echo ########################################################
echo %~n1.avsでのエンコードが終了しました。
echo 任務完了。ど疲れさんノシ
echo ########################################################
echo.

net send MainPC サンプルのエンコが終わったぜ!

goto :end

rem #####-shutdown-####################################################
:shutdown

c:
cd C:\sbin
poweroff.vbs

rem #####-end-####################################################
:end
pause

-------------------------------------------------------------------------------------------
 
見ての通り、すげー力技で済ましてますね。やってる内容を、日本語で記述するとこうだ。
-----------------------------------------------------------------------
1.wav生成・音エンコ → 2.入力ファイルによる処理分岐→
3.goto先の処理を行う → 4.MainPCに出力ファイルをコピーする。 → 
5.MainPCに終わったと、メッセージを送る。 → 6.キー入力待ち。 → END
-----------------------------------------------------------------------
文字列判別処理を頑張って組んでもいいのですが、
パターンが少ないので、凝る必要がないかなと思いました。
一つのcodecに対して、VBR・CFRで4:3か16:9の判別で4つに判別できればいい。
codecの種類をXvidとx264とで2種類使うとすると、倍になって8つ。
この程度ならば、だらだら書いてあっても、気にするような量じゃない。
判別の処理も自分で使うだけなので、avsファイル名と、使う判別後の処理命令を付け足すだけで十分です。
文字列判別を凝りたいヒトは、kiraruさんのノートでも見てください。 orz
 
 
 
説明:
prompt $d$s$t$s$p$g  → ディレクトリパスが表示されてる部分に、時間を表示させることが出来ます。
 x264.exeは、エンコード中のfps数は表示されますが、開始時刻や経過時間は、表示してくれません。
 だったら、自分で見えるようにしてしまおう。そういうワケです。
 エコーがoffだと表示しないので、一時的にONにする必要がある。
 
・x264をmkvに入れる時には、aviでは不具合がある。シークが出来なくなったりする。
 この問題があるので、MKVToolNix v1.5.5より新しいverではaviで入れられなくなった。
 x264の推奨コンテナは、mp4である。
 x264出力時に、mp4を選択できるが、ファイルが壊れる不具合があった。(今は、直ったのかな?)
 そこで、raw.264ファイルをmp4に入れて処理するのが、最良かと思う。
 ゆえに、huffyuv中間出力 → x264でrawファイル作成 → mp4baxでmp4 → mkv化 という
 手順を取っている。mkvファイルのx264を作るときは、これが一番安定してると思う。
 x264.exeは、YV12でしか喰わせられない。
 中間出力して、ソース入力とConvertToYV12()が書いてあるだけのavsファイルを喰わせるのが楽だ。
 
・x264の24/30混合を作る場合、ITVFR・Itsを使うのが楽かと思う。
 aviutl出力プラグインで、nullフレーム無しAvi + タイムコード吐かせる。
 x264.exeには、nullフレームが無いので普通に食わせられる。
 ただし、AssumeFPS(29.97)を書いてあるavsファイルを使う。特に、2passの時は必須。
 119.880fpsでは、x264がビットレート計算できないらしいので、こうする。
 どうせmkvに入れれば、タイムコード基準で見れるようになる。ので、(・ε・)キニシナイ!!
 
・mkvmerge のヘルプ見りゃ解かるが、mp4は track1 でAviは track0 だ。
 タイムコード・アスペクト比の指定のときに、間違わないようにしたい。
 
・もし処理後にシャットダウンさせたいのならば、shutdownコマンドを使えばいいだろう。
 XPならば、それでOKです。→   …もっとも、2Kには有りません。
 仕方ないので、VBスクリプトで呼び出します。
 
Set objSystemSet = GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}").InstancesOf("Win32_OperatingSystem")

For Each objSystem In objSystemSet
objSystem.Win32Shutdown 8
Next
 
 名前を「 Poweroff.vbs 」とかにしてテキストを保存すればいいでしょう。
 ━━━説明終わり。
 
 
 
ぶっちゃげて云えば、別にサンプルバッチで本番処理をしても構わない。
ただ、貯めておいて処理するだろうから、ファイル取得なんざしなくても、
1週間の処理内容を全部書いてあったほうが、気が利いてる。
大体、バッチのパラメータ修飾示は、1〜9までしか使えない。
使い切ったら、工夫して処理しなけりゃならん。('A`)マンドクセー
それに、音はGUIでの処理の方が楽だと思う。

 
-*-*-*-*-*-*-*-*-
 

・05-04 wav生成バッチ
音。別に、このバッチは必要ないかと思う。有ったら有ったで、便利程度だ。
ソースから、音を切り出すだけ。つまり↓
-------------------------------------------------------------------------------------------
@echo off

D:
cd "D:\Script"
copy %1 "E:\%~n1.avs"

e:
avs2wav %~n1.avs

pause
-------------------------------------------------------------------------------------------
…これだけ。sendtoにショートカットを入れておこう。Trim(,)分の長さに切り出されたwavが、簡単に作れる。
切り出されたwavは、NeroのWaveEditorなどを使って、db値の調整・ノイズ削除を行う。
目的のcodecに変換前のwavを用意しておく。

 
-*-*-*-*-*-*-*-*-
 

・05-05 1週間スケジュール処理バッチ
サンプルバッチのとき同じくして、gotoで飛んで目的の処理をする。
…のではく、内容が全部書いてあるだけのバッチを用意する。だけ。
ただし、音はあらかじめ編集・NRがされているものを用意しておく。
ソースファイルが無ければ、「 ファイルがネェYO 」と云われて、次の作業をしてくれる。問題ない。
 
作品にあわせた処理を書いておこう。
バッチの最後にshutdownを書いておくと、便利かと思う。
--------------------------------------------------------------------------------------------
@echo off

echo.
echo ####shutdown一週間バッチ-VerXXX-200601XX更新####
echo.



rem ####Audioエンコ########################################


rem d:
rem cd D:\installs\lame-3.95.1
rem lame -m s --preset insane -V 0 --vbr-new -b 160 -B 320 "E:\5000.wav" "E:\_5000.mp3"
rem lame -V 0 "E:\5000.wav" "E:\_5000.mp3"


e:

echo GPO
lame -V 0 "E:\gannpare.wav" "E:\gannpare.mp3"
rem oggenc --quality 8.75 "E:\gannpare.wav"

echo かしまし
rem oggenc --quality 3.25 "E:\ARIA.wav"
oggenc --quality 3.25 "E:\kasimasi.wav"


echo RozenMidenTI
lame -V 0 "E:\RozenMaidenI.wav" "E:\RozenMaidenI.mp3"
rem oggenc --quality 8.75 "E:\RozenMaidenI.wav"


echo 舞乙
oggenc --quality 3.25 "E:\maiotu.wav"

echo ケロロ
oggenc --quality 3.25 "E:\KERORO.wav"


echo エウレカ
oggenc --quality 3.25 "E:\Eureka.wav"


rem /////////////////////////////////////////////////////////////////////////////////////////////
echo ####-月曜・-####


rem /////////////////////////////////////////////////////////////////////////////////////////////
echo ####-火曜・GPO-####

e:
auoenc "C:\Program Files\aviutl99\exavi_vfr.auo" E:\XVIDMAX.cfg "D:\Script\18_gannpare.avs" GPO.avi 5
mkvmerge -o output_GPO.mkv -A --aspect-ratio 0:4/3 --timecodes 0:GPO.avi.txt --chapters "D:\Script\GPO-chapter.txt" GPO.avi "E:\gannpare.mp3"


rem /////////////////////////////////////////////////////////////////////////////////////////////
echo ####---水曜・かしまし出力---####

rem auoenc "C:\Program Files\aviutl99\exavi_vfr.auo" E:\XVIDMAX.cfg "D:\Script\13_kasimasi.avs" kasimasi.avi 5
rem mkvmerge -o output_kasimasi.mkv -A --aspect-ratio 0:4/3 --timecodes 0:kasimasi.avi.txt --chapters "D:\Script\kasimasi-chapter.txt" kasimasi.avi "E:\kasimasi.ogg"



e:
auoenc "C:\Program Files\aviutl99\exavi_vfr.auo" E:\MiddleOutput-huffyuv.cfg "D:\Script\13_kasimasi.avs" YV12_sample.avi 5

"C:\Program Files\x264\x264.exe" -I 300 -i 24 --scenecut 48 -b 1 --qp 14 --analyse all --direct spatial -w --me esa -m 6 --b-rdo --mixed-refs --bime -8 -t2 --nr 8 -o "E:\kasimasi.264" "D:\Script\zz_YV12.avs"


mp4box -fps 119.880 -add kasimasi.264 kasimasi.mp4
ren YV12_sample.avi.txt kasimasi-timecodes.txt
ren YV12_sample.avi kasimasi-beforeYV12.avi
mkvmerge -o output_kasimasi.mkv -A --aspect-ratio 1:4/3 --timecodes 1:kasimasi-timecodes.txt --chapters "D:\Script\kasimasi-chapter.txt" kasimasi.mp4 "E:\kasimasi.ogg"

e:
del YV12_sample.avi
del YV12_sample.avi.txt



rem /////////////////////////////////////////////////////////////////////////////////////////////
echo ####---木曜・RozenMaidenT( BS-I )出力---####

e:
auoenc "C:\Program Files\aviutl99\exavi_vfr.auo" E:\XVIDMAX.cfg "D:\Script\05_RozenMaidenI.avs" RozenMaidenI.avi 5
mkvmerge -o output_RozenMaidenI.mkv -A --aspect-ratio 0:16/9 --timecodes 0:RozenMaidenI.avi.txt --chapters "D:\Script\RozenMaidenI-chapter.txt" RozenMaidenI.avi "E:\RozenMaidenI.mp3"


rem /////////////////////////////////////////////////////////////////////////////////////////////
echo ####---木曜・舞乙出力---####

e:
avs2avi "D:\Script\19_maiotu.avs" "E:\MaiZ.avi" -l "D:\Script\avs2avi_XVID-Max" -p 2
mkvmerge -o output_maiotu.mkv -A --aspect-ratio 0:4/3 --chapters "D:\Script\MaiZ-chapter.txt" MaiZ.avi "E:\maiotu.ogg"


rem /////////////////////////////////////////////////////////////////////////////////////////////
echo ####---金曜・ケロロ出力---####

e:
auoenc "C:\Program Files\aviutl99\exavi_vfr.auo" E:\MiddleOutput-huffyuv.cfg "D:\Script\06_KERORO.avs" YV12_sample.avi 5


"C:\Program Files\x264\x264.exe" -I 300 -i 24 --scenecut 48 -b 1 --qp 14 --analyse all --direct spatial -w --me esa -m 6 --b-rdo --mixed-refs --bime -8 -t2 --nr 8 -o "E:\keroro.264" "D:\Script\zz_YV12.avs"


mp4box -fps 119.880 -add keroro.264 keroro.mp4
ren YV12_sample.avi.txt keroro-timecodes.txt
ren YV12_sample.avi keroro-beforeYV12.avi
mkvmerge -o output_keroro.mkv -A --aspect-ratio 1:4/3 --timecodes 1:keroro-timecodes.txt --chapters "D:\Script\KERORO-chapter.txt" keroro.mp4 "E:\KERORO.ogg"

del YV12_sample.avi
del YV12_sample.avi.txt



rem /////////////////////////////////////////////////////////////////////////////////////////////
echo ####---土曜・---####




rem /////////////////////////////////////////////////////////////////////////////////////////////
echo ####---日曜・エウレカ出力---####

auoenc "C:\Program Files\aviutl99\exavi_vfr.auo" E:\MiddleOutput-huffyuv.cfg "D:\Script\08_Eureka.avs" YV12_sample.avi 5


"C:\Program Files\x264\x264.exe" -I 300 -i 24 --scenecut 48 -b 1 --qp 18 --analyse all --direct spatial -w --me esa -m 6 --b-rdo --mixed-refs --bime -8 -t2 --nr 8 -o "E:\eureka.264" "D:\Script\zz_YV12.avs"


mp4box -fps 119.880 -add eureka.264 eureka.mp4

ren YV12_sample.avi.txt eureka-timecodes.txt
ren YV12_sample.avi eureka-beforeYV12.avi
mkvmerge -o output_eureka.mkv -A --aspect-ratio 1:4/3 --timecodes 1:eureka-timecodes.txt --chapters "D:\Script\eureka-chapter.txt" eureka.mp4 "E:\Eureka.ogg"


e:
del YV12_sample.avi
del YV12_sample.avi.txt

rem /////////////////////////////////////////////////////////////////////////////////////////////


copy output_GPO.mkv "D:\avi\ガンパレ_.mkv"
copy output_kasimasi.mkv "D:\avi\かしまし_.mkv"
copy output_RozenMaidenI.mkv "D:\avi\RozenMaidenI_.mkv"
copy output_RozenMaidenT.mkv "D:\avi\RozenMaidenT_.mkv"
copy output_maiotu.mkv "D:\avi\舞乙_.mkv"

copy output_keroro.mkv "D:\avi\ケロロ_.mkv"
copy output_BLOOD.mkv D:\avi\BLOOD_.mkv
copy output_eureka.mkv D:\avi\エウレカ_.mkv


echo.
echo ########################################################
echo 任務完了。ど疲れさんノシ
echo ########################################################
echo.

net send MainPC スケジュールエンコが終わりました。

goto shutdown
rem #####-shutdown-####################################################
:shutdown

c:
cd C:\sbin
poweroff.vbs

goto ended
rem #####-end-####################################################
:end

pause

rem #########################################################
:ended
--------------------------------------------------------------------------------------------
こんな感じ。
自分にとって、便利であるバッチが書けるといいですね。

 
-*-*-*-*-*-*-*-*-
 

.
.
.