Skip to content

バッチファイル実行機能

Nekopanda edited this page Nov 20, 2018 · 14 revisions

バッチファイル

バッチファイルの実行タイミングは、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 。ファイルを移動ではなく、コピーにしたい場合は、movecopy /B に変える。