Linux ムービー・動画環境

DVD ビデオ作成 その2:DVD メニューを作る

2003年12月31日:"3. メニューの MPEG ファイル作成" に dvdauthor-0.6.x 情報
2003年8月25日

DVD ビデオ作成では基本的な再生するだけの DVD ビデオを作りました。今回は DVD ビデオの便利な特徴であるメニューを作っ てみます。前回使用したソフトに加え、メニューのデザインを作るために画像編 集ソフトを用意します。ここでは GIMP (というか GIMP しかない?) を使用します。GIMP は Vine 2.6 の場合はパッケー ジに RPM があるのでインストールされていない場合はインストールしましょう。

DVD 作成は以下の手順で行います。

1. 構成とデザインを考える
2. GIMP でメニュー画面・ボタンの作成
3. メニューの MPEG ファイル作成
4. オーサリング
5. DVD イメージ作成、書き込み

1. 構成とデザインを考える

市販の DVD ビデオソフトの構成は大概トップメニューがあり、トップメニュー に本編再生、チャプター選択、特典映像、言語・音声選択へのボタンがあります。 ここでは以下の構成を想定します。

−タイトルは一本で 6チャプターに分ける。
−トップメニューには本編再生とチャプター選択メニューへの移動を行うボタンを配置。
−チャプター選択メニューには各チャプターヘのボタンとトップメニューへの移動ボタンを配置。

トップメニューのデザインは以下のようなものを作ってみます。

VMGM
Sample
選択された文字の周りに色が付きます。

チャプターメニューのデザインは以下のようなものを作ります。

VTSM
Sample
選択されたチャプターの前にXマークが付きます。戻るのあたりを選択すると三 角形の部分に色が付きます。

2. GIMP でメニュー画面・ボタンの作成

GIMP で 720x480 (81dpi x 72dpi) の画像を作成します。レイヤー機能を使い、背景とボタンのマスクの二つのレイヤーを作ります。

layers
上では二つのレイヤーを重ねて表示してあります。

背景レイヤーは以下のようになっています。

VMGM Background

Button_mask レイヤーは以下のようになっています。

VMGM Mask
Sample
四角い部分がメニューを選択したときに色が付く部分です。ここでの配色は完成 時のものとは無関係なので適当で構いませんが最高で透明部も含めて4色までで す。周りの白い部分が透明です。

次に各レイヤーを保存します。レイヤーの設定で該当レイヤーのみ表示し背景レ イヤーは JPEG で、Button Mask レイヤーは PNG で保存します。Button Mask レイヤーの方は画像メニューのモードでインデックスを選び、色数を4色にしま す。4色にしないと作成できません。上の各レイヤーのサンプルはそのまま使え るようになっています。

同様にして、チャプターメニューも GIMP で背景とボタンのマスクの二つのレイ ヤーを作り、それぞれ JPEG、PNG (4色) で保存します。

VTSM Background VTSM Mask
Sample
マスクの部分だけ色がつくのでこちらはXマークか三角形の部分が完成後に選択時に色が 付きます。

3. メニューの MPEG ファイル作成

(以下に示す方法は dvdauthor-0.5.x での方法で、0.6.x ではちょっと違うものになっています。手順としては大体同じですが、submux が spumux になったり、*.sub ファイルが XML ファイルになったり、dvdauthor コマンドでも各種設定を XML ファイルから読み込むようになっています。また、機能も増えたみたいで楽しみです。しかし、設定方法が複雑で習得に時間がかかりそう。メニュー無しの DVD の作り方は変わりません。2003/12/31)

DVD のメニューも MPEG2 の動画からできています。上記 JPEG ファイルと PNG ファイル、お よび適当な BGM ファイル (十数秒程度のここでは MP2 を使う。audio.mp2 とす る) から作成できま す。mjpegtools の jpeg2yuv、 mpeg2enc、mplex および dvdauthor の submux コマン ドを使用します。mjpegtools のインストール方法に付いては MPEG ビデオファイルの作り方を、dvdauthor に ついては DVD ビデオ作成を参照下さい。
あともう1つ次のような一行が入ったテキストファイルを vmgm.sub と言う名前 で作成します。

