それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

DVD動画を再生したり、リッピングしたりlinuxのコマンドで。

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

http://blog.noris.today/?p=357