一种支持多种编码格式的媒体数据的方法及系统的制作方法

文档序号:7970803阅读:113来源:国知局

专利名称::一种支持多种编码格式的媒体数据的方法及系统的制作方法
技术领域
:本发明涉及流媒体
技术领域
,尤其涉及一种支持多种编码格式的媒体数据的方法及系统。
背景技术
:随着第三代移动通信技术和宽带网络的发展,网络通信能力不断提高,带来了业务的数量和种类的急剧增加,极大丰富了用户的生活。其中,采用流媒体技术将节目的多媒体数据(影像和声音等)进行压缩处理后存储到网络服务器,用户通过访问网络服务器,在下载节目的同时便可观看和收听该节目,而不需要在节目的整个多媒体文件下载完成后才能观看、收听。流媒体技术实现了在低带宽环境下实时提供高质量的影音效果。流媒体业务应用范围广泛,多种应用业务都需要流媒体技术支撑,流媒体业务已成为第三代移动通信技术和宽带网的主流业务。流媒体的数据通过数据编码技术将原始数据进行了压缩,在保证不影响人们视觉效果的前提下,减少了传送的数据量,减轻了对传输网络的负载压力。目前的数据编码技术很多,包括ISO/IEC的MPEG-2/MPEG-4标准,ITU-T的H.263/H.264标准,中国的AVS等标准。现有技术中,为了在同一个流媒体系统中支持多种编码标准,通过使用不同的流媒体服务器来承载不同的编码标准进行编码后的流媒体数据。参阅图1所示,分别采用MPEG-2/MPEG-4流媒体服务器、H.263/H.264流媒体服务器和AVS流媒体服务器承载根据MPEG-2/MPEG-4标准、ITU-T的H.263/H.264标准、AVS标准进行编码后的流媒体数据,客户端发送媒体播放请求后,存储有客户端点播节目的媒体数据的流媒体服务器根据客户端的请求,先将媒体文件进行实时传输协议封装,然后再将封装的媒体文件发送给客户端。采用现有技术的方式,根据不同编码标准进行编码后的流媒体数据不能实现在各流媒体服务器之间的共享,每种流媒体服务器只能播放支持的编码格式,即使客户端用户很少的情况下,仍然需要多个服务器为客户端提供服务,增加了系统的成本;同时,如果系统中需要支持新的编码格式,则需要增加新的服务器,不仅进一步增加了系统的成本,同时也增加了系统的集成难度。而且,各种流媒体服务器承载了不同编码格式的流媒体数据,在某个时刻可能一种流媒体服务器负载较轻,而另一种流媒体服务器已经过载,无法实现流媒体服器的负载均衡。
发明内容本发明提供了一种支持多种编码格式的媒体数据的方法、通信系统以及流媒体服务器。本发明的具体技术方案如下一种支持多编码格式的媒体数据的方法,包括流媒体服务器对接收的不同编码格式的媒体文件进行实时传输协议预封装,将其分别转换成特定文件格式的媒体文件,该特定文件格式的媒体文件包括媒体数据信息和索引信息;所述流媒体服务器根据客户端的操作命令和相应的媒体文件中的索引信息,将该相应的媒体文件中的媒体数据信息发送给所述客户端。一种流媒体服务器,包括接收单元,用于接收不同编码格式的媒体文件和客户端发送的操作命令;转换单元,用于将接收的不同编码格式的媒体文件分别转换成经过实时传输协议预封装的特定文件格式的媒体文件,该特定文件格式的媒体文件包括媒体数据信息和索引信息;存储单元,用于存储所述特定文件格式的媒体文件;处理单元,用于根据客户端发送的操作命令和相应的媒体文件中的索引信息确定对应的视频关键帧在该相应的媒体文件中的的起始位置,并从该起始位置开始读取媒体数据信息;发送单元,用于向所述客户端返回所述相应的的媒体数据信息。一种通信系统,包括客户端,用于向流媒体服务器发送操作命令,并接收所述流媒体服务器返回的相应的媒体数据信息;流媒体服务器,用于将接收的不同编码格式的媒体文件分别转换成经过实时传输协议预封装的特定文件格式的媒体文件,该特定文件格式的媒体文件包括媒体数据信息和索引信息;以及根据客户端发送的操作命令和对应的索引信息返回相应的媒体数据信息。本发明有益效果如下本发明通过将接收的不同编码格式的媒体文件分别转换成经过实时传输协议预封装的特定文件格式的媒体文件,使得同一台流媒体服务器可以针对多种编码格式的媒体文件提供相应的系统服务,这在一定程度上减少了系统的成本,降低了系统的集成难度,并且进一步实现了系统的负载均衡;另一方面,本发明由于对媒体文件进行了实时传输协议预封装,这在一定程度上缩短了流媒体服务器处理信息的时间,提高了用户的使用体验。图1为现有流媒体服务系统体系结构图;图2A为本发明实施例中流媒体服务系统体系结构图;图2B为本发明实施例中流媒体服务器功能结构图;图3为本发明实施例中流媒体服务器将不同编码格式的媒体文件转换为特定文件格式的媒体文件流程图;图4为本发明实施例中PES包结构图。具体实施例方式为了解决现有技术下,一台流媒体服务器只能针对一种格式的媒体文件提供相应的系统服务,从而容易造成系统成本增加,以及系统负载不均衡的问题。本发明实施例中,流媒体服务器接收不同编码格式的媒体文件后(例如分别按MPEG-2、MPEG-4、h.263、h.264和AVS等标准压缩的媒体文件),分别将其转换成特定文件格式的媒体文件。其中,转换的过程为流媒体服务器先解析媒体文件并根据媒体文件的源文件确定其相应的编码格式;接着所述流媒体服务器根据媒体文件的编码格式获得其相应的视频帧、音频帧和索引参数,并对所述媒体文件的视频帧和音频帧进行实时传输协议(RTP)预封装,生成相应的媒体数据信息,所述视频帧包括视频关键帧和视频预测帧;另一方面,流媒体服务器根据所述媒体文件的索引参数生成用于定位所述视频关键帧的索引信息,所述媒体数据信息中两个相邻的视频关键帧之间设置视频预测帧和音频帧。这样,流媒体服务器便将不同编码格式的媒体文件分别转换成经过RTP预封装的特定文件格式的媒体文件,所述特定文件格式的媒体文件包括媒体数据信息和索引信息;根据文件系统的设计不同,媒体数据信息和索引信息可以合成一个文件存放,也可以分为两个不同的文件存放。下面结合附图对本发明优选的实施方式进行详细说明。参阅图2A所示,本实施例中,提供流媒体服务的系统包括流媒体服务器20和客户端21。所述流媒体服务器20用于将接收的不同编码格式的媒体文件分别转换成经过RTP预封装的特定文件格式的媒体文件;以及根据客户端发送的操作命令和对应的索引信息返回相应的媒体数据信息;所述客户端21用于向流媒体服务器20发送操作命令,并接收所述流媒体服务器20返回的相应的媒体数据信息。参阅图2B所示,所述流媒体服务器20包括接收单元201、转换单元202、存储单元203、处理单元204和发送单元205。所述接收单元201用于接收不同编码格式的媒体文件和客户端21发送的操作命令;所述转换单元202用于解析媒体文件从而确定其相应的编码格式,并根据所述编码格式获得其相应的视频帧、音频帧和索引参数,然后对所述媒体文件的视频帧和音频帧进行RTP预封装,生成相应的媒体数据信息,以及根据所述媒体文件的索引参数生成用于定位所述视频关键帧的索引信息;所述存储单元203用于存储所述特定文件格式的媒体文件;所述处理单元204用于根据客户端21发送的操作命令和对应的索引信息确定相应的视频关键帧在媒体文件中的起始位置,并从该起始位置开始读取相应的媒体数据信息;所述发送单元205用于向客户端21返回所述相应的的媒体数据信息。本实施例中,所述媒体数据信息包含全部的流数据,这些流数据以数据帧的形式依次排列。为了简化媒体数据包的发包流程并支持视音频同步,流媒体服务器20把在同一个媒体文件中收集到的所有原始数据都归属至同一个媒体数据包内。参阅表1所示,流媒体服务器20根据某个媒体文件的编码格式获取了该媒体文件的视频帧和音频帧,其中视频帧又分为视频关键帧(I帧)和视频预测帧(P帧或B帧),I帧中保存有对应于一个画面的完整的视频数据,而P帧或B帧则用于对相应的I帧进行调整,从而获得新的画面。例如,第一个I帧中保存的视频数据对应于画面A,而之后的画面B、画面C相对于画面A而言变化不大,那么在画面B和画面C所对应的视频帧中(如P帧或B帧)就没有必要将完整的视频数据再保存一遍,而只需要保存相应的预测信息,当播放该P帧或B帧时,只要对第一个I帧中保存的视频数据进行相应调整,即可生成画面B和画面C。如表1所示,在同一个媒体数据包内,I帧、P帧、B帧和音频帧按照顺序依次排列。和现有技术不同,本实施例中,流媒体服务器20对所述I帧、P帧、B帧和音频帧进行RTP预封装,即在获取所述多种数据帧的同时将其封装为不同的RTP包。参阅表2所示,每一个I帧、P帧、B帧和音频帧被分割为1个或多个RTP包,其中,VI1R1表示第一个I帧的第一个RTP包,VI1R2表示视频第一个I帧的第二个RTP包;A1R1表示第一个音频帧的第一个RTP包,A1R2表示第一个音频帧的第二个RTP包;VP1R1表示第一个P帧的第一个RTP包;VB1R1表示第一个B帧的第一个RTP包;VI2R1表示第二个I帧的第一个RTP包,以此类推。表1表2参阅表3所示,每一个RTP包括实时流协议头信息(rtspheader)、实时传输协议头信息(rtpheader)和媒体数据(sample)三个数据部分,其中,rtspheader包含4个字节,第一个字节为RTP数据,第二个字节为端口号,第三字节和第四字节为RTP包的长度;rtpheader为RTP数据包的包头信息;sample为采样的视频数据或音频数据。表3由于流媒体服务器20在接收到媒体文件后,即对该媒体文件中的媒体数据信息(包括I帧、B帧、P帧和音频帧)进行了RTP预封装,则流媒体服务器20在接收到用户的操作命令后,可以直接向该用户发送相应的RTP包,而不必像现有技术一样,在接收到用户的操作命令后,才对所要发送的媒体数据信息进行RTP封装,然后再将该媒体数据信息发送给相应的用户;并且每次接收到相同的操作命令时,都要对相同的流媒体信息进行重复性的RTP封装。这样便在一定程度上减少了流媒体服务器20的信息处理量,缩短了流媒体服务器20在提供流媒体服务时处理信息的时间,进而提高了用户的使用体验。本实施例中,所述索引信息包括每个I帧的描述信息,该描述信息包括当前I帧的起始位置、当前I帧的数据大小、当前I帧到一下个I帧的数据大小、采样时间和时间标识;流媒体服务器20把这些索引参数分别保存到索引表对应的字段;通过该索引表,流媒体服务器20可以快速定位到每一个I帧,从而对媒体数据信息实现播放、定位、快进、快退等操作。参阅表4所示,在索引表中,file-offset表示当前的I帧在媒体数据信息中的开始位置;size表示当前的I帧到下一个I帧的数据大小;iframesize表示当前的I帧的数据大小;time表示绝对时间,用于时间控制;ts为时间标识。表4参阅表1所示,第一个I帧和第二个I帧之间的所有P帧、B帧都是用于调整第一个I帧的,而第一个I帧和第二个I帧之间的所有音频帧应依靠自身的时间标识和相应的视频帧(包括I帧、P帧和B帧)进行匹配,当音频帧中携带的时间标识和视频帧中的相同时,即表示该音频帧和该视频帧应同时播放。下面以编码格式为MPEG-4、后缀为“.mp4”的媒体文件和编码格式为MPEG-2、后缀为“.ts”的媒体文件为例进行说明,参阅图3所示,流媒体服务器20将编码格式为MPEG-4和MPEG-2的媒体文件分别转换成特定文件格式的媒体文件的详细流程如下步骤300流媒体服务器20接收到后缀为“.mp4”和“.ts”的媒体文件后,根据其源文件中的文件头信息判断该媒体文件的编码格式分别为“MPEG-4”和“MPEG-2”。参阅表5所示,以“.mp4”为后缀的媒体文件由若干原子(atom)组成,每个atom包含三个部分长度(size)、类型(type)和所包含的数据(data)。表5表6另外,以“.mp4”为后缀的媒体文件中还包括一个采样列表原子(Sampletableatom),参阅表6所示,Sampletableatom包括每个采样点的描述信息(Sampledescriptionatom)、每个采样点对应的时间信息(Time-to-sampleatom)、每个包含视频关键帧数据的采样点的序号(Syncsampleatom)等等用于索引的参数。以“.ts”为后缀的媒体文件由若干个TS包组成,这些TS包由若干PES包分割而成,参阅图4所示,每个PES包封装的第一个TS包由TS头、PES头和DATA三部分组成,其他的TS包由TS头和DATA两部分组成,其中,TS头用于标识发送优先级等信息,PES头包含时间标识等索引参数,DATA用于保存相应的媒体数据。步骤310流媒体服务器20将所述“.mp4”媒体文件的每个atom的data部分中的编码格式为MPEG-4的媒体数据提取出来,将所述“.ts”媒体文件中编码格式为MPEG-2的DATA部分提取出来,分别组成如表1所示的媒体数据包,该媒体数据包中包括媒体文件的视频帧和音频帧。步骤320流媒体服务器20对所述视频帧和音频帧进行RTP预封装,如表2所示,所述视频帧和音频帧被流媒体服务器20分别分割为一个或多个RTP包。步骤330流媒体服务器20根据编码格式为MPEG-4的“.mp4”媒体文件Sampletableatom中的索引参数生成如表4所示的索引信息,根据编码格式为MPEG-2的“.ts”媒体文件的PES头中的索引参数生成如表4所示的索引信息,该索引信息用于对所述视频帧中的I帧进行快速定位。根据上述实施例,流媒体服务器20在将多种不同编码格式的媒体文件转换为特定文件格式的媒体文件后,当客户端21请求播放某段媒体文件时,所述流媒体服务器20从索引表中读取相应的I帧的索引信息,定位该I帧在媒体数据信息中的起始位置,并从所述起始位置开始读取有效的媒体数据,将相应的视频关键帧、视频预测帧和音频帧发送到客户端21。例如,当用户通过客户端21登录流媒体服务器20,并定位点播电影A中的情节B时,流媒体服务器20根据时间计算获得情节B所对应的I帧的绝对时间C,并通过在索引表中查找“time”字段等于C的记录,获取该I帧在电影A中的起始位置D,接着流媒体服务器20从D位置开始读取该I帧及其后续的所有I帧、P帧、B帧和相应的音频帧,并通过网络向客户端21发送相应的RTP包。此外,用户也可以通过客户端21对电影A进行快进操作或快退操作,快进操作和快退操作按速度不同分为1X、2X和4X等级别。当用户从情节B开始对电影A进行1X的快进操作或快退操作时,流媒体服务器20在获取情节B对应的I帧的起始位置D后,从D位置开始读取该I帧,并向后或向前连续只读取所有的I帧,而不读取P帧、B帧或音频帧。当用户从情节B开始对电影A进行2X或4X的快进操作或快退操作时,流媒体服务器20在获取情节B对应的I帧的起始位置D后,从D位置开始读取该I帧,并向后或向前每间隔一个或多个I帧后只读取相应的I帧。在进行快进操作或快退操作的过程中,流媒体服务器20通过索引表中的“iframesize”字段来确定每次要读取的I帧的大小。通过上述方法,同一台流媒体服务器20可以处理不同编码格式的媒体文件,这样,在流媒体服务系统中,少量的流媒体服务器20即可向用户提供内容丰富的系统服务,这在一定程度上减少了系统的成本,降低了系统的集成难度,并且进一步实现了系统的负载均衡;显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。权利要求1.一种支持多种编码格式的媒体数据的方法,其特征在于,包括步骤流媒体服务器对接收的不同编码格式的媒体文件进行实时传输协议预封装,将其分别转换成特定文件格式的媒体文件,该特定文件格式的媒体文件包括媒体数据信息和索引信息;所述流媒体服务器根据客户端的操作命令和相应的媒体文件中的索引信息,将该相应的媒体文件中的媒体数据信息发送给所述客户端。2.如权利要求1所述的方法,其特征在于,所述的生成特定文件格式的媒体文件包括步骤解析媒体文件并根据媒体文件的源文件确定其相应的编码格式;根据媒体文件的编码格式获得其相应的视频帧、音频帧和索引参数;对所述媒体文件的视频帧和音频帧进行实时传输协议预封装,生成相应的媒体数据信息,所述视频帧包括视频关键帧和视频预测帧;以及根据所述媒体文件的索引参数生成用于定位所述视频关键帧的索引信息。3.如权利要求2所述的方法,其特征在于,在进行实时传输协议预封装时,将所述视频帧关键帧、视频预测帧和音频帧分别分割成一个或多个实时传输协议数据包,所述实时传输协议包包括实时流协议头信息、实时传输协议头信息和媒体数据。4.如权利要求2所述的方法,其特征在于,所述索引信息包括各视频关键帧的起始位置、数据大小、到一下个视频关键帧的数据大小、采样时间和时间标识。5.如权利要求4所述的方法,其特征在于,所述音频帧中包含有时间标识,通过该时间标识匹配对应视频关键帧。6.如权利要求1-5任一项所述的方法,其特征在于,所述操作命令包括播放命令、定位命令、快进命令和快退操作。7.如权利要求6所述的方法,其特征在于,所述流媒体服务器接收播放命令或定位命令后,根据所述索引信息确定相应的视频关键帧在对应的媒体文件中的起始位置,并从所述起始位置开始读取该相应的视频关键帧及其后续的视频关键帧、视频预测帧和音频帧。8.如权利要求6所述的方法,其特征在于,所述流媒体服务器接收快进命令或快退命令后,根据所述索引信息确定相应的视频关键帧在对应的媒体文件中的的起始位置,并从所述起始位置开始读取该相应的视频关键帧,以及向后或向前连续只读取相应的视频关键帧,或者向后或向前每间隔一个或多个视频关键帧后读取相应的视频关键帧。9.一种流媒体服务器,其特征在于,包括接收单元,用于接收不同编码格式的媒体文件和客户端发送的操作命令;转换单元,用于将接收的不同编码格式的媒体文件分别转换成经过实时传输协议预封装的特定文件格式的媒体文件,该特定文件格式的媒体文件包括媒体数据信息和索引信息;存储单元,用于存储所述特定文件格式的媒体文件;处理单元,用于根据客户端发送的操作命令和相应的媒体文件中的索引信息确定对应的视频关键帧在该相应的媒体文件中的的起始位置,并从该起始位置开始读取媒体数据信息;发送单元,用于向所述客户端返回所述相应的的媒体数据信息。10.如权利要求9所述的流媒体服务器,其特征在于,所述转换单元还用于将所述视频关键帧、视频预测帧和音频帧分别分割为一个或多个实时传输协议数据包。11.一种通信系统,其特征在于,包括客户端,用于向流媒体服务器发送操作命令,并接收所述流媒体服务器返回的相应的媒体数据信息;流媒体服务器,用于将接收的不同编码格式的媒体文件分别转换成经过实时传输协议预封装的特定文件格式的媒体文件,该特定文件格式的媒体文件包括媒体数据信息和索引信息;以及根据客户端发送的操作命令和对应的索引信息返回相应的媒体数据信息。12.如权利要求11所述的通信系统,其特征在于,所述流媒体服务器包括接收单元,用于接收不同编码格式的媒体文件和客户端发送的操作命令;转换单元,用于将接收的不同编码格式的媒体文件分别转换成经过实时传输协议预封装的特定文件格式的媒体文件,该特定文件格式的媒体文件包括媒体数据信息和索引信息;存储单元,用于存储所述特定文件格式的媒体文件;处理单元,用于根据客户端发送的操作命令和相应的媒体文件中的索引信息确定对应的视频关键帧在该相应的媒体文件中的的起始位置,并从该起始位置开始读取媒体数据信息;发送单元,用于向所述客户端返回所述相应的的媒体数据信息。全文摘要本发明公开了一种支持多种编码格式的媒体数据的方法,该方法为流媒体服务器对接收的不同编码格式的媒体文件进行实时传输协议预封装,将其分别转换成特定文件格式的媒体文件,该特定文件格式的媒体文件包括媒体数据信息和索引信息;所述流媒体服务器根据客户端的操作命令和相应的媒体文件中的索引信息,将该相应的媒体文件中的媒体数据信息发送给所述客户端。这样,便解决了现有技术下,由于不同编码格式的媒体文件需要分别存储到不同的流媒体服务器中,从而导致系统的成本增加,系统的集成难度增加,以及不能实现各流媒体服务器之间的负载均衡的问题。本发明同时公开了一种流媒体服务器和一种通信系统。文档编号H04N7/24GK1949876SQ20061014481公开日2007年4月18日申请日期2006年11月21日优先权日2006年11月21日发明者杨柏梁,尚志豪,黄卉申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1