Linux用のメモ(Fedoraで確認)
物理DVD確認
lsdvd /dev/sr0
DVDのタイトルやチャプター数などが表示されること
バックアップ
物理DVDからファイルとしてバックアップ
dvdbackup -i /dev/sr0 -o 親ディレクトリ -M -n 子ディレクトリ
./親ディレクトリ/子ディレクトリ <- にバックアップ
バックアップ確認
ファイルとしてバックアップしたDVDファイルを確認
lsdvd ./親ディレクトリ/子ディレクトリ/VIDEO_TS/
DVDのチャプター数などが表示されること
VOB ファイルまとめ
そのままでは見れないので1ファイルにまとめとく
cd ./親ディレクトリ/子ディレクトリ
mplayer dvd://1 -dvd-device VIDEO_TS/ -dumpstream -dumpfile NO1.VOB
dvd://1 はタイトル番号1
複数のタイトルを指定する場合はこんな感じ
for each i in {1..7}
do
mplayer dvd://${i} -dvd-device VIDEO_TS/ -dumpstream -dumpfile NO${i}.VOB
done
チャプター毎にVOBファイルを作成したい場合はこんな感じ
(チャプターが5つの場合)
for each cap in {1..5}
do
mplayer dvd://1 -dvd-device VIDEO_TS/ -chapter ${cap} -dumpstream -dumpfile NO1-${cap}.VOB
done
まとめた VOB を確認
まとめたファイルの動画形式や音声、字幕等を確認
ffprobe -analyzeduration 120M -probesize 120M -i NO1.VOB
Input #0, mpeg, from 'NO1.VOB':
Duration: 00:07:17.92, start: 0.202833, bitrate: 97154 kb/s
Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, smpte170m, progressive), 720x480 [SAR 32:27 DAR 16:9], 29.92 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Side data:
cpb: bitrate max/min/avg: 9800000/0/0 buffer size: 1835008 vbv_delay: N/A
Stream #0:1[0x20]: Subtitle: dvd_subtitle
Stream #0:2[0x21]: Subtitle: dvd_subtitle
Stream #0:3[0x22]: Subtitle: dvd_subtitle
Stream #0:4[0x23]: Subtitle: dvd_subtitle
Stream #0:5[0x24]: Subtitle: dvd_subtitle
Stream #0:6[0x25]: Subtitle: dvd_subtitle
Stream #0:7[0x80]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 448 kb/s
Stream #0:8[0x81]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s
MP4 に変換
VOBのままでは再生が制限されるので使いやすいMP4に変換
ffmpeg -analyzeduration 120M -probesize 120M \
-i ./NO1.VOB \
-metadata:s:a:0 language=jpn -metadata:s:a:0 title=Japanese \
-metadata:s:a:1 language=eng -metadata:s:a:1 title=English \
-metadata:s:s:0 language=jpn -metadata:s:s:0 title=Japanese \
-metadata:s:s:1 language=eng -metadata:s:s:1 title=English \
-map 0:0 -c:v libx265 -filter:v yadif -preset fast -vlevel 3.1 -crf 22 \
-map 0:8 -c:a aac \
-map 0:7 -c:a aac \
-map 0:1 -c:s copy \
-map 0:3 -c:s copy \
./NO1.mp4
意味はこんな感じ
Stream #0:0 が映像 -map 0:0 で指定
Stream #0:1 が字幕 -map 0:1 で指定(-metadata:s:s:0 language=jpn -metadata:s:s:0 title=Japanese で Japanese指定)
Stream #0:3 が字幕 -map 0:3 で指定(-metadata:s:s:1 language=eng -metadata:s:s:1 title=English で English指定)
Stream #0.7 が音声 -map 0:7 で指定(-metadata:s:a:1 language=eng -metadata:s:a:1 title=English で English指定)
Stream #0.8 が音声 -map 0:8 で指定(-metadata:s:a:0 language=jpn -metadata:s:a:0 title=Japanese で Japanese指定)
これでスマホでも見れるようになりました。