DVDデータをチャプタ毎にリッピング/wav変換するLionに対応したgem 'musical'

  • 2011年11月 6日 23:57
  • ruby

musicalというgemを作りました。

これは何?

Mac OSXでライブDVDをmp3ファイルに変換」にも書いたのですが、僕はアーティストのライブDVDを買って思う存分鑑賞した後は、mp3/AACに変換してiTunes/iPhoneで聴くという楽しみ方をよくしています。 ところが、この変換の際に肝である0SExというソフトがMac OSX 10.7(Lion)になってから動かなくなりました。理由は明確で、0SExはPPC用にビルドされたバイナリなのでRosetta上では動作していたのですが、LionになってRosettaが取り除かれてしまったことで動作しなくなりました。Rosettaの代用品も存在せず、途方に暮れていたのですが、既存のソフトウェアの組み合わせでなんとかできることがわかったので、自分が使いやすい形にmusicalというgemの形でまとめてみました。

musicalができることが単純で、

  1. チャプタごとのリッピング
  2. チャプタごとのwavファイルの変換
  3. (オプションとして)タイトル/チャプタ情報の出力

だけです。個人的には2.のwavの変換を行ったあとに、iTunesにD&DでAACに変換を行っているので、ここまでの処理を行おうか迷ったのですが、利用する音声フォーマットは個々人に任せたほうがいいと思ったので、wav変換までで止めています。

(2011.11.27 追記) 0.0.2でiTunesの設定に従ってエンコード、ライブラリ追加まで行えるようにしました

インストール

必要ソフトウェアのインストール

musicalはバックエンドでdvdbackup, ffmpegを利用しているので、これらをインストールしておきます。homebrewでインストールできます(後述しますが、ちょっと罠があります)。

brew install dvdbackup
brew install ffmpeg

gemのインストール

毎度おなじみの

gem install musical

で、OKです。

利用方法

一番シンプルなのは、DVDドライブにDVDを入れた状態で

musical

だけで、カレントディレクトリにチャプタ毎にwavファイルができあがります。

wavはいらない!リッピングだけでいいんだけど

musical --ignore-convert-sound

で、リッピングだけ行い、wavへの変換は行いません。

保存する場所を変更したいんだけど

musical --output=save/to/path --title=DVD_title

--output, --titleオプションを利用できます。オプションについては--helpでご確認ください。

musical --infoが何も表示されないんだけど

DVDにプロテクトがかかっているので、Fairmountなどを使って、ディスクイメージとしてマウントすれば大丈夫です。

ライブラリのインストール時の注意

dvdbackup

brew installで簡単にいく。。と思いきや、依存パッケージのlibdvdreadのインストールでコケました。これは単純にURLが変更になっていたので、

brew edit libdvdread

して、

@@ -3,7 +3,7 @@ require 'formula'
 class Libdvdread < Formula
   homepage 'http://www.dtek.chalmers.se/groups/dvd/'
   # Official site is down; use a mirror.
-  url 'http://www.mplayerhq.hu/MPlayer/releases/dvdnav/libdvdread-4.1.3.tar.bz2'
+  url 'http://www.mplayerhq.hu/MPlayer/releases/dvdnav-old/libdvdread-4.1.3.tar.bz2'
   md5 '6dc068d442c85a3cdd5ad3da75f6c6e8'
   depends_on 'libdvdcss' => :optional

こんなかんじで編集した後、brew install libdvdreadしなおしたら大丈夫です。

ちなみにこの内容は(人生初の)pull requestを送ってみたので、もしかしたら今後は取り込まれるかもしれませんね。

(2011.11.11追記) pull requestは取り込まれたので、brew updateしたらformulaを編集しなくてもインストールできると思います。

ffmpeg

これもbrew installで簡単にいく。。と思いきや、最新のXcodeでgccが無くなった + pod2manの実行権限がなぜか無くなっていたことでかなりハマりました。あらかじめgccをインストールしなおした上で、こんなかんじでインストール可能です。

# 関連するものを含めて、一度アンインストール
brew uninstall --force `brew deps ffmpeg`

# なぜか実行権限無くなっていたので再設定
sudo chmod +x /usr/bin/pod2man

# gccの利用を指定
brew install --use-gcc ffmpeg

基本的にこれでいけるはずなんですけど、依存関係上一緒にインストールされるlibxvid, libmp3lameあたりでコケた場合(実際、別のLionのマシンで試したらコケた)は、最悪これらのインストールをスキップしても大丈夫です。brew edit ffmpegで

depends_on 'yasm' => :build
...
#depends_on 'lame' => :optional
...
#depends_on 'xvid' => :optional

...
#args << "--enable-libmp3lame" if Formula.factory('lame').installed?
...
#args << "--enable-libxvid" if Formula.factory('xvid').installed?

こんなかんじでコメントアウトたらビルドも通り、動作が確認できました。

最後に

当然ながら、本gemは著作権違反の手助けをするためのものではありません。自身の責任の元、ご利用ください。

関連広告

Trackbacks:0

TrackBack URL for this entry
http://blog.katsuma.tv/mt-tb.cgi/231
Listed below are links to weblogs that reference
DVDデータをチャプタ毎にリッピング/wav変換するLionに対応したgem 'musical' from blog.katsuma.tv

Home > ruby > DVDデータをチャプタ毎にリッピング/wav変換するLionに対応したgem 'musical'

Search
Feeds

Return to page top