TVRockと連携して自動でTS→H.264変換

 する方法を今までずっと模索していたのですが、やっといいやり方が見つかったかもしれない。今まではMediaCoderというフリーソフトを使って試していたのですが、このソフトがなかなかのクセモノで、バグが多いのか、素直に動いてくれない(笑。2chスレとかでも頻繁に情報交換されており、また毎日のように最新バージョンが上がっているので、今後期待したいところではあるのですが…。Cuda対応ってところは魅力的なんですけどねー。

 というわけで、今回はうまく動作しないMediaCoderではなく、BonTsDemuxを使用します。生成されたMP4ファイルは元のTSファイルの1/5以下の容量に収まり、かつアニメの品質は24インチフルHD液晶で全画面表示させても若干ぼやける程度で、さほど遜色なく見られる品質なので、これで十分かと思います。しかも今のところ音ズレもないのでいい感じ。以下、私のための備忘録(笑。用意するものは以下の通り。

2011.09.17追記:「BonTsDemux v1.10+10k7+nogui+es+fix04 FFmpeg 0.6.1 (再々)」以降に同梱しているFFmpeg0.6.1はlibfaacが使えないため、確認していませんが動作しない可能性があります。質は良くないようですが、FFmpeg内蔵のAACエンコーダを使う場合は、下のコメント欄にあるようにすればできるようです。情報提供ありがとうございます>れんと様

※実はtaskenc.vbsはMediaCoder用に有志の方が作ってくださった自動実行用ファイルのようなのですが、これを活用させていただきます(笑。

1. TVRockとTsSplitter、BonTsDemuxをダウンロードして解凍し、それぞれProgram Filesフォルダなど、適当なフォルダに配置します。

2. BonTsDemuxのフォルダ内にあるcap_sts_sea.iniファイルをメモ帳などで開き、以下の内容を追加します。

X264_mp4 =-f mp4 -vcodec libx264 -aspect 16:9 -vtag mp4v -crf 24 -flags2 dct8x8 -level 51 -acodec libfaac -ac 2 -ar 48000 -ab 128k -s 1280x720 -y -threads 8 -coder 1 -deinterlace -top -1 -qmin 10 
X264_mp4_EXT =mp4

ちなみに、上記設定の-crfの数値はアニメで500MB程度に収めるため24に設定してみましたが、この数値を下げると品質がアップするようです(その分ファイル容量は大きくなります)。29分録画したアニメですと、もとのTSファイルがほぼ3GB程度なのですが、この値を24にすると出来上がるMP4ファイルは500〜600MB程度に、20にすると1GB程度になるみたいです。また、私の使用PCは4コア(論理8コア)あるため、スレッド数は8にしてます。これでかなりCPU使用効率が良くなり、速度が上がっているようです。

3. taskenc.vbsファイルをTVRockフォルダ内に配置します。さらにtaskenc.vbsファイルをメモ帳などで開き、以下の部分を変更します(パスは環境に応じて変更してください)。

23: gsSpliter    = "D:\Program Files (x86)\TsSplitter Ver1.23\TsSplitter.exe" '←変更
…(中略)…
26: gsMediaCoder = "D:\Program Files (x86)\bontsdemux1.10+10k7\BonTsDemux.exe" '←変更
…(中略)…
47: gsMediaCoderOpt = "-encode X264_mp4 -rf64 -vf -start -quit -i " '←変更

ちなみに同時エンコードを避けるためのWaitStart(aTime)関数内の待機時間がもともと10分になっていたので、1分と短めに変更しています。

271: WriteLog(sEncodeingFile & "がエンコード中ですので1分待ちます。") '←変更
…(中略)…
276: WScript.Sleep 1 * 60 * 1000 '←変更

4. TVRock設定の「プロセス」タブで「コマンドを実行する」にチェックを入れ、以下の内容を入れます(taskenc.vbsのパスは環境に応じて変更してください)。

TN:start "Encodeing(%4)" /min /LOW cscript "D:\Program Files (x86)\TvRock\taskenc.vbs" "%1"

設定はこれで完了…だったと思う(笑。このtaskenc.vbsスクリプトを単体で動作させる場合ですが、Windows Vista以降の場合、スタートメニューを開いて、入力窓から「cmd.exe」と入力し、開いたコマンドプロンプト画面上で以下のコマンドを入力するだけです(taskenc.vbsのパスは環境に応じて変更してください)。

例:
cscript "D:\Program Files (x86)\TvRock\taskenc.vbs" "d:\tv\はなまる幼稚園 #1 はなまるな入園式/はなまるなおかあさん.ts"

ちなみに、はなまる幼稚園第1話のTSファイルは3.56GBでしたが、変換後のMP4ファイルは526MBになりました(笑。また、私のCore i7 860 3.8GHz/Windows 7 64bitマシンでの変換速度ですが、ffmpegの変換部分のみ(BonTsDemux)では20分程度でした。しばらくこの環境で試してみることにします。

【参考リンク】

今晩は聖痕のクェイサー放送

 開始ですね。でももうすでにWeb上では第1話が無料配信されているようですので、待ちきれない方や見逃してしまった方などはアニメワンのほうで視聴されるといいかもですね。