发明内容
本发明所要解决的技术问题是提供一种媒体文件播放方法、播放系统及一种媒体播放器,以解决目前的媒体文件格式及其相应的播放模式不兼容第三方编码、音轨支持有限的问题。
为解决上述技术问题,根据本发明提供的具体实施例,本发明公开了以下技术方案:
一种媒体文件播放方法,包括:
读取媒体文件的格式信息;所述媒体文件的格式以树型结构预定义,包括文件头和树型结构的节点属性,各节点分别对应不同的媒体流,各节点定义自己的属性信息;
解析所述文件头,获取该媒体文件的各节点属性;
根据各节点属性查找对应各节点数据的解码器;
读取各节点数据,利用相应的解码器进行解码并播放;
其中,所述树型结构为多层级,包括视频节点、音频节点、字幕节点、自定义节点,所述每个节点又包括下一层级的节点;所述视频节点的属性定义了视频的编解码格式,所述音频节点的属性定义了音频的编解码格式及可支持的 多种音轨,所述字幕节点的属性定义了可支持的多种软字幕、多种字符集及多字幕选择;在同一媒体文件中,视频节点和音频节点可定义不同的编解码格式,而同一节点可定义针对不同场景的编解码格式。
所述方法还包括:通过添加新节点的方式,向媒体文件插入新的媒体流并播放。
其中,所述新的媒体流包括广告信息,则根据媒体文件的播放时间及播放地域,播放不同的相关广告信息,并统计广告的点击情况。
优选的,所述树型结构的节点还包括互动节点,所述互动节点的属性定义了互动信息的网址链接,通过该网络链接地址引导用户进入相关网页。
本发明还提供了一种媒体播放器,包括:
文件解析单元,用于读取媒体文件的格式信息;所述媒体文件的格式以树型结构预定义,包括文件头和树型结构的节点属性,各节点分别对应不同的媒体流,各节点定义自己的属性信息;解析所述文件头,获取该媒体文件的各节点属性;
查询单元,用于根据各节点属性查找对应各节点数据的解码器;
解码单元,用于读取各节点数据,利用相应的解码器进行解码。
播放单元,用于对解码内容进行播放;
其中,所述树型结构为多层级,包括视频节点、音频节点、字幕节点、自定义节点,所述每个节点又包括下一层级的节点;所述视频节点的属性定义了视频的编解码格式,所述音频节点的属性定义了音频的编解码格式及可支持的多种音轨,所述字幕节点的属性定义了可支持的多种软字幕、多种字符集及多字幕选择;在同一媒体文件中,视频节点和音频节点可定义不同的编解码格式,而同一节点可定义针对不同场景的编解码格式。
所述媒体播放器还包括:节点添加单元,用于向所述树型结构添加节点及其属性信息,通过添加新节点的方式,向媒体文件插入新的媒体流。
其中,所述新的媒体流包括广告信息,则根据媒体文件的播放时间及播放地域,所述播放单元播放不同的相关广告信息,并统计广告的点击情况。
优选的,所述树型结构的节点还包括互动节点,所述互动节点的属性定义了互动信息的网络链接地址,通过该网络链接地址引导用户进入相关网页。
本发明还提供了一种媒体文件播放系统,包括上述任一实施例所述的媒体播放器。
根据本发明提供的具体实施例,本发明具有以下技术效果:
首先,本发明提供了一种新的媒体文件格式,该格式是基于XML(Extensible Markup Language,可扩展标识语言)技术的一种树型二进制结构化描述方式,以树型结构定义媒体文件格式,可以任意地增加、定义自己的节点,任意的音频、视频、字幕、互动或者其它属性(包括版权信息、内容机制等)都可以作为一个节点加入,节点的数量不受限制,从而可以支持更多的音频、视频、字幕、自定义的任何节点属性。而每种类型的节点在解析的时候,根据属性和数据进行复原。
这种媒体文件可支持任意的编码格式,在同一个媒体文件中,可以针对该文件中的视频定义一种编解码格式,针对该文件中的音频定义另一种更适合的编解码格式;或者,同一个媒体流在不同场景采用不同的编解码格式,这样可以做到带宽的自适应,不同的接入用户可以自动采用不同的码率模式,从而适应互联网应用中的多样性。同一个媒体文件还可以支持多音轨、多字幕。
其次,基于这种媒体文件格式,通过增加新节点的方式可以插入任意的媒体流,如广告信息。而且,本发明还能够根据媒体文件的播放时间及播放地域,播放不同的相关广告信息,并统计广告的点击情况。
再次,本发明在所述媒体文件格式中定义了互动节点,该互动节点提供了交互的影视信息、交互的广告信息和交互的版权信息等。对于交互的影视信息,通过点击交互链接,可以直接访问相关网页内容,极大地方便了用户操作。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
媒体文件格式是一种独特的文件格式,其首要的设计目标是能够描述数据,能够保存数据,不但能保存音频、视频数据,而且能反映与播放相关的特性,如解码类型、音视频同步信息、速率信息,与版权作者等相关的描述信息等。为了更有效地描述数据,并可以随意地扩展,本发明在借鉴XML规则的基础上,结合媒体文件都是二进制数据块存储的基础上,建立了二进制的XML格式(以下简称为EBXML),通过这种二进制的XML来进行媒体数据的描述和解析。
首先介绍XML格式。XML是一种结构化的描述语言,提供了一种标准化、灵活、强大的方法,用于在许多不同平台和应用程序之间交换数据。市场上已经有许多成熟的软件可用来帮助编写、管理XML文件,它是一种开放式的标准,是实现网络功能的最佳选择。XML高效而且可扩充,XML的可扩展性很大,在XML中可以定义无限量的标记。此外,用户可以在XML中开发出其他的语言与标记,可以定义自己的标记集。
如上所述,XML是一种结构化的、可扩展的、可自定义标记集的语言,但标准的XML是针对字符形式的,而媒体数据通常都是二进制格式的数据块。在借鉴XML优势的基础上,本发明定义了EBXML——基于二进制的树型XML格式,通过EBXML来进行媒体数据的描述和扩展。
传统的媒体文件格式,通常采用的是固定的、不可伸缩的方式来进行数据的描述,如AVI格式,如下:
00000000-00000003 多媒体文件识别码:RIFF;
00000004-00000007 文件大小(10EDICh字节)-8字节;
00000008-0000000B AVI文件识别码;
0000000C-0000000F 第一个LIST块识别码;
00000010-00000013 第一个LIST块的大小(168h字节);
00000014-00000017 hdrl部分识别码,以下数据记录着此文件的格式;
00000018-0000001B hdrl部分所包含的avih块识别码,此模块记录着本文件的初始化信息;
0000001C-0000001 Favih块大小(38h字节);
00000020-00000023每帧画面显示所维持多少个百万分之一秒,本例为1046Bh,即66667百万分之一秒,约0.07秒,所以在播放此文件时,看到的画面约每秒15帧。
如上面所示,AVI文件只能支持2个块,一个是标识视频,一个是标识音频。这种完全的二进制描述方式不可扩展。而EBXML是一种结构化的描述性质,如同常规的XML一样,如下所示:
初始媒体格式简要说明:
<Video>ID=1codec=MPG4</Video>
<Audio>ID=1codec=AAC</Audio>
这样就标识在该媒体文件中,包含了2个流,一个是音频流,一个是视频流。如果需要在让该媒体文件中增加第二种视频,其结构变成了如下:
扩展媒体格式简要说明:
<Video>ID=1codec=MPG4</Video>
<Audio>ID=1codec=AAC</Audio>
<Video>ID=2codec=RMV2</Video>
EBXML是一种树型的二进制结构化描述规则,而不是传统的固定的二进制非结构化描述方式,EBXML可以任意地增加、定义自己的节点,从而可以任意地定义音频、视频、字幕、互动等节点。每种类型的节点在解析的时候,根据属性和数据进行复原。
参照图1,是实施例所述树型的EBXML结构示意图。
所述结构是一种多层级结构,包括文件头信息和节点属性,其中文件头信息记录了查找各节点的相关信息,因此根据文件头就可以找到各节点属性。文件头是根节点,根节点下的节点包括视频节点属性、音频节点属性、互动节点属性、字幕节点属性、自定义节点属性、等等,每种节点属性对应一种媒体流,各节点定义自己的属性信息。其中,每种节点属性又可以定义多个,如视频节点属性可以定义1...N。而每个节点属性下又可以定义多层级的多个节点,如视频节点属性下包括数据节点1...N和节点属性信息1...N。
从上可以看出,由于采用了树型的二进制XML格式,任意的音频、视频、 字幕、互动或者其它属性(包括版权信息、内容机制等)都可以作为一个节点加入,节点的数量不受限制,从而可以支持更多的音频、视频、字幕、自定义的任何节点属性。
例如,在同一个媒体文件中,可以针对该文件中的视频节点属性定义一种编解码格式,针对该文件中的音频节点属性定义另一种更适合的编解码格式。这样,同一个媒体文件可以支持多种格式的视频和音频,如支持包括Real、WMV、其它第三方视频、音频编码格式等。而现有技术中的媒体文件只支持单一的视频或音频格式,如WMV只支持WMV系统,RM只支持RM系列,即在一个媒体文件中对音频和视频都只能用单一的编解码方式。本发明则可以兼容第三方编码,可以根据视频和音频的特性选择各自最适合、最有效的编码。
而且,无论是电影、电视剧还是其它视频,本身场景是变化的,针对特定的场景采用特定的编码算法,能达到更优的效果;同时,在互联网情况下,用户的接入带宽是不同的,目前的单一编码、单一码率的方式,很难让不同接入带宽的用户都欣赏到适合自身网络情况的内容。而本发明不仅能支持多种编码格式,还可以对同一个媒体流在不同场景采用不同的编解码格式,如定义一个视频节点的属性,该视频流在正常播放情况下采用一种编码格式,在音乐背景下采用另一种更适合的编码格式。这样,媒体流能根据场景的变化采用不同的编解码,达到最好的播放效果;同时,可以做到带宽的自适应,不同的接入用户可以自动采用不同的码率模式,从而适应互联网应用中的多样性。
还例如,可以在媒体文件的音频节点属性下定义可支持的多种音轨,如能达到16个音轨以上,也就是说可以支持至少16种语言。还可以在字幕节点属性下定义可支持的多种软字幕、多种字符集及多字幕选择,如支持SSA、ASS软字幕;支持STR、Unicode字符集,能更好的支持亚洲、欧美等字幕;支持多字幕选择,在播放的时候,用户可以自由的选择字幕。
针对上述媒体文件格式,本发明实施例提供了一种播放该媒体文件的方法。参照图2,是实施例所述播放EBXML结构的媒体文件的方法流程图。通常,该格式的媒体文件由播放器来播放,可以是在线播放,也可以下载到本地播放。下面以下载到本地播放为例进行说明。
S201,选择要播放的媒体文件;
S202,播放器读取媒体文件的格式信息;其中,所述媒体文件的格式以树型结构预定义,包括文件头和树型结构的节点属性,各节点分别对应不同的媒体流,各节点定义自己的属性信息;
如,所述树型结构为多层级,包括视频节点、音频节点、字幕节点、自定义节点,所述每个节点又包括下一层级的节点。所述视频节点的属性定义了视频的编解码格式,所述音频节点的属性定义了音频的编解码格式及可支持的多种音轨,所述字幕节点的属性定义了可支持的多种软字幕、多种字符集及多字幕选择。
在同一媒体文件中,视频节点和音频节点可定义不同的编解码格式,而同一节点可定义针对不同场景的编解码格式。
S203,播放器解析所述文件头,获取该媒体文件的视频、音频、字幕等各节点属性;
S204,播放器根据各节点属性查找对应各节点数据的解码器;
如果没有对应的解码器,则中止操作,并提示下载;如果找到,则继续S205。
S205,播放器读取各节点数据,利用相应的解码器进行解码并播放。
优选的,播放器在获取该媒体文件的各节点属性之前,还包括:根据文件头信息获取版权信息,并发送到服务器端进行版权认证,服务器端需要确认该媒体文件是否可以播放,并确认版权人信息。如果允许播放,播放器才可以获取各节点属性。
优选的,播放器还可以将播放情况(如播放内容、播放时间、播放地域等信息)发送给服务器端,以便服务器端进行统计,统计出针对版权人的媒体文件播放情况。
优选的,本发明通过在媒体文件中增加新节点的方式,提供了一种互动节点属性。通过设置互动节点,可以在播放视频文件的时候,在设定的时间显示出设定的资源(可能是图片、短视频或者滚动的文字信息),当用户点击这些资源(如广告),则会引入到互动节点中定义好的url地址,同时将这些点击信息进行统计。例如,互动节点属性可定义互动媒体信息和互动广告信息。
互动媒体信息是指提供了媒体文件的相关网址链接,用户点击可以连接到 相关网页。例如,现有技术中的视频文件都只能显示出部分版权信息,更不能提供具体交互的版权信息。而本发明中,不但能提供文件信息(长度、比特率、视频编解码器等)、内容信息(标题、艺术家、唱片集、作曲者、版本、分级)、播放列表(标题、作者、版权、分级)等信息,还能提供演员链接信息(导演、出品人、演员)等以及交互式的信息服务。这种交互式的信息服务是指播放器的“查看”工具条提供了演员信息的网址链接,用户点击该链接即可访问演员的相关信息。
互动广告信息是指通过设置互动节点,在播放视频文件的时候,在设定的时间显示出设定的广告,用户点击广告可以进入相关网页,同时将这些点击信息进行统计。优选的,还可以根据媒体文件的播放时间及播放地域,有效地定位用户群,针对不同用户播放不同的相关广告信息,并统计广告的点击情况反馈给服务器端。这种方式能做到广告的精准投放、定点投放,能让广告投放方得到精确的用户反馈。
参照图3,是实施例所述互动节点的操作流程图。
S301,选择要播放的媒体文件;
S302,播放器读取媒体文件的格式信息,并进行解析,获取媒体文件属性(如版权、节点属性等);
S303,播放器将媒体文件属性发送给服务器端;
当用户播放媒体文件的时候,和现有的媒体文件不同,本发明所述新型的媒体文件格式中包含了各种属性(如版权、内容标识等),播放器将媒体属性发送给服务器端。
S304,服务器端从数据库中查询并进行验证,取得互动等有关的信息,然后返回给播放器;
S305,播放器播将返回的互相属性和媒体文件中的互动节点属性相比较,从而播放更新的互动信息。
如果媒体播放器不能联网或者没有更新的互动属性,则采用媒体文件中缺省的互动节点属性来进行显示。
S306,在播放媒体文件的进程中,播放器会根据互动节点的属性显示互动信息,如果用户点击,则会引导进入设定的url,同时对点击情况进行统计, 并将统计信息提交给服务器端。
由上可以看出,该媒体文件是一种“互动”的,不仅仅可以和后台服务器进行互动,进行媒体属性、授权等验证,而且还能实时地修改互动节点信息,完成各种互动操作。
此外,本发明通过添加新节点的方式,可以向媒体文件插入任意的媒体流并播放,如上述的互动广告信息,插入的媒体流不受编码格式的限制。
本发明还提供了一种媒体播放器,用于播放上述EBXML结构的媒体文件。参照图4,是实施例所述一种媒体播放器的结构图。所述播放器主要包括:
文件解析单元U41,用于读取媒体文件的格式信息;其中,所述媒体文件的格式以树型结构预定义,包括文件头和树型结构的节点属性,各节点分别对应不同的媒体流,各节点定义自己的属性信息;解析所述文件头,获取该媒体文件的各节点属性;
查询单元U42,用于根据各节点属性查找对应各节点数据的解码器;
解码单元U43,用于读取各节点数据,利用相应的解码器进行解码。
播放单元U44,用于对解码内容进行播放。
其中,所述树型结构为多层级,包括视频节点、音频节点、字幕节点、自定义节点,所述每个节点又包括下一层级的节点;所述视频节点的属性定义了视频的编解码格式,所述音频节点的属性定义了音频的编解码格式及可支持的多种音轨,所述字幕节点的属性定义了可支持的多种软字幕、多种字符集及多字幕选择。
优选的,所述媒体播放器还包括:节点添加单元,用于向所述树型结构添加节点及其属性信息,通过添加新节点的方式,向媒体文件插入新的媒体流。
其中,所述新的媒体流包括广告信息,则根据媒体文件的播放时间及播放地域,所述播放单元播放不同的相关广告信息,并统计广告的点击情况。
优选的,所述树型结构的节点还包括互动节点,所述互动节点的属性定义了互动信息的网络链接地址,通过该网络链接地址引导用户进入相关网页。
所述播放器的主要功能是:媒体文件流的读取、解码、播放,互动信息的显示,与服务器间的通讯等。所述播放器主要播放EBXML格式的媒体文件,并且能播放其它格式的媒体文件,和常见的播放软件一样,该播放器能提供拖 动、音量、暂停、停止、播放等功能,还提供显示管理功能。
在播放过程中,播放器根据服务器端设定的策略,进行互动字幕、互动图片和短视频的显示。如果播放器不能和服务器端进行连接,播放器就显示媒体文件中的缺省互动信息。和现有技术中的插播视频广告不同,EBXML播放器能统计用户的点击观看情况,并能将互动广告信息的点击情况发送给服务器端,从而不仅仅能提供广告的投放情况,而且还能准确地统计出广告的浏览情况,这是目前很多视频投放广告所不能提供的。
此外,本发明实施例还提供了一种媒体文件播放系统,该系统主要包括上述任一实施例所述的媒体播放器,以及服务器端的管理单元,该媒体播放器通过与管理单元交互完成EBXML媒体文件的读取、解码、播放等功能。
图4所示播放器中未详述的部分可以参见图1所示文件格式、图2、图3所示方法的相关部分,为了篇幅考虑,在此不再详述。
以上对本发明所提供的一种媒体文件播放方法、播放系统及一种媒体播放器,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。