DVD のvob ファイルを読み込もうとすると・・・・
VOBファイルの ffmpeg -i すら成立しない。cat コマンドも出来ない。
というか、再生すら出来ない。
takuya@atom:~$ sudo dvdbackup -i /dev/dvd1 -n DVDTITLE -M -o . libdvdread: Encrypted DVD support unavailable. ************************************************ ** ** ** No css library available. See ** ** /usr/share/doc/libdvdread4/README.css ** ** for more information. ** ** ** ************************************************ Error reading VTS_01_0.VOB at block 0, read error returned padding 108 blocks Error reading VTS_01_1.VOB at block 0, read error returned padding 512 blocks Error reading VTS_01_1.VOB at block 512, read error returned padding 512 blocks Error reading VTS_01_1.VOB at block 1024, read error returned padding 512 blocks Error reading VTS_01_1.VOB at block 1536, read error returned padding 512 blocks Error reading VTS_01_1.VOB at block 2048, read error returned padding 512 blocks Error reading VTS_01_1.VOB at block 2560, read error returned
なぜ、再生すら出来ない?
css があるから。
どうすれば再生できるのか。
libdvdcss2 をインストールする。
dvd-css はFREEなソフトウェアは無いらしく。当然のごとくAPTでインストール出来ない。
そこでApt source に追加する。
echo "deb http://www.deb-multimedia.org wheezy main non-free" >> /etc/apt/sources.list
ここで、提供元の公開鍵が必要なので公開鍵を入れる。
wget http://www.deb-multimedia.org/pool/main/d/deb-multimedia-keyring/deb-multimedia-keyring_2016.8.1_all.deb sudo dpkg -i deb-multimedia-keyring_2016.8.1_all.deb
準備出来たのでインストール
sudo apt-get update sudo apt-get install libdvdcss2
DVD のマウント
DVDのVOBファイルを直接再生しようとすると、一旦マウントする必要がありますね。
DVD デバイスとDVDの確認
takuya@atom:~$ ls -alt /dev/dvd* lrwxrwxrwx 1 root root 3 7月 20 21:32 /dev/dvd1 -> sr0 lrwxrwxrwx 1 root root 3 7月 20 21:32 /dev/dvdrw1 -> sr0
dvdrw は、書き込み用に使う。
マウントポイントを作る
sudo mkdir /mnt/dvdrom/
マウントする。
sudo mount -t iso9660 /dev/dvd1 /mnt/dvdrom
マウント結果を確認する。
takuya@atom:~$ ls -alt /mnt/dvdrom/ 合計 10 drwxr-xr-x 9 root root 4096 7月 21 23:12 .. dr-xr-xr-x 1 root root 2048 6月 22 2010 video_ts dr-xr-xr-x 1 root root 2048 6月 22 2010 . dr-xr-xr-x 1 root root 2048 6月 22 2010 audio_ts
これで、DVDの中身にアクセスできる。
あとは、vob ファイルを纏めてみる
vob とは、ただのMpegファイルだし。
cat *.vob > out.mpeg
または、ffmpeg でまとめてみる
ffmpeg -i "concat:$(echo *.VOB|tr \ \|)" -target ntsc-dvd -vcodec copy -acodec copy out.mpeg
ffmpeg には concat があって、複数ファイルをインプット出来る。
ffmpeg -i "concat:file1|file2|file3" ....
コレを使うと、一気にDVDのVOBファイルをmp4 にリッピング可能になる。ffmpeg 強い
dvdbackupを使う
dvdbackup コマンド
sudo dvdbackup -i /dev/dvd1 -n 名前 -M -o ./out/
このコマンドでも取り出すことができるが、正直なところmountしたほうが楽な気がする。
ただし、dvdbackup は「DVD再生プログラム」と同様にlibdvdcss2を使うので、cssで制限かかっていてもvob ファイルを取り出すことが出来て優秀。
DVDの取り出し手順まとめ
- 準備
- VOB取り出し
- /dev/dvdのデバイスの確認
- /dev/dvd マウントでファイル確認
- dvdbackupでVOB取り出し
- vob をシングルファイル化
- cat でシングルファイルに
- ffmpeg でエンコード変更
なるほど、理屈がわかると自然だ
参考資料
http://www.deb-multimedia.org/
http://blog.browncat.org/2008/01/linuxdvdrip.html
http://blog.goo.ne.jp/nobody123/e/db1a5edb18200f2362ac14d57f0bf8c8