@echo off rem ==== ダイレクトモード ===== rem ↓値がyの場合は入力を省いて規定値で確認の後実行、yyの場合は確認せず実行 set DMODE=n rem set DMODE=y rem set DMODE=yy rem ==== 既定値 (remを外すと下にあるほうが有効) ===== set BD=. rem ↓rem を削除し、パスの部分を指定フォルダに書き換えるとその上に変換先フォルダを作る(最後の\はつけないこと) rem set BD=C:\users rem ↓オーディオ set ACODEC=-acodec libmp3lame -ab 128k rem ↓ビデオ rem 対象拡張子 set EXT=avi rem ---- h264 ----- set VCDC=h set BR=400 rem ---- Xvid ---- rem set VCDC=x rem set BR=700 rem ---- サイズ ---- set SCL=s rem set SCL=w rem ---- アスペクト比 ---- set ASP=s rem set ASP=w set ASP=n rem ==== ffmpeg.exeの場所 ===== rem ↓rem を削除し、パスの部分を使いたいffmpeg.exeがあるパスに書き換えるとそちらが優先される(最後の\はつけないこと) rem PATH C:\Users\ユーザー名\Downloads\ffmpeg-latest-win32-static\ffmpeg-20140404-git-634636e-win32-static\bin rem =================== main ==================== echo ------------------------------- echo FFmpeg使用 H264/Xvid 変換バッチ echo               v1.7 echo (c) ishidourou 2014 :START1 echo ------------------------------- if not "%DMODE%"=="y" ( if "%DMODE%"=="yy" goto SETPARAMS call :QUEST ) :SETPARAMS call :SETVCODEC rem ビデオコーデック設定 call :PRESETS rem サイズ設定 call :SETASPECT rem アスペクト設定 call :GETDIRNAME rem 出力先フォルダ名取得(%OD%) echo | echo |対象:%EXT% echo |変換先:%OD% echo |コーデック:%VCODEC% echo |画質:%BR% echo |サイズ:%SCALE% echo |アスペクト比:%ASPCM% echo | :CHECKPARAM if "%DMODE%"=="yy" goto TRNS echo 以上で変換してよろしいですか?(y=変換開始 n=修正 e=終了) set OK= set /p OK=" >" if "%OK%"=="y" goto TRNS if "%OK%"=="n" ( set DMODE=n goto START1 ) if "%OK%"=="e" exit goto CHECKPARAM :TRNS call :MKD rem 変換実行 for %%i in (*".%EXT%") do ( ffmpeg -i %%i -movflags faststart %VCODEC% %SCALE% %ASPC% %BITR% %ACODEC% -y %OD%\%%i.avi ) echo ****************** echo 変換を終了しました echo ****************** :FINISH set OK= set /p OK="さらに変換しますか?(y=さらに変換する n=終了)" if "%OK%"=="y" goto START1 if "%OK%"=="n" exit goto FINISH rem ============== sub ==================== rem ------- videoコーデック設定 ----------- :SETVCODEC if "%VCDC%"=="x" ( set VCODEC=-c:v libxvid set OD=_XvidF set BITR=-b:v %BR%k ) if "%VCDC%"=="h" ( set VCODEC=-vcodec libx264 set OD=_H264F set BITR=-b:v %BR%k ) exit /b rem ----------- 対話型入力 --------------- :QUEST :INPUT1 echo videoコーデックを指定してください (h=H264 x=Xvid) 【 %VCDC% 】 set /p VCDC=" >" if "%VCDC%"=="x" goto INPUT2 if "%VCDC%"=="h" goto INPUT2 goto INPUT1 :INPUT2 echo 変換元の拡張子を入力してください【 %EXT% 】 set /p EXT=" >" echo 変換先のフォルダを入力してください(.でカレントフォルダ上)【 %BD% 】 set /p BD=" >" if "%VCDC%"=="x" echo ビットレートを数値入力してください(700以上がお勧め) 【 %BR% 】 if "%VCDC%"=="h" echo ビットレートを数値入力してください(300以上がお勧め) 【 %BR% 】 set /p BR=">" echo 縦横のサイズを入力してください(A:B=任意) 【 %SCL% 】 call :SIZELIST set /p SCL=" >" echo アスペクト比を入力してください(w=16:9 s=4:3 n=変えない x:y=任意) 【 %ASP% 】 set /p ASP=" >" rem exit /b rem ----------- scaleプリセット表示 --------------- :SIZELIST echo qw=352:200 qs=320:240 w=480:270 s=480:360 vw=640:360 vs=640:480 echo vc=720:480 vd=720:240 nw=640:360 ns=512:384 exit /b rem ----------- scaleプリセット変換 --------------- :PRESETS set x=%SCL:~5% if defined x ( set SCALE=-s %SCL% exit /b ) rem my commonly used wide & standard if "%SCL%"=="w" set SCALE=-s 480x270 if "%SCL%"=="s" set SCALE=-s 480x360 rem near QVGA wide & standard if "%SCL%"=="qw" set SCALE=-s 352x200 if "%SCL%"=="qs" set SCALE=-s 320x240 rem near VGA wide & standard if "%SCL%"=="vw" set SCALE=-s 640x360 if "%SCL%"=="vs" set SCALE=-s 640x480 rem I/O DATA GV-USB2 VIDEO CAPTURE if "%SCL%"=="vc" set SCALE=-s 720x480 rem I/O DATA GV-USB2 deinterlace if "%SCL%"=="vd" set SCALE=-s 720x240 rem niconico wide & standard if "%SCL%"=="nw" set SCALE=-s 640x360 if "%SCL%"=="ns" set SCALE=-s 512x384 exit /b rem ----------- aspectプリセット変換 --------------- :SETASPECT set y=%ASP:~2% if defined y ( set ASPC=-aspect %ASP% set ASPCM=%ASP% exit /b ) if "%ASP%"=="w" ( set ASPC=-aspect 16:9 set ASPCM=16:9 ) if "%ASP%"=="s" ( set ASPC=-aspect 4:3 set ASPCM=4:3 ) if "%ASP%"=="n" ( set ASPC= set ASPCM=変えない ) exit /b rem ----------- フィルタ設定 --------------- :NFSET if "%NF%"=="y" ( set FUSE=使う set FILTERS=pp=hb/vb/dr/al/lb, ) if "%NF%"=="n" ( set FUSE=使わない set FILTERS= ) exit /b rem ----------- フォルダ名取得 --------------- :GETDIRNAME rem 親フォルダ名抽出 cd /d %~dp0 set cdr=%CD% :loop set cdr=%cdr:*\=% if not "%cdr:*\=%"=="%cdr%" (goto loop) set cdr=%cdr: =_% set OD=%cdr%%OD% set OD=%BD%\%OD% exit /b rem ----------- フォルダ作成 --------------- :MKD if not exist %OD% ( mkdir %OD% echo "フォルダ%OD%を作成しました" ) exit /b