「TVRockとの連携」の編集履歴(バックアップ)一覧に戻る
TVRockとの連携 - (2009/01/16 (金) 21:56:06) のソース
*TVRockとの連携 MediaCoderは 1.フリーである。 2.TSファイルを直接読み込める。 3.コマンドラインから動作を制御できる。 とTVRockで録画したファイルを自動でエンコードするのに最適な条件がそろっています。 そこでTVRockで録画後に自動でエンコードする方法について紹介いたします。 *1.メディアコーダーのコマンドラインオプション メディアコーダーのコマンドラインオプションは以下のようになっています。 (MediaCoder 英語版Wikiより[http://mediacoder.sourceforge.net/wiki/index.php/Command_line_options]) MediaCoder.exe [-start] [-exit] [-preset <preset file>] [-ui <ui mode>] [-ext <extension id>][-assume=yes/no/cancel] <files> * -start: プログラムが起動したら、すぐにエンコードを始めます。 * -exit: 全てのファイルをエンコードし終わったら、プログラムを終了します。 * -preset: プリセットファイルを指定します。 * -ui: インターフェースモードを指定します。(0: simple mode, 1: skinned mode, 2: normal mode, 3: expert mode) * -ext: 拡張機能を指定します。 * -assume: 確認ダイアログに自動的に応答する答えを選びます。省略しても確認ダイアログ30秒後に自動的に消える。 * <files>: エンコードするファイルを指定します。複数指定可。ファイル名に半角スペースを含む場合は""でかこって。(必須) 付記: * エンコードするファイルにはファイル名だけでなく、キューファイル(一行ごとにエンコードするファイル名を書いたのみのテキストファイル)も指定できます。 * 複数のプリセットファイルが指定できます。-preset aa.xml -preset bb.xml みたいに続けて。 *2.TVRockのとの連携 TVRockの設定からプロセスTabを選択し、以下のように入力してください。 > エンコード:[TsSplitter.exeのパス] -SD -1SEG -WAIT2 -OVL5,7,0 "%1" > エンコード:[MediaCoderのパス] -start -exit -preset [プリセットファイル] "%3%4_HD.ts" TVRockの番組予約で、「終了後コマンド」に「エンコード」を選択すれば、TVRockで録画後に 自動的にエンコードが始まります。 **例) TsSplitterのインストールパスが"D:\DTV\TsSplitter\TsSplitter.exe"で、 MediaCoderのインストールパスが"D:\DTV\MediaCoder\MediaCoder.exe"の場合 MediaCoderで使用するプリセットファイルが"D:\dtv\psp.xml"の場合 > エンコード:"D:\DTV\TsSplitter\TsSplitter.exe" -SD -1SEG -WAIT2 "%1" > エンコード:"D:\DTV\MediaCoder\MediaCoder.exe" -start -exit -preset d:\dtv\psp.xml "%3%4_HD.ts" (TsSplitterのオプションはお好みで) (-presetのオプションは省略できます。) *3.エンコード用スクリプトの使用 2.で紹介した方法では ・エンコード終了前に別の録画が始まると同時にエンコードジョブが立ち上がる。 ・TsSplitterで-SEPオプションを使用して、録画した前後の番組をカットできない。 などの問題があります。 そこで、TVRockからMediaCoderを使用してのエンコード用スクリプトを書きました。 このスクリプト、taskenc.vbsでは ・エンコード中はロックファイルを作成し、その間は別番組のエンコードは実行を待つ。 ・TsSPlitterが出力したファイルの中から一番ファイルサイズが大きいものを自動的に選んでエンコードする。 ・MediaCoderの起動を禁止する時間帯を指定できる。(深夜帯のエンコードは避けたいなど) の制御を行います。 taskenc.vbsの使用方法インストール 1.ダウンロードしたtaskenc.vbsを適当なフォルダに置く 2.taskenc.vbsをメモ帳等で開き、TsSplitterとMediaCoderのインストールパスを設定する。 その他スクリプト内で設定をカスタマイズできます。 > =taskenc.vbs内の記述================================================================ > '=TsSplitterの場所をフルパスで指定する。絶対に設定する必要がある。 > gsSpliter = "D:\DTV\TsSplitter\TsSplitter.exe" ←ここと > 'MediaCoderの実行ファイル名をフルパスで実行する。絶対に設定する必要がある。 > gsMediaCoder = "D:\DTV\MediaCoder\MediaCoder.exe" ←ここは必ず変更する > ==================================================================================== 3.MediaCoderの一般の設定で出力先を&bold(){TVRockのtsファイルの出力先と同じ}&u(){}に設定し、メニューから [ファイル]→[現在の設定を保存]を選択する。 4.TVRockの設定からプロセスTabを選択し、以下のように入力してください。 > 自動エンコード:start "Encodeing(%4)" /min /LOW cscript "[taskenc.vbsのフルパス]" "%1" /p:"[使用するプリセットファイル名]" ** 例) taskenc.vbsのインストールパスが"d:\tv\bin\taskenc.vbs"で、 MediaCoderで使用するプリセットファイルが"D:\dtv\psp.xml"の場合 > 自動エンコード:start "Encodeing(%4)" /min /LOW cscript "d:\tv\taskenc.vbs" "%1" /p:"d:\tv\psp.xml" TVRockの番組予約で、「終了後コマンド」に「自動エンコード」を選択すれば、TVRockで録画後に 自動的にエンコードが始まります。 このスクリプトはエンコード中は、taskenc.vbsを置いたフォルダに"taskenc.lock"というロックファイルを 作成し、MediaCoderが同時に複数起動しないようにします。 MediaCoderが起動していないに、エンコードが始まらない場合は"taskenc.lock"を削除してください。 また、taskenc.vbsを置いたフォルダにログを作成します。