vmgm.png 00:00:00.00 00:00:00.00 0 0 0 1 1 1

submux コマンドは MPEG にサブタイトルを入れ込むコマンドで、メニューの選 択部分もサブタイトルの一種として扱います。上記テキストファイルは submux コマンドを使う際に読み込む設定ファイルのようなものです。vmgm.png が 2. で作成したマスクの PNG ファイル、00:00:00.00 00:00:00.00 がサブタイト ル表示の時間の範囲で DVD のメニューの場合 0 から 0 でいいようです。次の 2つの数字はマスクの位置のオフセット値です。次の 4 つの数字はいろいろな色 の透明度を設定します。はっきりと法則性が分かっていないのですが、今回の場 合、上の設定でうまく行きます。

ファイルを用意したら、以下のようにして作成します。

$ jpeg2yuv -n 1 -I t -L 1 -f 29.97 -j vmgm.jpg | mpeg2enc -n n -f 8 -o vmgm.m2v
$ mplex -f 8 -o /dev/stdout vmgm.m2v audio.mp2 | submux vmgm.sub > vmgm.mpg

各オプションの詳細に付いては man ページやコマンド打って出てくるヘル プを参照下さい。

同様にしてチャプターメニューの MPEG ファイルも作ります (vtsm.mpg)。

4. オーサリング

いよいよオーサリングです。ここではチャプター毎に分かれた以下のような DVD 対応の MPEG2 ファイル 6本があるものとします。DVD 用 MPEG2 のエンコード方 法に関しては DVD ビデオ作成を参照してく ださい。

chapter1.mpg
chapter2.mpg
chapter3.mpg
chapter4.mpg
chapter5.mpg
chapter6.mpg

まず、チャプターメニューを含むタイトルセットを作成します。DVD のタイトル セットとは映画の本編などのようなひとかたまりの映像で、タイトルセットにメ ニュー(ここで言うチャプターメニュー)を作成できます。

最初に以下のような内容を含んだ色情報のテキストファイルを作成し xste-palette.rgb というファイル名を付けます。拡張子は rgb から変更しては いけません。

000000 

ff7feb
000000
008080

ff7feb
00ee35
286df0

ca4892
aaaea4
de8948

aeb76d
49a6dc
616389
98bc51
37b389
718947
ここで気にするのは2つめの色、ff7feb です。マスクの色を RGB で 16進数で表 しています。その他の色も使い道はあるのですが、ここでは使わないので割愛し ます。これも法則性がはっきりとは分かっていません。

ボタンを作成したら、ボタンの範囲の座標を調べます。 GIMP で画像の上でカー ソルを動かすと左下に x,y で表示されるのでそれをメモします。例えば "Chapter 1" という文字とその左側の X マークを含んだ長方形の範囲の左上 (X1,Y1) と右下 (X2,Y2) を X1xY1-X2xY2 の様に表記します。"戻る" の下の三角は三角を含む長方 形の座標です。

チャプター1 の範囲: 130x160-355x200
チャプター2 の範囲: 373x160-595x200
チャプター3 の範囲: 130x230-355x270
チャプター4 の範囲: 373x230-595x270
チャプター5 の範囲: 130x300-355x340
チャプター6 の範囲: 373x300-595x340
戻るの下の三角の範囲: 340x380-380x420
そして、以下のように dvdauthor コマンドを実行します。

$ dvdauthor -o dvd/ \
-m -b 130x160-355x200,vts1.1 \
-b 373x160-595x200,vts1.2 \
-b 130x230-355x270,vts1.3 \
-b 373x230-595x270,vts1.4 \
-b 130x300-355x340,vts1.5 \
-b 373x300-595x340,vts1.6 \
-b 340x380-380x420,vmgm1 \
vtsm.mpg \
-p xste-palette.rgb \
-t chapter1.mpg chapter2.mpg chapter3.mpg \
   chapter4.mpg chapter5.mpg chapter6.mpg \
