地デジTSファイル編集

録画ファイル形式が MPEG-2+AAC の為に、Corel VideoStudio ProX3 で編集できないという問題がありましたが、音声をAC3に変換することで可能になりました、という内容です。Cygwinffmpeg、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程度になるので、必要な部分だけをあらかじめ切出しています。

ファイルは細切れになりますが、そのままで使っています。無劣化ですが、細かく切出しすぎると時折壊れるようです。その為、なるべく大き目に切出すようにしています。

AACをAC3に変換

TSファイルをdemux(音声・映像の分離)して、AACをAC3に変換します。

といっても、使うのは codecsフォルダ内のffmpegです。

 $ ffmpeg64.exe -y -i input.ts -vcodec copy temp.m2v -acodec ac3 -ab 192k temp.ac3
MPEG-2とAC3のmux

つぎのツールで、mux(音声・映像の合成)します。

また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上に取り込んで動画をカットしてしまうとシーン検出が不能になるのです。シーン検出にはそれなりに時間がかかることと、検出が必要な部分が大概限定されているので、バラバラのまま扱うほうが時間の節約になるという理由です。