EDCBで録画後TvtPlay用CMカットのチャプターを自動生成する。

noriokun4649

どうやらTS抜き界隈ではCMカットという便利な機能があるらしいです。

調べてみた感じCMカットしてエンコード。CMなしの動画ファイルを作成する方法の記事が多くありました。

んで今回はそれじゃちょっと都合が悪かったのでTvtPlayのチャプター自動生成する方法を記事にしてみました。


CMカットしてエンコードよりチャプターにこだわる理由としては
・NikoJKの実況ログと時間があわなくなる。
・CM見たくなったときに見れない。
・エンコードの処理が重い、面倒。

こんなかんじですね。

では早速書いてきます。

その前にTvtPlayのチャプターについておさらいしましょう。

TvtPlayではTSファイルがあるディレクトリの中にあるチャプターファイルとそのディレクトリのサブディレクトリ「chapters」

この2つからチャプターファイルを読み込みます。そしてファイル名はTSのファイル名と同じ必要があります。

では本題です。まず、CMカット用のプログラムをダウンロードしておきます。

使っている者としては
・chapter_exe
・logoframe
・join_logo_scp
の三つです。logoframeに関しては今回は触れてないので、このbatで作成されるチャプターは

ロゴによるCMカット判定はしていません。(時間がそれなりにかかるのと、無くても割と精度が高かったため

ロゴによるCMカット判定をしたい場合は情報がたくさんあるのでそちらを参考にしてくだし。

join_logo_scpでTSファイルを自動CMカット

ロゴ表示区間の検出、無音検索、シーンチェンジ検索をしていて、非常に精度が高いです。必要join_logo_scp_setこちらからダウンロードします。解凍するとzipファイルが4つありますが、「join_logo_scp試行環境_2.zip

環境の構築にはこのサイトを参考にしました。

同じく「join_logo_scp試行環境_2」を使用します。

とりあえず今回はCドライブ直下の「TV」フォルダ内の「EpgDataCap_Bon」ディレクトリにEDCBがあるとして説明してきます。

EDCBがおいてあるディレクトリの中に「Tools」というフォルダがあると思うのでその中に

先ほどダウンロードして上書きでアップデート等済ませた「join_logo_scp試行環境_2」の中身を

「cm_cut」というフォルダ内に直接入れてやります。

dadadad.png


「cm_cut」フォルダを作って

se.png

コピペ

んで「jlse_bat_with_rename.bat」というのが有りますが、コレは今回使いません。

それと「jlse_bat.bat」の方は中身を少し書き換えました。
cm_cut.png

書き換えた部分は106から108、111から114ですね。

ren "%OUTDIR%%OUTNAME%%file_txt_cpt_tvt%" "%OUTNAME:~0,-1%.chapter"

これと
copy "%OUTDIR%%OUTNAME%%OUTNAME:~0,-1%.chapter" "%2"
del "%2\*.lwi"

これを追加しました。

cmカットプログラムで生成したチャプターファイルのファイル名を初期の名前から

録画したTSファイルの名前にリネームして、TSファイルと同じ場所にコピーしてる感じです。

最後にbatファイルの名前を「cm_cut.bat」にリネームして、これでCMカットプログラムのほうは準備が終わりました。

次はEDCB録画後に実行されるbatファイルの作成です。

@echo off
@setlocal enabledelayedexpansion
call :sub1 $FilePath$
call C:\TV\EpgDataCap_Bon\Tools\cm_cut\cm_cut.bat !rename:~1! $FolderPath$
call :sub2 !rename:~1,-3!.chapter
call :sub2 !rename:~1!
@move "$FolderPath$\$FileName$.chapter" "$FolderPath$\chapters\$FileName$.chapter"
exit
:sub1
set name=
for %%f in (%*) do (
set locals=%%f
set name=!name! !locals!
)
@echo 変更前:!name:~1!
set "rename=!name: =_!"
@echo 変更後:!rename:~1!
@move "!name:~1!" !rename:~1!
exit /b
:sub2
set src=%1
@echo 変更前:!src!
set dst=!src:_= !
@echo 変更後:!dst!
@move !src! "!dst!"
exit /b

こんな感じに書いてみました。

$$で囲われてるのはEDCBのマクロ機能を利用してる箇所です。

bat実行時にEDCBが自動でそれらを書き換えてくれます。

これで、正常に実行出来た場合は、録画したTSファイルがあるディレクトリのパスが「D:\TV_rec」だとすると

「D:\TV_rec」内に「chapters」フォルダがあれば、「D:\TV_rec\chapters\録画ファイル名.chapter」

という感じでファイルが作成されます。

「chapters」フォルダがなかった場合は「D:\TV_rec\録画ファイル名.chapter」という感じで作成されます。

このbatファイルでの注意点は録画ディレクトリまでのパスに余白があるとダメ!だということです。

録画したファイル名に全角スペースが存在していてもbat処理出来るように書きましたが

録画ディレクトリまでのパスまで対応する気力が無かった。。。。。。

あとはコレを適当な名前で保存して、EDCBの録画後に実行されるbatとして登録すればおkです。

cm.png

さて、最後はTvtPlay側の対応です。

TvtPlayは初期だと多分チャプタースキップのボタンが登録されていないと思うので、

TVTestの「Plugins」フォルダ内にある「TvtPlay.ini」を書き換えてボタンを追加してあげます。

Tvtplayのチャプター機能を使って快適なTSファイル再生 : アニメ実況しようぜ!

実況は生でやるのがいい!でも深夜のアニメなんて起きてられるか!深夜4時のサッカーなんて見られるか!ということで、TSファイルを再生してみるという人が多いでしょう。TvtPlay+TVCaptionMod2+NicoJKModで快適なTS再生環境をつくるとの記事やTvtplayとNicoJKPlayModで録画

その設定については上記のブログを参考にしてください(投げやり

いやぁ。。。大分楽になりましたね。。。

CMカットはメインで使っている液晶テレビに搭載されていて便利だなーと思ってたんですが

TSファイルでも出来るとは、、、大本のプログラムを作成した方々に感謝ですね。

ということでよきTS抜きライフを!! 何かありましたらコメントしてください。

batファイルの作成に当たって参考にさせていただいたサイト↓

Windows ファイル名の半角空白文字をアンダーバーに置き換えるバッチ - min117の日記

Windowsでファイル名に半角空白が入ったファイル名は本当に扱いにくい。 例えば for /F %i in ('dir /b') do @echo %i なんてやったときに、ファイル名に半角空白があるとデリミタと解釈されちゃってtokenが複数入ってしまうなんてことになる。 // これを防ぐために半角空白を全てアンダーバーに変えてしまうバッチを作る。動きはこんな感じ。 「コンピューター - ショートカット.lnk」というファイルがあったとして 今回作ったバッチ「blank空白を消すバッチ.bat」をコマンドプロンプトから引数なしで起動実行すると ファイル名を変更する前後でどうなるかを表示して…

バッチファイル界の魔境『遅延環境変数』に挑む(おまけもあるよ) - Qiita

 今回は、**for**と双璧を為すバッチファイル界の魔境、**遅延環境変数**に挑みたいと思います。#1.遅延環境変数とは? さて、大分前に投稿した[.bat(バッチファイル)のforコマンド解説。](http://qiita...

関連記事
スポンサーサイト

Comments 0

There are no comments yet.

Leave a reply