筆者について
FreeBSDを通じてOSSにささかな貢献を。
- 日本xrdpユーザ会発起人
- xrdp developer
- FreeBSD developer
OSS活動をご支援いただける方を募集しています
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 にインポートしておしまい。
wav ファイル群を lame で mp3 に一気に変換するには、<br><br>$ ls *.wav |<br>> while read file<br>> do<br>> lame --preset standard $file<br>> done<br><br>とする。音質的にもこの位で充分。