2013年12月8日日曜日

logoGuilloのバッチ化

エンコードの下準備としてCMカットをやるわけだがこいつが非情にめんどくさい
ところが少し前?に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




まず上の方の処理で放送局を選択し、自身で作成したロゴデータのファイル名を第2引数としてCMカット処理「CHANNEL」に引き渡す。

CMカット処理では
受け取ったファイル名およびロゴ名を使用して処理を進める。
最後に(個人的には余計な)3ファイルについて削除を行っている。
参考ページの方では放送局の分だけCMカット処理を記述するようになっていたので、そこを改善した程度ですね。

ただしかしこいつの効果は絶大ですな。

EDBCからの呼び出しで録画終了時に上記処理+αをやらせてるので凄く捗る。

0 件のコメント:

コメントを投稿