バッチファイル実行機能 - nekopanda/Amatsukaze GitHub Wiki
バッチファイルの実行タイミングは、TSファイル追加時、エンコード実行直前、エンコード実行直後、の3つ。それぞれの実行バッチファイルは個別に設定できる。TSファイル追加時に実行するバッチファイルは、TSファイルドロップ時に出る画面で選択可能。他の2つはプロファイルで設定可能。
batフォルダに 追加時_, 実行前_, 実行後_ プリフィックスを付けてバッチファイルを置くと、GUIから選択できるようになる。
| 変数名 | 説明 |
|---|---|
| ITEM_ID | アイテムに一意に振られるID。 追加時、実行前、実行後で同じアイテムを追跡できる。 Amatsukazeを再起動するとIDが変わるので注意。 |
| IN_PATH | 入力ファイルパス |
| OUT_PATH | 出力ファイルパス(拡張子を含まない) |
| SERVICE_ID | サービスID(チャンネルID) |
| SERVICE_NAME | サービス名(チャンネル名) |
| TS_TIME | TSファイルの時刻 |
| ITEM_MODE | モード。下表参照。 |
| ITEM_PRIORITY | アイテム優先度(1-5) |
| EVENT_GENRE | 番組ジャンル |
| IMAGE_WIDTH | 映像幅 |
| IMAGE_HEIGHT | 映像高さ |
| EVENT_NAME | 番組名 |
| TAG | タグ(セミコロン区切り) |
ITEM_MODEのモード
| モード | 説明 |
|---|---|
| Batch | 通常 |
| AutoBatch | 自動追加 |
| Test | テスト |
| DrcsCheck | DRCSチェック |
| CMCheck | CMチェック |
例
echo ITEM_ID=%ITEM_ID%
echo IN_PATH=%IN_PATH%
echo OUT_PATH=%OUT_PATH%
echo SERVICE_ID=%SERVICE_ID%
echo SERVICE_NAME=%SERVICE_NAME%
echo TS_TIME=%TS_TIME%
echo ITEM_MODE=%ITEM_MODE%
echo ITEM_PRIORITY=%ITEM_PRIORITY%
echo EVENT_GENRE=%EVENT_GENRE%
echo IMAGE_WIDTH=%IMAGE_WIDTH%
echo IMAGE_HEIGHT=%IMAGE_HEIGHT%
echo EVENT_NAME=%EVENT_NAME%
echo TAG=%TAG%
実行結果
ITEM_ID=40
IN_PATH=D:\ts\201108020200020102-ゆるゆり 第5話「あかりとかミンミンゼミとかなく頃に」.ts
OUT_PATH=D:\ts\encoded\201108020200020102-ゆるゆり 第5話「あかりとかミンミンゼミとかなく頃に」
SERVICE_ID=1072
SERVICE_NAME=テレビ東京1
TS_TIME=2011/08/02 2:14:58
ITEM_MODE=Batch
ITEM_PRIORITY=3
EVENT_GENRE=アニメ/特撮 - 国内アニメ
IMAGE_WIDTH=1440
IMAGE_HEIGHT=1080
EVENT_NAME=ゆるゆり 第5話「あかりとかミンミンゼミとかなく頃に」
TAG=
| 変数名 | 説明 |
|---|---|
| PROFILE_NAME | プロファイル名 |
例
echo PROFILE_NAME=%PROFILE_NAME%
実行結果
PROFILE_NAME=サンプル_x265-高品質インタレ解除アニメ用(CUDA必須)
| 変数名 | 説明 |
|---|---|
| SUCCESS | 成功=1,失敗=0 |
| ERROR_MESSAGE | エラーメッセージ(失敗したときのみ) |
| IN_DURATION | 入力ファイルの再生時間 |
| OUT_DURATION | 出力ファイルの再生時間 |
| IN_SIZE | 入力ファイルのサイズ(バイト単位) |
| OUT_SIZE | 出力ファイルのサイズ(バイト単位) |
| LOGO_FILE | ロゴファイルパス |
| NUM_INCIDENT | インシデント数 |
| JSON_PATH | 出力JSONパス |
| LOG_PATH | ログファイルパス |
例
echo SUCCESS=%SUCCESS%
echo ERROR_MESSAGE=%ERROR_MESSAGE%
echo IN_DURATION=%IN_DURATION%
echo OUT_DURATION=%OUT_DURATION%
echo IN_SIZE=%IN_SIZE%
echo OUT_SIZE=%OUT_SIZE%
echo LOGO_FILE=%LOGO_FILE%
echo NUM_INCIDENT=%NUM_INCIDENT%
echo JSON_PATH=%JSON_PATH%
echo LOG_PATH=%LOG_PATH%
実行結果
SUCCESS=1
ERROR_MESSAGE=
IN_DURATION=1812.577
OUT_DURATION=1812.477
IN_SIZE=3588439472
OUT_SIZE=975992985
LOGO_FILE=SID1072-3.lgd
NUM_INCIDENT=0
JSON_PATH=D:\Amatsukaze\data\logs\2018-08-29_223635.668.json
LOG_PATH=D:\Amatsukaze\data\logs\2018-08-29_223635.668.log
- AddTag <タグ名>
- 追加時/実行前/実行後で使用可能
- タグを追加。また、現在設定されているタグを標準出力に出力。(複数ある場合は";"(セミコロン)区切り)
- 同じタグは重複できないので、既に存在するタグを追加しようとしても無視される。
- 引数なしで実行すると、タグ追加は行わず、現在設定されているタグだけ出力。
- SetOutDir <出力フォルダ>
- 追加時/実行前で使用可能
- 出力先を変更
- SetPriority <優先度>
- 追加時で使用可能
- 優先度(1~5)を変更
- CancelItem
- 追加時/実行前で使用可能
- キャンセル
- GetOutFiles <オプション>
- 実行後で使用可能
- 出力ファイルリストを取得(複数ある場合は";"(セミコロン)区切り)
- オプションは下表の項目の組み合わせ、または、all
- 例) メイン動画と対応する字幕とログファイルを取得: GetOutFiles vsl
| オプション | 説明 |
|---|---|
| v | メインの出力動画ファイル(1つだけ) |
| c | メインの出力に対応するCM部分のファイル |
| s | メインの出力に対応する字幕ファイル |
| w | メイン以外の出力動画ファイル |
| d | メイン以外の出力に対応するCM部分のファイル |
| t | メイン以外の出力に対応する字幕ファイル |
| r | EDCB関連ファイル |
| l | ログファイル |
@echo off
for /f %%i in ('AmatsukazeCLI -i "%IN_PATH%" -s %SERVICE_ID% --mode probe_subtitles') do if %%i == 字幕あり (AddTag 字幕)
for /f "tokens=2" %%i in ('AmatsukazeCLI -i "%IN_PATH%" -s %SERVICE_ID% --mode probe_audio') do if %%i == 1 (AddTag 多音声)
追加したタグをプロファイル自動選択の条件にして、字幕があるか、多音声か、でプロファイルを分けることができる。
@echo off
for /f "delims=" %%a in ("%IN_PATH%") do set IN_NAME=%%~na
for /f "delims=" %%a in ("%OUT_PATH%") do set OUT_DIR=%%~dpa
echo %IN_NAME% | find "test" >NUL
if not ERRORLEVEL 1 SetOutDir "%OUT_DIR%test"
echo %IN_NAME% | find "hoge" >NUL
if not ERRORLEVEL 1 SetOutDir "%OUT_DIR%hoge"
入力ファイル名にtestを含む場合はtestに、hogeを含む場合はhogeに出力
@echo off
for /f "delims=" %%a in ("%OUT_PATH%") do set DST=%%~dpaメイン動画以外
mkdir "%DST%"
for /f "delims=" %%a in ('GetOutFiles cwdtl') do set FILES=%%a
:loop
for /f "tokens=1* delims=;" %%a in ("%FILES%") do (
move /Y "%%a" "%DST%"
set FILES=%%b
)
if defined FILES goto :loop
出力先を変更したい場合は %%~dpaメイン動画以外 の部分を変更する。移動するファイルの種類を変えたい場合は、 GetOutFiles cwdtl の引数を変更する。例えば、出力ファイルすべてなら GetOutFiles all 。ファイルを移動ではなく、コピーにしたい場合は、move を copy /B に変える。