TS半自動エンコードバッチを作成しました
で公開したバッチを更新しました。
更新内容
DGIndexでxxx.d2v.badが作成された場合に、
xxx.d2v.badをxxx.d2vにリネームして
使用するオプションを追加しました。
(xxx.d2vはxxx.d2v.bakにリネームします)
xxx.d2v.badについてはよく分かっていないのですが、
このファイルが作成されたときにxxx.d2vをそのまま使用すると
AviUtlで読み込めなかったり、音ズレすることがあります。
xxx.d2v.badの方をxxx.d2vにリネームして使用すると
問題なくエンコードできることが多いです。
バッチファイル
メモ帳などのテキストエディタに貼り付け、
TSCook.batなどのファイル名で保存してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 |
@echo off setlocal rem ############################################################# rem # TS半自動エンコードバッチ by Heet (https://heetnote.com/) # rem # 【更新日】2016/12/13 # rem # 【機能】TSをAviUtlでエンコードするための下準備をします。 # rem # 1. TsSplitterで不要なサービスを削除 # rem # 2. DGIndexでd2v/aacに分離、avsを作成 # rem # 3. FAWでaacを疑似wavに変換 # rem # 4. logoGuilloでCMカット用フレームリストを作成 # rem # 5. avsをAviUtlで読み込みお好きに料理してください # rem ############################################################# rem ##### 環境設定 ############################################## rem 注) パスを「""」で括らないでください。 rem フォルダ指定の最後に「\」を付けないでください。 rem 出力先フォルダ set OutputDir=D:\Video\Edit rem 「TsSplitter.exe」のパス set TsSplitterPath=D:\AviUtl\TsSplitter\TsSplitter.exe rem 「DGIndex.exe」のパス set DGIndexPath=D:\AviUtl\DGIndex\DGIndex.exe rem AVSテンプレートのパス set AvsTemplatePath=D:\AviUtl\DGIndex\template.avs rem 「fawcl.exe」のパス set fawclPath=D:\AviUtl\FakeAacWav\fawcl.exe rem logoGuillo関連の設定 set LOGOG_PATH=D:\AviUtl\logoGuillo\logoGuillo.exe set AVS2X_PATH=D:\AviUtl\logoGuillo\avs2pipemod\avs2pipemod.exe set AVSPLG_PATH=D:\AviUtl\DGIndex\DGDecode.dll rem ロゴデータ(.lgd)とロゴ検出パラメータ(.param)の格納フォルダ rem TSファイル名に含まれる放送局名と一致する必要があります。 rem ex)「ABCDE 第1話 (20161010-2400 BS11).ts」の場合 rem 「BS11.lgd」と「BS11.lgd.autoTune.param」が必要 set LOGO_DIR=D:\AviUtl\logoGuillo rem ##### オプション ############################################ rem CS放送をエンコードする場合は1を指定 set CSEnable=0 rem 番組情報及びPMT情報で分割する場合は1を指定 set SEP2Enable=1 rem 分割時に最も大きいTSファイル以外は削除する場合は1を指定 set DeleteTSEnable=1 rem d2v.badを使用する場合は1を指定(d2vはd2v.bakにリネームします) set UseBadEnable=1 rem ##### 設定終了 ############################################## rem ##### 処理開始 #$############################################ echo; echo ============================ echo 処 理 開 始 echo ============================ echo; rem 出力先フォルダを作成 if not exist "%OutputDir%\" ( mkdir "%OutputDir%" ) rem TsSplitterの追加パラメータを設定 set TsSplitterParam= if %CSEnable% == 1 ( set TsSplitterParam=-CS ) if %SEP2Enable% == 1 ( set TsSplitterParam=%TsSplitterParam% -SEP2 -OVL5,7,0 ) rem ##### 入力ファイル数分ループ ##### for %%i in (%*) do ( echo ===== 処理するファイル ====== echo %%i echo; echo ====== TsSplitter開始 ====== rem TsSplitterにTSを渡す "%TsSplitterPath%" -SD2 -SD3 -1SEG %TsSplitterParam% -OUT "%OutputDir%" -WAIT2 %%i echo; rem 最も大きいTSを残して削除 if %DeleteTSEnable% == 1 ( for %%n in ("%OutputDir%\%%~ni_*.ts") do ( for %%o in ("%OutputDir%\%%~ni_*.ts") do ( if %%~zn gtr %%~zo ( del "%%o" ) ) ) ) rem 出力されたTSファイル数分ループ for %%j in ("%OutputDir%\%%~ni_*.ts") do ( echo ====== DGIndex開始 ====== rem DGIndexにTSを渡す "%DGIndexPath%" -i "%%j" -o "%%~dpnj" -ia 5 -fo 0 -om 2 -yr 2 -at "%AvsTemplatePath%" -hide -exit echo; rem d2v.badを有効にする if %UseBadEnable% == 1 ( for %%p in ("%%~dpnj*.bad") do ( rem ***.d2vを***.d2v.bakにリネーム ren "%%~dpnj.d2v" "%%~nj.d2v.bak" rem ***.d2v.badを***.d2vにリネーム ren "%%p" "%%~nj.d2v" echo; ) ) rem AACファイル数分ループ for %%k in ("%%~dpnj PID*.aac") do ( echo ====== FAW開始 ====== rem FAWにAACを渡す "%fawclPath%" "%%k" echo; ) echo ====== logoGuillo開始 ====== rem logoGuillo用パラメータ設定 set LOGO_PATH=0 set PRM_PATH=0 set VIDEO_PATH=%%~dpnj.d2v set OUTPUT_PATH=%%~dpnj.avs.txt rem 放送局に対応するロゴデータを検索 for %%l in ("%LOGO_DIR%\*.lgd") do ( rem TSファイル名にロゴデータ名が含まれるか echo %%j | find "%%~nl" >NUL if not errorlevel == 1 ( set LOGO_PATH=%%l rem 放送局に対応するロゴ検出パラメータを検索 for %%m in ("%LOGO_DIR%\*.param") do ( rem ロゴ検出パラメータ名にロゴ名が含まれるか echo %%m | find "%%~nl" >NUL if not errorlevel == 1 ( set PRM_PATH=%%m ) ) ) ) rem CMカットサブルーチン呼び出し call :subCMCut ) echo; ) echo =========================== echo 処 理 完 了 echo =========================== echo; endlocal pause exit rem ##### CMカットサブルーチン ################################## :subCMCut rem ロゴ検出パラメータがあればCMカットをする if not %PRM_PATH% == 0 ( rem logoGuilloを実行 "%LOGOG_PATH%" -video "%VIDEO_PATH%" -lgd "%LOGO_PATH%" -avs2x "%AVS2X_PATH%" -avsPlg "%AVSPLG_PATH%" -prm "%PRM_PATH%" -out "%OUTPUT_PATH%" -outFmt keyF ) else ( echo --- ロゴデータが見つかりませんでした。 --- ) echo; exit /b |
使い方、注意事項などは以下の記事を参照してください。