背景技术
随着互联网的广泛使用,利用网络传输声音与视频信号的需求也越来越多,广播电视等媒体节目,也日益需要通过互联网来发布自己的音视频节目。但是,音视频在处理和传播过程中,往往容易被打断导致不连续,造成收录或保存作为素材源的文件不完整,而且会受到保存文件载体容量的限制,制约其使用。在网络传输过程中,需要较长的传输时间来进行视频传输,造成了不佳的用户体验,对于有些用户,并不全程观看节目,而只是跳跃性的进行查看,但系统还是会耗费很大的网络资源将全部视频文件进行下载,造成了极大的资源浪费。为了解决以上问题,流媒体技术的出现,在一定程度上使互联网传输音视频难的局面得到改善。传统的网络传输音视频等多媒体信息的方式是完全下载后再播放,下载常常要花数分钟甚至数小时。而采用流媒体技术,就可实现流式传输,将声音、影像或动画由服务器向用户计算机进行连续、不间断传送,用户不必等到整个文件全部下载完毕,而只需经过几秒或十几秒的启动延时即可进行观看。当声音视频等在用户的机器上播放时,文件的剩余部分还会从服务器上继续下载。
MPEG标准作为现今被广泛使用的数字视频、音频标准,被广泛用于数字电视、实时多媒体监控处理、移动多媒体通信、交互多媒体应用、演播电视等领域。因而也广泛利用于非线性编剪辑软件及视音频后期特效处理与合成软件,制作电影、广告、片花等的图像视频处理过程中,因此经常需要调用MPEG标准视频素材进行处理,面对实时视频传输的需要,及高性能视频解码技术的发展,流媒体技术也将被用于MPEG标准文件处理过程中,MPEG标准流媒体文件传输是通过视频传送服务器把节目当成数据包发出,传送到网络上,用户通过解压设备对这些数据进行解压后,节目就会像发送前那样显示出来,流媒体的流式传输时,声音、影像或动画等时基媒体由音视频服务器向用户计算机的连续、实时传送,用户不必等到整个文件全部下载完毕,而只需经过几秒或十数秒的启动延时即可进行观看。
在MPEG-2系统中,信息复合/分离的过程称为系统复接/分接,由视频,音频的ES流和辅助数据复接生成的用于实际传输的标准信息流称为MPEG-2传送流(TS:TransportStream),TS流是由很多不同种类的包所组成的,这些数据包都是188或192个字节大小,在188个字节包含两部分,包头和负载,包头包括同步信息,包信息等等,而负载则是传输的数据,而这些负载则可以组成PES流或者私有流等等数据流,因为以上结构当传输误码破坏了某一TS包的同步信息时,接收机可在固定的位置检测它后面包中的同步信息,从而恢复同步,避免了信息丢失;
TS作为一种媒体数据的封装形式,就不可避免的要将原数据文件按传输所需形式进行封装,因此在实际应用过程中发现TS媒体文件经过封装、网络传输、及解码后,直接用于非线性视频处理会存在编码错误,或影响播放的错误出现,因此就需要通过在建立视频文件索引过程中,对此类情况进行容错处理,已解决上述问题。从而保证流媒体文件在非线性编辑环境下可以正常使用。
随着无线传输技术的全面发展,3G(第三代移动通信)技术已经被广大用户所熟悉和接受,各种各样基于3G技术的应用层出不穷,三大运营商抓住三网融合的大环境,积极推进3G技术在广电行业的应用,流媒体技术同时也应用到移动网络和终端设备上,可以基于相同的协议进行多媒体数据的无线网络传输。
发明内容
针对现有技术中存在的缺陷和不足,本发明的目的是提供一种支持TS、流媒体文件的容错技术,以实现基于MPEG标准格式的媒体文件在非线性视频处理过程中的正确使用,包括支持TS流媒体类型,进行容错处理,提高文件的正确使用率。
为实现上述目的,本发明提供了一种流媒体文件的容错技术:首先,读取流媒体文件后,确定目标数据块;之后根据确定的目标数据块,确定基本文件头信息,并预留一级索引单元项目空间;解析目标数据块,通过校正方式,建立二级索引单元项目;最后根据所述二级索引单元项目信息生成一级索引单元项目,并回填到上述一级索引单元项目空间中。
因此通过正确建立二级索引数据结构,对原文件中存在的格式缺陷给予补正。
对于TS流(传输流)传输方式而言,本发明主要针对插入关键帧序号、插入视频解码单元基本信息方式对视频解码单元的封装缺陷给予校正。
本发明实施例提供一种支持TS流媒体文件精确定位的容错系统,包括:流媒体加载系统;提取PSI系统、流媒体视频、音频解码系统;容错处理系统;索引文件生成系统;流媒体源数据块大小可以为184或192字节的两种情况,其中,所述提取检索的首条记录的媒体数据信息,包括视频、音频信息;所述索引文件生成系统包括:一级索引单元生成系统、二级索引单元生成系统,所述一级索引单元生成系统包括:文件头基本信息、视频GOP一级索引单元、视频Payload一级索引单元、音频一级索引单元,所述二级索引单元生成系统包括:视频GOP二级索引、Payload二级索引、音频二级索引、视频分割数据记录,所述容错处理系统包括:补充关键帧单元基本信息的容错处理系统,以上系统还可以包括播放加载系统,同时,为了满足无线传输的需要,还可以包括无线接收系统。
本发明实施例提供一种支持TS流媒体文件精确定位的容错的播放方法:包括:加载流媒体索引文件;按照精确帧定位结果,加载流媒体文件;分解流媒体文件;加载解码器进行播放;以上还可以包括:按设定条件进行帧定位检索;所述分解流媒体文件,可分解为视频流文件、音频流文件;所述加载索引文件,可分为加载一级索引文件、加载二级索引文件;所述加载解码器,进行播放,其加载解码器解码视频流文件、音频流文件,进行视频、音频播放。
与现有技术相比,首先,本发明解决了MPEG标准格式的媒体文件通过媒体流方式进行传输后,提高了此类文件用于非线性视频处理过程中的可用性,其次,本发明可规范处理MPEG标准格式的媒体文件在编辑、封装过程中存在缺陷的解决方法。
附图说明
为了更清楚的说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见的,下面描述中的附图仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1:本发明实施例一中所述一种支持TS流媒体文件生成二级索文件用于实现容错的生成示意图;
图2:本发明实施例二中所述一种支持TS流媒体文件生成二级索文件中支持插入关键帧序号的容错方法示意图;
图3:本发明实施例三中所述一种支持TS流媒体文件生成二级索文件中支持插入视频解码单元基本信息的容错方法示意图;
图4:本发明实施例四中所述一种支持TS流媒体文件生成二级索文件中进行GOP顺序排列的容错方法示意图;
图5:本发明实施例五中所述一种支持TS流媒体文件精确定位的容错系统的示意图;
图6:本发明实施例六中所述一种支持TS流媒体文件精确定位的播放方法的示意图;
图7:本发明实施例中流媒体的播放加载示意图;
图8:本发明实现容错功能示意图;
图9:本发明实施例七中所述一种支持TS流无线媒体文件精确定位的容错系统的示意图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然所描述的实施例仅是本发明的一部分实施例,不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提出在MPEG标准格式的流媒体传输后,建立二级索引的过程中对影响非线性处理的数据进行容错处理,已保证正确的数据使用,下面通过实施例进行详细说明:
实施例一:
参照图1,是本发明实施例一中所述一种支持TS(Transport Stream)流媒体文件生成二级索文件用于实现容错的生成示意图;
具体步骤如下:
当通过TS流媒体传输得到一段TS流媒体数据后,系统将对该流媒体数据进行解析,主要目的是从中获得该文件的PAT(节目流列表)信息,PMT(节目流信息)数据,并从包头信息中获得PID值;并同时为建立索引文件作准备,在从PMT数据中确定基本数据后,初步建立以包括:文件头、视频GOP索引、视频Payload索引、音频索引项目的一级索引文件项目,并预留相应项目空间;之后对包数据块进行解析,按照之前所解析的PID值对“视频数据块、音频数据块、其他数据块,进行划分归类,其中对视频数据块中的每帧数据进行归类,并存入视频Payload索引中,并从中检查是否为视频GOP(关键帧)数据,并将结果另存到视频GOP索引中;相应的音频数据块中的信息存放置音频索引中,当检测至一个有效视频数据块完成后,生成GOP的基本信息,代表一个有效数据块处理完成,至此一个有效二级索引文件基本信息生成,当二级索引文件数据单元的信息达到预设大小后,将其信息回填到上述一级索引项目中,从上述分析可以看出,二级索引文件的建立是解读TS文件的关键过程,因此主要的容错处理也将在建立二级索引单元项目的同时给予判断和完成;总体容错流程请参照图8所示。
实施例二:
参照图2,是本发明实施例二中所述一种支持TS流媒体文件生成二级索文件中支持插入关键帧序号的容错方法示意图:
具体步骤如下:
解读一标准25帧的TS流中的一帧信息,其中:I帧的时间标签为PTS:34200;DTS:27000;P帧的时间标签为PTS:44000;DTS:41400;B帧的时间标签PTS:41400,可计数出I帧的持续时间为:(41400-34200)/90000*25=2帧,这种情况下因为二级索引建立过程中对帧数据的解读是基于实际传输数据包的,如果实际的包中只记录了1帧的数据,而该包却在实际播放的时候持续2帧的时间(与收到下一个同类数据包的时间标签比较),显然如果精确定位恰好定位到这个缺失帧的位置,就会造成不能正确读取的后果,本发明将通过以下方法对上述情况给予容错处理:
记录同一PID值中的视频数据块中关键帧及所属帧时间标签PTS、DTS信息(如:I帧的时间标签为PTS:34200;DTS:27000;P帧的时间标签为PTS:44000;DTS:41400;B帧的时间标签息PTS:41400);根据关键帧及所属帧的时间标签(PTS、DTS)计算帧长;(如本例中的1帧),显然上述帧长(2帧)大于实际视频数据块记录帧长(1帧),则根据实际视频数据块记录帧长与计算帧长的差值(2帧-1帧=1帧),对实际视频数据块帧长进行差值补偿(I帧+1帧);根据差值累加帧号(实际帧长调整为2帧);此时实际数据的I(关键帧)位置并没有变动,只是帧长实现了增加。
通过以上容错处理之后,二级索引中所记录的视频数据播放时间和实际播放时间将作到相互对应,如图7所示,在视频数据进行播放时,加载二级检索信息后,以上容错处理后可使视频Payload索引指针正确指向所对应数据区。
实施例三:
参照图3,是本发明实施例三中所述一种支持TS流媒体文件生成二级索文件中支持插入视频解码单元基本信息的容错方法示意图;
具体步骤如下:
首先,对同一视频流(以PID为依据)的GOP视频解码单元基本信息进行初始记录;之后,对每组视频GOP的帧信息进行检查,对缺少上述视频GOP基本信息的关键帧,最终,进行视频GOP视频解码单元基本信息进行初始记录回填。
因为基于MPEG标准格式的媒体文件存在多种的文件格式,虽然同时基于MPEG标准的,但在转换为标准帧计数的时候,会存在格式不规范的情况,虽然此格式在其他的MPEG标准格式的播放环境下并不会出现差错,但是在需要精确到帧的情况下就将出现错误,根据实施例一中的介绍可以看出对于TS流媒体文件在建立二级索引的索引文件过程中会特别将视频GOP信息和视频Payload信息按不同字段分别列出,其作用一方面是便于快速检索,另外可以根据图7看出也是在播放时进行快速定位,准确播放的需要,如不对以上错误进行容错处理,将会出现普通帧甚至是关键帧信息丢失的情况,也就是很难通过对关键帧建立索引的机制完成播放、和快速定位的要求。
实施例四:
参照图4,是本发明实施例四中所述一种支持TS流媒体文件生成二级索文件中进行GOP顺序排列的容错方法示意图;
具体步骤如下:
如图4中所示,在数据块中,在第一节目视频GOP中记录的PTS、DTS信息为I帧数据信息为PTS:34200;DTS:27000;B帧数据信息PTS:30600;P帧数据信息为PTS:41400;DTS:34200;而显然在第二节目视频GOP中记录的PTS、DTS信息为I帧数据信息为PTS:800000;DTS:797000;B帧数据信息PTS:796400;P帧数据信息为PTS:807200;DTS:800600;通过以上记录不难看出前后两帧的时间标签基点不同,后面的GOP不是前一个GOP的延续,此种情况一般发生在收录素材时,当收录软件无法正确对不同节目进行截断就会出现此类文件。在以上情况下可以通过实施例一中的二级索引文件的生成,进行容错,具体方法是:
首先,记录同一PID值中的视频数据块中各视频GOP关键帧及所属帧的时间标签(PTS、DTS);
对前后两组视频GOP关键帧及所属帧PTS、DTS单元的帧信息进行比较,如两组时间基点不同,将后一组视频GOP关键帧及所属帧PTS、DTS单元的帧信息根据前一组视频GOP关键帧及所属帧PTS、DTS单元的帧信息的时间基点进行统一。
实施例五:
参照图5,是本发明实施例五中所述一种支持TS流媒体文件精确定位的容错系统的示意图,具体包括:
流媒体加载系统;提取PSI系统;流媒体视频、音频解码系统;容错处理系统;索引文件生成系统;其各个部分的连接关系如图所示。
其中,在流媒体加载系统中,可以根据预设查询条件进行流媒体文件的检索;
在提取PSI(Program Specific Information节目专用信息)系统中,先采集PAT(节目流列表)信息,在从PAT信息中获取其中所包括的PMT信息,并将其中的文件头基本信息写入一级索引文件的文件头中、并预留视频GOP一级索引单元空间、视频Payload一级索引单元空间、音频一级索引单元空间;
在流媒体视频、音频解码系统中,按找PMT文件中所记录的PID值解码、并分类数据,分类成视频数据块、音频数据块及其他数据块;
在容错处理系统中,可通过本发明中记载的方法处理,插入关键帧序号、插入视频解码单元基本信息、对帧时间标签基点进行校正的容错处理;
在索引文件生成系统中,将所述视频数据块、音频数据块所记录的数据记录到二级索引文件中,其中包括:视频GOP二级索引项目、Payload二级索引项目、音频二级索引项目、视频分割数据记录,并通过预设阀值程序,将二级索引文件项目写入一级索引项目中;
读取所有的PMT数据块信息后,将结束文件信息写入文件头基本信息中,形成完整的容错索引文件。
应该指出对于本领域技术人员,基于以上系统处理方法的思想,通过简单替换的方法,及简单顺序调整,应该属于本发明方案的保护范围。
实施例六:
参照图6,是本发明实施例五中所述一种支持TS流媒体文件精确定位的播放方法的示意图,具体包括:
加载流媒体索引文件;按照精确帧定位结果,加载流媒体文件;分解流媒体文件;加载解码器进行播放。
其中,加载流媒体索引文件为二级索引文件,在按照精确帧定位结果,加载流媒体文件步骤中,可按按设定条件进行帧定位检索,即可以是从文件起始部分检索,同时也可以从文件中部进行检索;分解流媒体文件为视频流媒体文件、音频流媒体文件、并分别加载视频解码器、音频解码器,并分别成为视频输出、及音频输出。
参照图7,是本发明实施例中流媒体的播放加载示意图,其中示意播出帧号的加载顺序根据不同单元,分别是从一级索引单元指向二级索引单元,并循环检查文件截取数据信息,以便对原流媒体数据单元进行正确的还原。
实施例七:
参照图9,是本发明实施例七中所述一种支持无线TS流媒体文件精确定位的容错系统的示意图,具体包括:
无线流媒体接收系统;
无线流媒体接收数据存储系统;
流媒体加载系统;提取PSI系统;流媒体视频、音频解码系统;容错处理系统;索引文件生成系统;其各个部分的连接关系如图所示。
其中,在流媒体加载系统中,与本申请实施例五中的描述一致。