Title
Each titleset contains 1 or more titles. Each title is effectively a standalone movie. If you start xine and just tell it to play a dvd, and that dvd doesn't have a top-level menu, then it will just play the first title of the first titleset and then stop.
Chapter
Titles are subdivided into chapters. Chapters provide entry points to the movie, but when the player reaches the end of a chapter it will continue to the next chapter.
4、Video、entry、audio和palette。Video用于指定所在PGC组的视频属性,常出现在Menu和Titles中,在pgc标识前设定。Video常用参数有制式(PAL、NTSC)、比例(4:3和16:9)、分辨率(resolution)、caption和widescreen到普屏的处理方式(nopanscan|noletterbox|crop)。Entry指定所在pgc的入口属性(title,root),常用于指定menus属性,title属性可以用遥控上的topmenu按钮直接跳转,root可以用遥控上的索引菜单按钮直接跳转。在titles中,遇到entry=notitle,表示title结束。audio和palette主要用于指定音频参数和调色板,具体见官方文档。
三、菜单的制作
1.确定DVD制式。NTSC或PAL不要搞混,如果把P制的菜单做到N制的视频到将会导致菜单按钮错位。
2.用图片处理软件绘制菜单。
(1)制成一个完整的菜单jpeg文件,用后续的菜单mpegp视频生成,颜色不限,背景与菜单项颜色配合要协调,简洁素雅,易于观看,常用深色或半透效果的背景配上高亮清晰的菜单项,
(2)采用层复制的方式生成被选中的高亮菜单项(buttons),该层必须全透明处理,颜色采用4色索引模式,透明算一种颜色,实际可视颜色控制在3种以内,抹去无关的内容,仅保留需要选中高亮的菜单项既可,导出为png文件既可。在实际操作中,可以对原菜单项加衬底或在菜单项的位置描边框或在菜单项位置附件放上一朵小花都可以。按官方文档的说法,DVDAuthor对菜单项高亮显示的实质是一种映射,即将本层图片原样映射到前面菜单jpeg图形文件生成的mpeg视频中,因此,本层底色透明的png图形需要高亮的内容应该和前面菜单jpeg图形对应的内容位置完全一致,如果有错位,就位显示重影或偏差。如果本层图片有覆盖前面菜单jpeg图形的内容,一并会被映射上去。如果背景不透明,spumux将会本层图形识别成一个实心按钮,全部映射到菜单jpeg上去。
3.生成菜单
(1)合成jpeg菜单视频
推荐使用jepg2yuv,程序易得,兼容性好
代码:
N制:
jpeg2yuv -n 50 -I p -f 29.97 -j menu.jpg | mpeg2enc -n n -f 8 -o menu.m2v
P制:
jpeg2yuv -n 50 -I p -f 25 -j menu.jpg | mpeg2enc -n p -f 8 -o menu.m2v
(2)增加音频
DVD可用音频主要为ac3和mp2,dobly未做测试,未知。视频文件的时长受音频文件时长控制,与音频文件等长。
mplex -f 8 -o menu.mpg menu.m2v menu.ac3
(3)合成菜单按钮
合成菜单按钮需要用到spumux的xml配置文件,主要内容如下:
代码:
<subpictures>
<stream>
<spu
force="yes"
start="00:00:00.00"
image="menu1.png"
select="menu2.png"
highlight="menu2.png"
autooutline="infer"
outlinewidth="6"
autoorder="rows"
>
</spu>
</stream>
</subpictures>
特别需要注意outlinewidth和autoorder参数,outlinewidth是设置spumux按钮检测最小间隙,如果不设置该参数,由两个图形拼成的按钮存在任何一点间隙便会被识别为两个按钮;auoorder有rows和columns两个参数,rows是读完一整行按钮再读下一行,columns是读完一整列按钮后再读另一列。在物理结构上两者是等价的,但是在布置DVD菜单时尽量按行布置,用rows参数有一个好处就是能够最后处理菜单下面“播放、上一页、下一页”这些按钮,但columns就必须在一列的最后处理“播放、上一页、下一页”这些按钮,所以多数DVD都是采用的rows参数。其中imgae和select均可省略,保留highlight既可,如果你想用不一样的背景图和菜单项点击瞬变,可以增选这些项目。最后,用spumux将透明背景的图像按钮以强制字幕的方式映射到菜单视频上,一张DVD菜单就完成了。
代码: