DVD动态菜单生成装置及方法
技术领域
本发明涉及菜单生成装置,更具体地说,涉及一种DVD动态菜单生成装置及方法。
背景技术
现有技术存在多种DVD制作软件,这些软件可将图片、音乐、视频等元素导入,经过特效加工,制作成视频或者DVD。DVD通常有其自己的菜单,每一页菜单对应一个遵守DVD标准的MPEG-II格式的视频,用于显示碟片内容、语言和字幕选项、艺术家信息和附加功能。通常的DVD菜单的制作方法为:
首先,分别截获各章节的缩略图,每个缩略图将绘到一个相框里面,代表对应的章节片段;
其次,准备好菜单背景图片模板资源,矩形相框资源和控制播放按钮等资源;
接着,编写图片编辑控件,允许用户自由调整相框和控制播放图标的位置,将相框、缩略图和控制播放按钮等资源绘制到菜单背景图片上,形成一张菜单图片。
最后,将编辑好的图片和用户选择的一首音乐制作成一个MPEG-II格式的视频,该视频再经过DVD标准化则可成为一个菜单视频,将制作好的DVD插入碟机播放就会首先呈现出DVD菜单来。现有的DVD菜单制作方法存在如下缺点:
1、用户只能选择图片作为菜单背景,难以制作出拥有视频动态效果的精美DVD菜单;
2、采用缩略图来代表各章节片段,无法在DVD菜单播放时欣赏到各章节的视频动画;
3、制作出来的DVD菜单热区遮罩只能是矩形形状;
4、在编辑菜单相框等元素位置的时候,无法实时观察实际播放动态效果。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种DVD动态菜单生成装置及方法。
本发明解决其技术问题所采用的技术方案是:构造一种DVD动态菜单生成装置,其包括:
媒体解析模块,用于分别解析输入的DVD菜单页面的图片数据、视频数据和背景音频数据;
菜单页面显示模块,用于根据所述媒体解析模块解析的视频数据和背景音频数据构建菜单音频数据和视频数据;
数据源模块,用于接收菜单页面显示模块发送的菜单音频数据和视频数据;
Directshow播放器,用于播放所述数据源模块发送的菜单音频数据和视频数据;
视频生成模块,用于编码所述数据源模块发送的菜单音频数据和视频数据,以生成菜单视频,并反馈所述菜单视频到所述菜单页面显示模块进行显示。
在本发明所述的DVD动态菜单生成装置中,所述菜单页面显示模块包括相框单元、控制播放按钮单元及背景单元。
在本发明所述的DVD动态菜单生成装置中,所述Directshow播放器包括实时编辑模块,用于拦截所述Directshow播放器的窗口消息,自定义消息响应事件,从而在所述Directshow播放器中响应鼠标事件。
在本发明所述的DVD动态菜单生成装置中,媒体解析模块包括:
图片解析单元,用于接收和解析图片数据,并将解析后的图片数据发送到所述菜单页面显示模块的相框单元或背景单元;
视频解析单元,用于接收和解析视频数据,并将解析后的视频数据发送到所述菜单页面显示模块的相框单元或背景单元;
音频解析单元,用于接收和解析音频数据,并将解析后的视频数据发送到所述菜单页面显示模块的背景单元;
在本发明所述的DVD动态菜单生成装置中,所述视频数据包括Slideshow视频数据。
根据本发明的另一个方面,提供一种DVD动态菜单生成方法,其包括以下步骤:
S1:媒体解析模块分别解析输入的DVD菜单页面的图片数据、视频数据和背景音频数据;
S2:根据解析的视频数据和背景音频数据,菜单页面显示模块构建菜单音频数据和视频数据;
S3、数据源模块接收菜单页面显示模块发送的菜单音频数据和视频数据;
S4:Directshow播放器播放所述数据源模块发送的菜单音频数据和视频数据,视频生成模块编码所述菜单音频数据和视频数据,以生成菜单视频;
S5:所述视频生成模块反馈所述菜单视频到所述菜单页面显示模块进行显示。
在本发明所述的DVD动态菜单生成方法中,在所述步骤S4中,还包括拦截所述Directshow播放器的窗口消息,自定义消息响应事件,从而在所述Directshow播放器中响应鼠标事件。
实施本发明的DVD动态菜单生成装置及方法,具有以下有益效果:1、既允许用户选择图片作为菜单背景资源,又允许选择视频作为菜单背景资源,且允许对视频进行时间裁剪,另外还允许用户将自制的Slideshow视频片段作为菜单背景资源;2、将各章节的视频动画片段在菜单中呈现出来,让用户直接可欣赏到个章节的视频动画;3、支持任意形状的相框和控制播放按钮资源,并将各章节动画片段按照资源形状在菜单呈现;4、在播放器窗口中实现编辑功能,允许一边编辑,一边实时预览到编辑后的播放效果。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明DVD动态菜单生成装置的系统框图;
图2是本发明DVD动态菜单生成装置的流程图。
具体实施方式
如图1所示,在本发明的DVD动态菜单生成装置中,其主要包括:媒体解析模块1、菜单页面显示模块2、数据源模块3、播放器模块4和视频生成模块5;其中,媒体解析模块1用于接收外部输入的媒体数据并分别解析该媒体数据中的的图片数据、视频数据和音频数据。菜单页面显示模块2包括相框单元21、控制播放按钮单元23及背景单元22;该菜单页面显示模块2是用户可观察的DVD菜单页面,其接收媒体解析模块1输入的图片数据、视频数据和背景音频数据,根据媒体解析模块解析的视频数据和背景音频数据构建菜单音频数据和视频数据。数据源模块3用于接收菜单音频数据和视频数据,根据指定时间点和视频格式输出对应时间点的视频帧数据,及根据指定时间点和音频格式输出对应时间点的音频采样数据。播放器模块4用于从数据源模块3中读取一定时间点的视频数据和音频数据;其可查看数据源模块3中的对象类型、查看视频数据和音频数据对象的实际播放时间、查看视频数据和音频数据对象的有效播放时间;由于播放器采用DirectShow技术开发,可以降低开发难度和开发周期。DirectShow技术是微软提供的Windows平台多媒体开发包,以COM为基础。DirectShow使用FilterGraph的模型来管理整个数据流的处理过程。参与处理的各个功能模块叫Filter,按功能分3类:Source、Transform、RenderingFilter。SourceFilter主要负责获取数据和前期的处理;TransformFilter负责数据格式的转换和传输,主要是负责解码;RenderFilter负责显示。各个Filter和应用程序的交互靠事件通知机制来完成:Filter状态改变时发出一个事件,由FilterGraphManager处理或发给应用程序。在采用Directshow技术实现一个播放器时,首先我们要构造一个SourceFilter,该SourceFilter有两个输出Pin,一个用于视频流传输,一个用于音频流传输,两个pin都必须实现FillBuffer函数,该函数负责填充视频流数据和音频流数据。视频生成模块5用于编码数据源模块3发送的菜单音频数据和视频数据,以生成菜单视频即DVD格式的视频,并将该菜单视频反馈到菜单页面显示模块2进行显示。
为了更好利用面向对象的代码复用性与多态性,根据视频数据、音频数据、图片数据公共特性抽象出一个多媒体父类,视频数据、音频数据和图片数据分别从多媒体父类继承。另外还可将用户自制的Slideshow视频,即某个时间片段作为菜单背景资源;Slideshow视频数据是一个内部包含一个视频轨道、多条音频轨道,甚至还有其它轨道的元素,视频轨道上会有多个图片或视频元素按照时间顺序链接起来,每条音频轨道上会有多首音乐按照时间顺序链接起来。
由于不同类型的数据处理方法不一致,如视频数据既有图像(多帧图像)也有音频,而音频数据仅有音频,而图片数据也仅有图像(单帧或者多帧),因此对于每种类型的媒体数据需要各自的数据解析类,即在一优选实施例中,媒体解析模块1包括图片解析单元11、视频解析单元12和音频解析单元13,其中,图片解析单元11用于接收和解析图片数据,并将解析后的图片数据发送到菜单页面显示模块2的相框单元;同样为了更好利用面向对象的代码复用性与多态性,根据图片解析单元11、视频解析单元12和音频解析单元13公共特性抽象出一个多媒体解析父类,从而图片解析单元11、视频解析单元132和音频解析单元13分别从多媒体解析父类继承。
为了实现在DirectShow播放器4窗口中实现编辑,可以自由改变各章节的相框形状,并调整其位置,改变菜单的背景,该DVD动态菜单生成装置还包括实时编辑模块,由于DirectShow播放器4窗口也是一个Windows窗口,因此实时编辑模块41只要能得到该窗口的句柄,就能通过函数SetWindowLongPtr对该窗口子类化,拦截播放器窗口消息,自定义消息响应事件,从而实现在该播放器中响应鼠标事件,实现实时编辑。
DVD动态菜单生成装置实现的动态菜单,既支持图片背景,还支持视频及自定义视频作为菜单背景,因此非常灵活,能给DVD菜单带来更精美的视觉动态效果。另外在DirectShow播放器4窗口中实时编辑预览,不需要编辑后再切换到别的窗口再播放,能给用户带来友好的操作体验。
如图2所示的DVD动态菜单生成方法的处理流程,其包括以下步骤:
S1:媒体解析模块分别解析输入的DVD菜单页面的图片数据、视频数据和背景音频数据;
S2:根据解析的视频数据和背景音频数据,菜单页面显示模块构建菜单音频数据和视频数据;
S3、数据源模块接收菜单页面显示模块发送的菜单音频数据和视频数据;
S4:Directshow播放器播放所述数据源模块发送的菜单音频数据和视频数据,视频生成模块编码所述菜单音频数据和视频数据,以生成菜单视频;在一优选实施例中,还可包括拦截所述Directshow播放器的窗口消息,自定义消息响应事件,从而在所述Directshow播放器中响应鼠标事件。
S5:所述视频生成模块反馈所述菜单视频到所述菜单页面显示模块进行显示。
本发明是通过几个具体实施例进行说明的,本领域技术人员应当明白,在不脱离本发明范围的情况下,还可以对本发明进行各种变换及等同替代。另外,针对特定情形或具体情况,可以对本发明做各种修改,而不脱离本发明的范围。因此,本发明不局限于所公开的具体实施例,而应当包括落入本发明权利要求范围内的全部实施方式。