前回からの続き。

チャプター分割

チャプター毎にファイルを分割してリッピングしたい場合は-cオプションを使って

HandBrakeCLI -Z 'H.265 MKV 1080p30' --all-audio -s '1,2,3,4,5,6' -c 1 -i hoge.iso -o hoge_1.mkv
HandBrakeCLI -Z 'H.265 MKV 1080p30' --all-audio -s '1,2,3,4,5,6' -c 2 -i hoge.iso -o hoge_2.mkv
HandBrakeCLI -Z 'H.265 MKV 1080p30' --all-audio -s '1,2,3,4,5,6' -c 3 -i hoge.iso -o hoge_3.mkv

いちいちチャプター数だけ繰り返すのはバカらしいので、 for文を使って以下のように書く。

for ((i = 1; i <= 3; i++)); do
  HandBrakeCLI -Z 'H.265 MKV 1080p30' --all-audio -s '1,2,3,4,5,6' -c $i -i hoge.iso -o hoge_$(printf %02d $i).mkv
done

3の部分を変数にして、引数として渡してやれば、任意のチャプター数に対応できる。

チャプター数の取得

いちいち、チャプター数を指定するのは面倒なので、 lsdvdを使ってチャプター数を取得する。

brew install lsdvd

からの

lsdvd hoge.iso

これでチャプター数を含む標準出力が得られる。 あとは適当に文字列を抜き出して使えば良い。 以下にawkを使った例を示す。

lsdvd hoge.iso | grep Chapters | awk '{gsub(/,/,""); print $6}'

先ほどのfor文と組み合わせて

chapter_num=`lsdvd hoge.iso | grep Chapters | awk '{gsub(/,/,""); print $6}'`
for ((i = 1; i <= $chapter_num; i++)); do
  HandBrakeCLI -Z 'H.265 MKV 1080p30' --all-audio -s '1,2,3,4,5,6' -c $i -i hoge.iso -o hoge_$(printf %02d $i).mkv
done

長くなってきたので、いったんここまで。 次回はisoファイルではなく、DVDドライブから直接mkvに変換する方法。

お約束

違法なリッピングを推奨しているわけではないので注意。 コピーガードされたDVDをリッピングするのはダメ。ぜったい。