Skip to content

Instantly share code, notes, and snippets.

@nyanshiba
Created October 9, 2017 18:12
Show Gist options
  • Save nyanshiba/51ec9251c4f25454347f7336ba55d357 to your computer and use it in GitHub Desktop.
Save nyanshiba/51ec9251c4f25454347f7336ba55d357 to your computer and use it in GitHub Desktop.
番組情報から24fps化するか選択するサンプル
rem ffmpegのオプション
rem 通常
set FFOPTION3029=-c:a aac -b:a 192k -vf bwdif=0:-1:1,pp=ac,scale=1280:720:flags=lanczos+accurate_rnd -global_quality 29 -c:v h264_qsv -preset veryslow -g 300 -bf 16 -refs 16 -b_strategy 1 -look_ahead 1 -look_ahead_depth 100 -pix_fmt nv12
rem アニメ・映画
set FFOPTION2429=-c:a aac -b:a 192k -vf bwdif=0:-1:1,pp=ac,scale=1280:720:flags=lanczos+accurate_rnd -global_quality 27 -c:v h264_qsv -preset veryslow -g 300 -bf 16 -refs 16 -b_strategy 1 -look_ahead 1 -look_ahead_depth 100 -pix_fmt nv12
rem 番組情報の中に"ジャンル"という文字列がある行に行番号を付けて取得
for /f "delims=" %%a in ('findstr /n "ジャンル" "%1"') do (
set GENRE=%%a
)
rem 行番号の部分だけ取り出す
set GENRE_NUMBER=%GENRE:~0,-8%
rem 行番号を1大きくする(次の行に求める内容があるため)
set /a NEED_LINE_NUMBER=%GENRE_NUMBER%+1
echo %GENRE%
rem その行に書いてある内容を抜く
for /f "delims=" %%b in ('findstr /n /r "." "%1" ^| findstr /r "^%NEED_LINE_NUMBER%:"') do (
set NEED_LINE=%%b
)
その行にて"アニメ"又は"映画"という文字列の有無でオプションを選択
echo %NEED_LINE% | findstr "アニメ 映画"
if %ERRORLEVEL% equ 0 (
set FFOPTION=%FFOPTION2429%
) else if %ERRORLEVEL% equ 1 (
set FFOPTION=%FFOPTION3029%
)
rem 番組情報の中に"デュアルモノ"という文字列があれば環境変数"FFOPTION"に"-filter_complex channelsplit"を加える
findstr "デュアルモノ" %1
if %ERRORLEVEL% equ 0 (
set "FFOPTION=%FFOPTION% -filter_complex channelsplit"
)
echo %FFOPTION%
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment