ところが少し前?にlogoGuilloなるツールが開発されていたことにちょっと前ようやく気が付きました。
http://loggialogic.blogspot.jp/
で、昨日までGUI上で手運用してきたわけですが、
如何せん放送局が変わるたびにロゴデータを選択しなおしたりと煩わしい ということでD&Dで動いてくれちゃうバッチ化しました というお話
参考にしたのがこちらの記事
空に架かる橋自動mp4作成まとめ(途中) の中の logoGuillo_放送局処理(自動選択).bat
http://soranikakaruhashi.blog.fc2.com/blog-entry-100.html#logoGuillo_select
上記を参考(というかパクって)ちょっとだけ管理しやすく自分が使いやすく
をコンセプトに書き換えてみた。
@ECHO OFF
setlocal
@REM テストする変数
SET FILENAME="%~n1"
echo 処理対象ファイル名 %FILENAME%
echo 放送局ごとの処理をしていきます。
echo 放送局を判定したら表示します。
echo.
@REM 検索対象(※ファイル名に放送局名を入れておく。)
@REM ※検索対象外の放送局は、logoGuilloで処理されない(自動CMカットなし)
rem SET CHANNEL000="ファイル名に入っている放送局名"
@rem
@rem 地上デジタル放送
@rem
@rem 民放は受信可能なものを、自分で指定。
SET CHANNEL006="(TBS)"
SET CHANNEL008="(CX)"
SET CHANNEL009="(MX)"
rem TBS
ECHO %FILENAME% | find %CHANNEL006% >NUL
IF %ERRORLEVEL% EQU 0 (
ECHO %CHANNEL006% TRUE
rem 第2引数に用意したロゴファイル名を入れる
call :CHANNEL "%~dpn1" "TBS"
)
rem フジテレビ
ECHO %FILENAME% | find %CHANNEL008% >NUL
IF %ERRORLEVEL% EQU 0 (
ECHO %CHANNEL008% TRUE
call :CHANNEL "%~dpn1" "フジテレビ"
)
rem 東京MX
ECHO %FILENAME% | find %CHANNEL009% >NUL
IF %ERRORLEVEL% EQU 0 (
ECHO %CHANNEL009% TRUE
call :CHANNEL "%~dpn1" "TOKYOMX"
)
rem 放送局名が見つからない場合は、logoGuilloで処理されない(自動CMカットなし)
endlocal
exit /b
rem CMカット処理
:CHANNEL
rem 下記内容についてはlogoGuilloのGUIで一通り設定を終えた上で「BATを書きだし」によって取得可
rem ロゴ及びTSファイルについては変数指定に書き換え
rem logoGuillo
set LOGOG_PATH=C:\tools\logoGuillo_v208beta_r4\logoGuillo.exe
rem avs2pipemod
set AVS2X_PATH=C:\Program Files (x86)\AviSynth 2.5\plugins\avs2pipemod.exe
rem m2v.vfp
set AVSPLG_PATH=C:\Program Files (x86)\AviSynth 2.5\plugins\m2v.vfp
rem ロゴデータ
set LOGO_PATH="C:\tools\ロゴ\%~2.lgd"
rem ロゴデータ検出パラメータ
set PRM_PATH="C:\tools\ロゴ\%~2.lgd.autoTune.param"
rem 対象TS
set VIDEO_PATH=%~1.ts
rem CMカット結果の出力先
set OUTPUT_PATH=%~1.ts.txt
rem keyframe形式
( "%LOGOG_PATH%" -video "%VIDEO_PATH%" -lgd "%LOGO_PATH%" -avs2x "%AVS2X_PATH%" -avsPlg "%AVSPLG_PATH%" -prm "%PRM_PATH%" -out "%OUTPUT_PATH%" -outFmt keyF )
rem 個人的には不要なので削除
del "%~1.chapters.txt"
del "%~1_autoCutSummary.log"
del "%~1.ts_frmLvOut.csv"
endlocal
exit /b
setlocal
@REM テストする変数
SET FILENAME="%~n1"
echo 処理対象ファイル名 %FILENAME%
echo 放送局ごとの処理をしていきます。
echo 放送局を判定したら表示します。
echo.
@REM 検索対象(※ファイル名に放送局名を入れておく。)
@REM ※検索対象外の放送局は、logoGuilloで処理されない(自動CMカットなし)
rem SET CHANNEL000="ファイル名に入っている放送局名"
@rem
@rem 地上デジタル放送
@rem
@rem 民放は受信可能なものを、自分で指定。
SET CHANNEL006="(TBS)"
SET CHANNEL008="(CX)"
SET CHANNEL009="(MX)"
rem TBS
ECHO %FILENAME% | find %CHANNEL006% >NUL
IF %ERRORLEVEL% EQU 0 (
ECHO %CHANNEL006% TRUE
rem 第2引数に用意したロゴファイル名を入れる
call :CHANNEL "%~dpn1" "TBS"
)
rem フジテレビ
ECHO %FILENAME% | find %CHANNEL008% >NUL
IF %ERRORLEVEL% EQU 0 (
ECHO %CHANNEL008% TRUE
call :CHANNEL "%~dpn1" "フジテレビ"
)
rem 東京MX
ECHO %FILENAME% | find %CHANNEL009% >NUL
IF %ERRORLEVEL% EQU 0 (
ECHO %CHANNEL009% TRUE
call :CHANNEL "%~dpn1" "TOKYOMX"
)
rem 放送局名が見つからない場合は、logoGuilloで処理されない(自動CMカットなし)
endlocal
exit /b
rem CMカット処理
:CHANNEL
rem 下記内容についてはlogoGuilloのGUIで一通り設定を終えた上で「BATを書きだし」によって取得可
rem ロゴ及びTSファイルについては変数指定に書き換え
rem logoGuillo
set LOGOG_PATH=C:\tools\logoGuillo_v208beta_r4\logoGuillo.exe
rem avs2pipemod
set AVS2X_PATH=C:\Program Files (x86)\AviSynth 2.5\plugins\avs2pipemod.exe
rem m2v.vfp
set AVSPLG_PATH=C:\Program Files (x86)\AviSynth 2.5\plugins\m2v.vfp
rem ロゴデータ
set LOGO_PATH="C:\tools\ロゴ\%~2.lgd"
rem ロゴデータ検出パラメータ
set PRM_PATH="C:\tools\ロゴ\%~2.lgd.autoTune.param"
rem 対象TS
set VIDEO_PATH=%~1.ts
rem CMカット結果の出力先
set OUTPUT_PATH=%~1.ts.txt
rem keyframe形式
( "%LOGOG_PATH%" -video "%VIDEO_PATH%" -lgd "%LOGO_PATH%" -avs2x "%AVS2X_PATH%" -avsPlg "%AVSPLG_PATH%" -prm "%PRM_PATH%" -out "%OUTPUT_PATH%" -outFmt keyF )
rem 個人的には不要なので削除
del "%~1.chapters.txt"
del "%~1_autoCutSummary.log"
del "%~1.ts_frmLvOut.csv"
endlocal
exit /b
まず上の方の処理で放送局を選択し、自身で作成したロゴデータのファイル名を第2引数としてCMカット処理「CHANNEL」に引き渡す。
CMカット処理では
受け取ったファイル名およびロゴ名を使用して処理を進める。
最後に(個人的には余計な)3ファイルについて削除を行っている。
参考ページの方では放送局の分だけCMカット処理を記述するようになっていたので、そこを改善した程度ですね。
ただしかしこいつの効果は絶大ですな。
EDBCからの呼び出しで録画終了時に上記処理+αをやらせてるので凄く捗る。
0 件のコメント:
コメントを投稿