«前の日記(2008-05-18) 最新 次の日記(2008-09-22)» 編集

meta's blog - The Power To Serve

筆者について

FreeBSDを通じてOSSにささかな貢献を。

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 にインポートしておしまい。

本日のツッコミ(全1件) [ツッコミを入れる]
Σ meta (2008-09-04 20:29)

wav ファイル群を lame で mp3 に一気に変換するには、<br><br>$ ls *.wav |<br>> while read file<br>> do<br>> lame --preset standard $file<br>> done<br><br>とする。音質的にもこの位で充分。