-i post=vmgm
-m はメニュー作成をすると言う意味です。
-b は各ボタンの範囲の座標とジャン プする先を指定します。vts1.1 というのはタイトルセット1 (このタイトルセットの 事) のチャプター 1 を指します。vmgm1 はトップメニューを指します。
-b で一通りボタン位置を指定した後に、メニュー用の MPEG ファイル vtsm.mpg を指定します。
-p で先ほど作成した色情報のファイルを指定します。
-t の後に本編の MPEG ファイルを指定します。上のようにすることで各ファイルがそれぞ れのチャプターになります。
最後の -i post=vmgm でビデオが終わった後にトッ プメニューに戻る指定をします。vmgm を別物にすることによってビデオを最初 から再生したり、チャプターメニューに戻ったりする設定にもできます。

すると dvd/VIDEO_TS/ と言うディレクトリができ、その中に VTS_01_0.IFO、 VTS_01_1.VOB、VTS_01_0.BUP、VTS_01_0.VOB と言うファイルができます。 VTS_01_1.VOB が本編の MPEG ファイル、VTS_01_0.VOB がメニューの MPEG ファ イルです。

続けてトップメニューを含むビデオマネージャを作成します。

$ dvdauthor -o dvd/ -T \
-m -b 125x225-485x285,vts1 \
-b 125x307-485x367,vtsm1 vmgm.mpg \
-p xste-palette.rgb
各オプションの意味はタイトルセット作成のときと同じです。vts1 はタイトル セット1の最初に飛びます。vts1.1(タイトルセット1のチャプター1)と同義で す。vtsm1 がチャプターメニューに飛ぶ事を示します(タイトルセット 1のメニューと言う意味)。 vmgm.mpg が 3. で作成したメニューの MPEGファイルです。

前回の DVD ビデオ作成では DVD イメージを 作成してから XINE で動作確認しましたが、その前に確認できることが分かりま した。作成した dvd/ ディレクトリ (VIDEO_TS のあるディレクトリ) をフルパスで指定します。

$ xine dvd:/home/hoge/dvd/ 

これでメニューなどをマウスを重ねることで選択し、クリックで移動できます。

5. DVD イメージ作成、書き込み

あとは前回と同じようにイメージファイルを作成し、書き込むだけです。

$ mkisofs -dvd-video -o dvd.img dvd/
$ dvdrecord -v dev=1,0,0 speed=4 -dao dvd.img

ここで作ったイメージファイルを置いておきます。dvd.img (36MB)。XINE で読み込んだり DVD-R 等に焼け ばイメージをつかめるでしょう。

ここでできた DVD はちょっとマイナーな問題があります。PC でマウスでクリッ クして選択する分にはいいのですが、家電の DVD プレーヤーでリモコンを使い ボタンを選択するときに移動方向がちょっと変です。上下ボタンを押しても左右 ボタンを押しても dvdauthor の -b オプションを並べた方向にしか選択が進み ません。

今回作ったメニューは単純なものでしたが、次のような事も出来ます。

1. 複数ページメニューの作成。チャプターが多数に渡りサムネイル表示にした りしたい場合に複数ページに分けて "次へ"、"前へ" ボタンなどで移動できます。 移動時の指定は例えばページ 2に移動した場合は vtsm.2 とやります。
2. ボタンの複数色の使用。1. でサムネイル選択と移動ボタンを別々の色にした い場合などに使います。マスクファイルと xste-palette.rgb ファイル、*.sub ファイルを駆使して作ります。

この例のイメージファイルも置いておきます (ビデオの内容は同一)。→dvd2.img (37MB)

その他工夫次第では凝ったことが出来そうなのですが、dvdauthor のドキュメン トがほとんど用意されていないため試行錯誤で行うしかないようです。


関連リンク:


戻る | real-baishi に戻る