最新

meta‘s blog

2008-06-27 DVD to iPod

DVD から音声のみを抜き出す

iPod に CD だけじゃなくライブ DVD の音源も入れてしまいたいというニーズに応えるためいろいろやってみました。環境は Debian lenny に debian-multimedia.org のリポジトリを追加した環境です。

ii  dvdrip   1:0.98.8-0.1     perl front end for transcode
ii  ffmpeg   3:20080610-0.0   audio/video encoder, streaming server & audio/video file converter
ii  lame     3.97-0.3         LAME Ain't an MP3 Encoder

依存関係は aptitude が勝手に解決してくれるので置いといて、とりあえずこの3つがあれば実現できます。

最初に dvdrip で DVD から vob ファイルを抜き出します。ライブ DVD の場合大抵曲ごとにチャプター分けされているので "Specify Capter Mode" を "All" にしてリッピングします。

~/dvdrip-data/vob/*/*.vob に vob ファイルがいっぱいできてるはずです。多分こんな感じで。

meta@algedi:~/dvdrip-data/wakeup/vob$ ls -lha */*
-rw-r--r-- 1 meta meta  53M 2008-06-27 04:20 001-C001/wakeup-001.vob
-rw-r--r-- 1 meta meta 217M 2008-06-27 04:21 001-C002/wakeup-001.vob
-rw-r--r-- 1 meta meta 194M 2008-06-27 04:22 001-C003/wakeup-001.vob
-rw-r--r-- 1 meta meta 196M 2008-06-27 04:22 001-C004/wakeup-001.vob
-rw-r--r-- 1 meta meta  51M 2008-06-27 04:23 001-C005/wakeup-001.vob
-rw-r--r-- 1 meta meta 140M 2008-06-27 04:23 001-C006/wakeup-001.vob
-rw-r--r-- 1 meta meta 198M 2008-06-27 04:24 001-C007/wakeup-001.vob
-rw-r--r-- 1 meta meta 154M 2008-06-27 04:24 001-C008/wakeup-001.vob

で、これを ffmpeg で wav なり mp3 なりに変換します。DVD の音声はサンプリングレートが 48kHz なので 44.1kHz への変換も同時に行います。

$ cd ~/dvdrip-data/wakeup/vob
$ mkdir wav
$ ffmpeg -i 001-C001/wakeup-001.vob -f wav -ar 44100 wav/C001.wav

1個ずつやってると面倒くさいのでスクリプトで一気にやります。以下が vob2audio.rb の中身。

#!/usr/bin/ruby

out_format = "wav"

ARGV.each do |vob|
  outfile = vob.gsub(/vob/, out_format)
  /001-(C\d\d\d)\/wakeup-001.vob/ =~ vob
  print `/usr/bin/ffmpeg -i #{vob} -ar 44100 -f #{out_format} #{$1}.#{out_format}`
end

この程度 ruby を持ち出すまでもなくシェルスクリプトで済ませられるんだけど…まあいいや。

meta@algedi:~/dvdrip-data/wakeup/vob/wav$ ../vob2audio.rb ../*/*

しばらく待つと wav ファイルが出来上がるので mp3 なり aac なりに変換してタグを付けて iTunes にインポートしておしまい。