地デジTSファイル編集
録画ファイル形式が MPEG-2+AAC の為に、Corel VideoStudio ProX3 で編集できないという問題がありましたが、音声をAC3に変換することで可能になりました、という内容です。Cygwin、ffmpeg、tsMuxeRなどを使いスクリプトで処理しました。
環境
- OS:Windows7 64bits
- キャプチャ:DY-UD200(Ver.1.0.0.8)
- キャプチャ用ドライバ:BonDriver_dyud_v8.4.2
- USB用ドライバ:DY-UD200_w_WinUSB2.1
- 視聴アプリ:TVTest_0.6.4
- 録画専用アプリ:RecTest0.3.1
- 統括(?)アプリ:TvRock09t8a+TvRockOnTVTest_8.1
アプリやドライバはDTV関係ツールからダウンロードしました(投稿者・管理者の方に感謝)。
パッチを当てたり、改造することなく快適に録画できています。DY-UD200に付属するCDは一切インストールしていません。付属の視聴ソフトがキャプチャのファームウェアを書き換えるというようなことも書かれていますし、そもそも使い勝手がよくないとのことです。
各アプリ・ドライバのインストール、設定は巷間数多のサイトを参照しましたが、トラブルもなくスムーズに完了しました(サイト管理・運営の方に感謝)。
形式判定用アプリの準備
ファイルの形式判定にはMediaInfo 0.7.31を使いました。以前は、AVICodecを使ってましたが、AVICodecの作者さんが開発を止めるに当たり、MediaInfo側にソースなどを委譲したそうです。で、地デジ用にMediaInfoを使うことにしました。
手順
地デジTSファイルのカット
1時間の録画ファイルは7GB程度になるので、必要な部分だけをあらかじめ切出しています。
- 切出し用アプリ:HDTVtoMPEG2(v1.11.94)
ファイルは細切れになりますが、そのままで使っています。無劣化ですが、細かく切出しすぎると時折壊れるようです。その為、なるべく大き目に切出すようにしています。
AACをAC3に変換
TSファイルをdemux(音声・映像の分離)して、AACをAC3に変換します。
- 変換用アプリ:MediaCoder(0.7.3.4640)
といっても、使うのは codecsフォルダ内のffmpegです。
- (MediaCoder)/codecs/ffmpeg64.exe SVN-r21753
$ ffmpeg64.exe -y -i input.ts -vcodec copy temp.m2v -acodec ac3 -ab 192k temp.ac3
MPEG-2とAC3のmux
つぎのツールで、mux(音声・映像の合成)します。
- (MediaCoder)/tools/tsMuxeR.exe 1.10.6
またtsMuxeRのGUI版も、メタファイルの作成のために必要です。
- まずは、tsMuxerGUIを起動して、映像ファイルtemp.m2v、音声ファイルtemp.ac3をドロップします。
メタファイルを保存しておきます(temp.meta)。もちろん、GUIで変換してもかまわないのですが、HDTVtoMPEG2で細切れになっているので、最終的にはバッチ処理をしたいと思います。
$ tsMuxeR.exe temp.meta output.m2ts
これで、ProX3に読み込める形式になりました。
シェルスクリプト
次のようなシェルスクリプトが組めます。
#! /usr/bin/sh ipath=`cygpath -w $1` ffmpeg64.exe -y -i ${ipath} -vcodec copy temp.m2v -acodec ac3 -ab 192k temp.ac3 echo "MUXOPT --no-pcr-on-video-pid --new-audio-pes --vbr --vbv-len=500" >temp.meta echo "V_MPEG-2, \"temp.m2v\", fps=29.970" >>temp.meta echo "A_AC3, \"temp.ac3\"" >>temp.meta tsMuxeR.exe temp.meta $2 #rm -f temp.m2v temp.ac3 temp.meta
たとえば「4vspx3.sh」などとして保存し、cygwinから実行します。
$ 4vspx3.sh input.ts output.m2ts or $ for f in *.ts > do > 4vspx3.sh $f $f.m2ts >done
などと実行できます。もちろん、引数処理などで飾りをつけたり、拡張子のつけ方を美しくしたり、各ツールにパスを通したり、cygwinをインストールしたり(^^)は必要とは思いますが。
最後に
なぜ、細切れの動画を扱うのか?という疑問がありますが、これは、ProX3のシーン検出にバグがあるためです。ProX3上に取り込んで動画をカットしてしまうとシーン検出が不能になるのです。シーン検出にはそれなりに時間がかかることと、検出が必要な部分が大概限定されているので、バラバラのまま扱うほうが時間の節約になるという理由です。