iMovie → Burn → DVD を作ろうとして1日飛ばした話

無料あるいは低価格のアプリで簡単かつまあまあ観れる動画ができるのって Mac の iMovie しかないと思ってるんですが、最近はやたらと Mac で DVD-Video を焼くハードルが高い。焼くメニューも無いし、オーサリングツールも無いし、最近はドライブも無い。1日かかって大きく妥協した話を書きます。というか、もう2度と苦労したくないので自分用メモ。

ちなみに Final Cut Pro X を買えば何の苦労もなく普通に DVD が焼けます。しかし年に1度か2度の DVD 作成のためだけには買えません。
DVDStyler はちょっとダサいので使用しません。(あれはあれで高度な設定ができて良いが、Burn 以上に不安定)

前提

下記のシチュエーションにマッチする人には有益な記事。

iMovie (10.1.1) の段

普通に編集してファイルにエクスポートします。今回18チャプターあるので18ファイルです(これが大きな間違い&今回は大きな助け舟)。
※チャプターは1ファイルの中にマーカーを置くものなので、本来は1ファイルにまとめて作るべきです。
エクスポート設定は720pにしておけば DVD 画質をオーバーするので問題ないでしょう。

Burn (2.5.1) の段

まずは18ファイルを入れて MPEG-2 に変換します。変換が終わったら、焼かずに Burn の作業フォルダを開きます。(設定で指定できます)

ffmpeg の段

Burn の作業フォルダを開くと、MPEG-2 のファイル(.mpg)が入っています。これを ffmpeg で結合します。なぜそんな面倒なことをするのか。最初から1本の動画にしておけばよかったのではないか。

ここに落とし穴があります。iMovie が悪いのか、カメラの出すファイルが悪いのか、Burn(が ffmpeg に出すコマンド) が悪いのか、変換すると徐々に音と映像がズレていきます。1時間半も動画が長引けば、ズレは数秒に及び、演奏ビデオなんて見てられなくなります。

よって、まず音ズレが顕著にならない程度に細切れの映像を出力し、これを DVD 用に変換し、再度結合することによって音ズレの目立たないファイルを生成する必要があります。

結合コマンドですが、あっちをググりこっちをググり、結局公式Wiki を見て解決しました。

mylist.txt ファイルに結合するファイルリストを作成しておきます。

ffmpeg -f concat -i mylist.txt -c copy -target ntsc-dvd 完成.mpg

-target ntsc-dvd を出力ファイル名の前に指定しておかないと、Burn で焼くときにやっぱりエラーが出るので、これも追加します。

これでめでたく動画全体を1本のビデオにまとめ、音ズレもほぼ感じられない状態になりました。

Burn ファイル編集の段

出来上がったファイルを Burn にドラッグし、プロジェクト?を保存します。「ファイル」→「別名で保存」から行えます。
このファイルは XML なので、適当なテキストエディタで編集します。
1つファイルを追加しただけの Burn ファイルは下記のようになっています。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>KWProperties</key>
    <dict>
        <key>Files</key>
        <array>
        <dict>
            <key>Chapters</key>
            <array/>
            <key>Name</key>
            <string>output.mpg</string>
            <key>Path</key>
            <string>/Users/xxxxxxx/burntemporary/完成.mpg</string>
            <key>Size</key>
            <string>2.12 GB</string>
            <key>WideScreen</key>
            <true/>
        </dict>
        </array>
        <key>Name</key>
        <string>1STCONCERT</string>
    </dict>
    <key>KWSubType</key>
    <integer>2</integer>
    <key>KWType</key>
    <integer>2</integer>
</dict>
</plist>

Chapters キーには空のアレイが指定されていますね。ここにチャプターの名前と時間を記載すると、下記のようになります。上記 11 行目の <array/> を消してチャプター情報を記入します。
本投稿では簡便性のために 2 件のチャプターのみ作成します。

<array>
    <dict>
        <key>RealTime</key>
        <real>442.208</real>
        <key>Title</key>
        <string>1-1</string>
    </dict>
    <dict>
        <key>RealTime</key>
        <real>540.406</real>
        <key>Title</key>
        <string>1-2</string>
    </dict>
</array>

これで、頭から442秒と208ミリ秒の時点をチャプター1に、頭から540秒と406ミリ秒の時点をチャプター2と指定することができました。

時間の計算については、Invisor か何かを使って18本のビデオファイルの継続時間をミリ秒で出しておくと良いでしょう。出した時間を足していくには、Numbers やら Excel を使えば適当にどうにかなります。

ようやく Burn で焼く段

そんなこんなで Burn ファイルを保存し、Burn で開き直します。
正常に DVD が焼ければ完了。もういろいろ面倒なので、ディスクイメージを作っておきましょう。

引っかからないためのチェックリスト

まとめ

どうせ Burn の変換も ffmpeg なんだから一括でやっちゃいなYoと言われそうですが、Burn の使ってるコマンドを調べるのが億劫という謎の堕落を発揮しこの記事が生まれました。

そんで Final Cut Pro X が欲しくなった一件でした。しかし DVD 焼くためだけに買うのはやっぱり気が引ける。。リッチアンドゴージャスなビデオが作れるようになるような気もするので欲しいっちゃ欲しいんですけど。まずは Motion からかな。。。(そして連携のために Final Cut が欲しくなる)

2016年3月5日