iDVDは美しいメニュー画面のDVDがお手軽に作れるソフトだが、MPEG2エンコーダーとしての性能はDVD Studio Proとの差別化の為か不当に低い。例えばブロックノイズが出まくりでもっとビットレートを高くすべき場面を含んでいても、ディスク容量を無駄に余らせてしまう。また、音声の形式がac3でなく非圧縮のPCMなので、ディスク容量の点からもDVD規格のビットレート制限の点からも動画に割ける容量が制約を受けている。普通のDVDは音声、動画を合わせたビットレートが平均4, 5 Mbps、規格の制約から最高10.8 Mbpsだが、PCMの音声はその内約1.5 Mbpsも消費してしまう。ac3なら数分の1以下のビットレートで済む。他のソフトを用いて音声がac3でより高品質な動画のmpeg2ファイルをエンコードし、メニュー画面だけiDVDから拝借することで、メニューの美しさと高画質を両立させたDVD作品を作ることができないだろうか。週末試行錯誤の結果見つけた方法をここに記す。なお、MacOSXHintsの記事 "Use MPEG2 footage in iDVD" が大変参考になった。
2008年1月追記
この方法はiDVD6で使えるが、iDVD '08では無理。iDVD6でVIDEO_TS.VOBに格納されていたメニュー動画がiDVD '08ではなぜかVIDEO_01_0.VOBという変則的な場所に移されたためである。pgceditで編集すればうまくいくのかもしれないが、以前より確実に難しくなってしまった。
PGCEditはFinkを使い、ターミナルから
メニュー画面を作る際本編と同じ動画ファイルを使ってもいいが、エンコードに延々と時間が掛かる。代わりに例えば30秒づつ各チャプターの映像をつなげたダイジェスト版を作り、30秒ごとにチャプターを打って、iDVDに読み込ませると早く済むし、サムネイルに凝ることもできる。ディスクイメージにして保存する。
注意:チャプター選択画面のサムネイル動画部分に動画ファイルをdrag & dropするとサムネイルが変わるだけでなくDVDのチャプター構造まで変わってしまうのでやっちゃダメ。
2008年1月追記
この方法はiDVD6で使えるが、iDVD '08では無理。iDVD6でVIDEO_TS.VOBに格納されていたメニュー動画がiDVD '08ではなぜかVIDEO_01_0.VOBという変則的な場所に移されたためである。pgceditで編集すればうまくいくのかもしれないが、以前より確実に難しくなってしまった。
必要なソフト
PGCEditはFinkを使い、ターミナルから
fink install pgceditと打ってインストールする。Finkのインストール、使用法はホームページで調べられたし。またToastの機能は全てffmpegXで代替できる。なぜそれでも比較的高価なToastを使うかというと、生成するmpeg2の品質が圧倒的に優れているからである。ffmpegXの全てのパラメータを試した訳ではないが、Toastで動き予測最高、Half-PEL onでエンコードしたmpeg2はffmpegXのエンコーダーffmpeg、high qualityでエンコードした同じビットレートのmpeg2より明らかにブロックノイズ、モスキートが少なかった。本編MPEGファイル作成
- FCEやiMovieでビデオ素材を用意する。Toastを起動しDVDビデオ作成画面にしておく。後でDVD-Rの容量に合わせられるので、今は最大限の画質でエンコードしておく。ビットレート9 Mbpsでベタ踏み、動き予測最高、Half-PEL on。音声のダイナミックレンジ圧縮は性能が悪いようなので使わないほうがよい。試してみたところ音楽が掛かっている場面で音が不自然に小さくなったり大きくなったりした。
iMovieの場合
- プロジェクトをControl+クリックで開き、Shared Moviesフォルダ内のQuickTimeファイルをToastの画面にdrag & dropする。
- ビデオをToastのディスクイメージで保存する。
FCEの場合
- どうやらFCEのチャプタはToast8に認識されない。有効なチャプタをつけるためにiMovie素材よりも手間が掛かる。まずはチャプタの時間をメモしておく。
- ビデオと音声をQuickTimeで書き出す(変換でなく)。出来上がったQuickTimeファイルをToastの画面にdrag & dropする。
- ビデオをToastのディスクイメージで保存する。
- ディスクイメージをマウントし、ターミナルから
cat /Volumes/DVD¥ Video/VIDEO_TS/VTS_01_*.VOB > ./video.VOBと打ってひとつながりの動画をひとつのファイルにまとめる。もちろんToastに複数のプロジェクトをdrag & dropした場合はVTS_02, 03...についても同様にそれぞれひとつにまとめる。
- ffmpegxのtoolsタブにあるdemuxでまとめたVOBファイルを一旦m2vとac3に分離する。
- 今度はtoolタブのmuxでm2vとac3をmpeg2にまとめる。できあがったmpegファイルをQuickTimeで再生すると音声が聞こえないが、これは仕様。VLCなどで動作確認して安心しよう。
- mpgファイルをVIDEO_TSにオーサリングする。
- 以下のコードをテキストファイルに保存する。エラーが出たら行頭のスペースを全部削除してみられたし。
- ターミナルから
dvdauthor -x dvd.xmlと打ち込む。オーサリングソフトdvdauthorのパスは(ffmpegXのディレクトリ)/ffmpegX.app/Contents/Resources/dvdauthor。mpegファイル名やチャプターの時間は当然作品によって異なる。
- 以下のコードをテキストファイルに保存する。エラーが出たら行頭のスペースを全部削除してみられたし。
dvd.xml |
iDVDでメニュー画面を作る
メニュー画面を作る際本編と同じ動画ファイルを使ってもいいが、エンコードに延々と時間が掛かる。代わりに例えば30秒づつ各チャプターの映像をつなげたダイジェスト版を作り、30秒ごとにチャプターを打って、iDVDに読み込ませると早く済むし、サムネイルに凝ることもできる。ディスクイメージにして保存する。
注意:チャプター選択画面のサムネイル動画部分に動画ファイルをdrag & dropするとサムネイルが変わるだけでなくDVDのチャプター構造まで変わってしまうのでやっちゃダメ。
合体してDVDに焼く
- iDVDで作成したディスクイメージからVIDEO_TSフォルダをHDにコピーし、全ファイルのアクセス権を読み書き可能にする。
- 本編VIDEO_TSにメニュー用VIDEO_TS(iDVDで作ったもの)内のVIDEO_TS.VOB, VIDEO_TS.IFO, VIDEO_TS.BUPを上書きコピーする。
- メニュー用VIDEO_TSをPGCEditで開き、
File > Export all PGC commands
- 次に本編ビデオのVIDEO_TSをPGCEditで開き、
File > import all PGC commands
File > Save DVD
- DVDプレーヤ.appなりVLCなりで動作確認する。
- 作品をDVD-Rに焼く。必要ならToastのFit-to-DVDビデオ圧縮機能を使う。

