ffmpegでDVDをMPEGファイルに変換
社内でアシスタントからDVDをPCで再生できるようにしたい、という要望を受けたので、 DVDを入れて起動するだけのバッチファイルを作ってみた。
DVDの中身のVTS_01_1.VOB, VTS_01_2.VOBというファイルをffmpegの-iオプションに指定すれば良いのだが、 パイプ記号「|」を使ってファイル名を連結しなければならない。 ただ、バッチファイル中でパイプ記号が入ると上手く連結できないので、 試行錯誤の結果、一旦「$$」という文字を挟んで連結した後、パイプ記号に変換、という手順になった。
使い方
- 以下のテキストをメモ帳にコピー&ペースト
- 下のテキスト中でFドライブを指定している部分を各自のドライブ名に変更
- 拡張子をbatにして保存
- DVDを入れてバッチファイルを起動
原則としてバッチファイルと同じフォルダにdvd_yyyymmdd.mpegというファイルが出来上がる
@ECHO OFF
ECHO DVDから普通の動画ファイルへ変換を行います。
ECHO DVDがFドライブに入っていることを確認してください。
PAUSE
SET A=
FOR %%F IN ("F:\VIDEO_TS\VTS_01_*.VOB") DO CALL SET A=%%A%%$$%%F
SET TIME_TMP=%TIME: =0%
SET NOW=%DATE:/=%%TIME_TMP:~0,2%%TIME_TMP:~3,2%%TIME_TMP:~6,2%
SET B="%A:$$=|%"
ffmpeg -i "concat:%B:~2,-1%" -target ntsc-dvd -vcodec copy -acodec copy dvd_%NOW%.mpeg
ECHO 変換が終了しました。
ECHO 出力ファイル: %~dp0 dvd_%NOW%.mpeg
PAUSE