TVRockとの連携
MediaCoderは
1.フリーである。
2.TSファイルを直接読み込める。
3.コマンドラインから動作を制御できる。
1.フリーである。
2.TSファイルを直接読み込める。
3.コマンドラインから動作を制御できる。
とTVRockで録画したファイルを自動でエンコードするのに最適な条件がそろっています。
そこでTVRockで録画後に自動でエンコードする方法について紹介します。
そこでTVRockで録画後に自動でエンコードする方法について紹介します。
1.メディアコーダーのコマンドラインオプション
メディアコーダーのコマンドラインオプションは以下のようになっています。
(MediaCoder 英語版Wikiより[http://mediacoder.sourceforge.net/wiki/index.php/Command_line_options])
(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 "%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"の場合
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のオプションは省略できます。)
(-presetのオプションは省略できます。)
3.エンコード用スクリプトの使用
2.で紹介した方法では
・エンコード終了前に別の録画が終了すると同時にエンコードジョブが立ち上がる。
・TsSplitterで-SEPオプションを使用して、録画した前後の番組をカットできない。
などの問題があります。
そこで、TVRockからMediaCoderを使用してのエンコード用スクリプトを書きました。
このスクリプト、taskenc.vbsでは
・エンコード中はロックファイルを作成し、その間は別番組のエンコードは実行を保留する。
・TsSPlitterが出力したファイルの中から一番ファイルサイズが大きいものを自動的に選んでエンコードする。
・MediaCoderの起動を禁止する時間帯を指定できる。(深夜帯のエンコードは避けたいなど)
の制御を行います。
・エンコード終了前に別の録画が終了すると同時にエンコードジョブが立ち上がる。
・TsSplitterで-SEPオプションを使用して、録画した前後の番組をカットできない。
などの問題があります。
そこで、TVRockからMediaCoderを使用してのエンコード用スクリプトを書きました。
このスクリプト、taskenc.vbsでは
・エンコード中はロックファイルを作成し、その間は別番組のエンコードは実行を保留する。
・TsSPlitterが出力したファイルの中から一番ファイルサイズが大きいものを自動的に選んでエンコードする。
・MediaCoderの起動を禁止する時間帯を指定できる。(深夜帯のエンコードは避けたいなど)
の制御を行います。
taskenc.vbsの使用方法インストール
1.↓のtaskenc.vbsをダウンロードして適当なフォルダに置く
taskenc.vbs
2.taskenc.vbsをメモ帳等で開き、TsSplitterとMediaCoderのインストールパスを設定する。
スクリプト内でその他の設定もカスタマイズできます。
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の一般の設定で出力先をTVRockのtsファイルの出力先と同じフォルダに設定し、メニューから
[ファイル]→[現在の設定を保存]を選択する。
プリセットファイル上の出力先フォルダもTVRockのtsファイル出力先と同じに設定して置いてください。
[ファイル]→[現在の設定を保存]を選択する。
プリセットファイル上の出力先フォルダもTVRockのtsファイル出力先と同じに設定して置いてください。
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"の場合
MediaCoderで使用するプリセットファイルが"D:\dtv\psp.xml"の場合
自動エンコード:start "Encodeing(%4)" /min /LOW cscript "d:\tv\taskenc.vbs" "%1" /p:"d:\tv\psp.xml"
#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (tvrock.jpg)
TVRockの番組予約で、「終了後コマンド」に「自動エンコード」を選択すれば、TVRockで録画後に
自動的にエンコードが始まります。
自動的にエンコードが始まります。
このスクリプトはエンコード中は、taskenc.vbsを置いたフォルダに"taskenc.lock"というロックファイルを
作成し、MediaCoderが同時に複数起動しないようにします。
MediaCoderが起動していないに、エンコードが始まらない場合は"taskenc.lock"を削除してください。
また、taskenc.vbsを置いたフォルダにログを作成します。
作成し、MediaCoderが同時に複数起動しないようにします。
MediaCoderが起動していないに、エンコードが始まらない場合は"taskenc.lock"を削除してください。
また、taskenc.vbsを置いたフォルダにログを作成します。