多节目传输流的解复用方法及装置与流程

文档序号:16590432发布日期:2019-01-14 19:03阅读:463来源:国知局
本发明涉及流媒体传输
技术领域
:,具体涉及一种多节目传输流的解复用方法及相应装置。
背景技术
::目前的数字电视信号采用ts(transportstream,传输流)流进行传输,其中ts流是由多路节目数据合成的数据流,接收机需要对ts流进行解复用,过滤出当前选定的节目内容,经由播放器处理后实现电视节目的播放。现有的解复用方法,通过重新生成多个节目的节目关联表、节目映射表,音视频包等节目信息的方式实现解复用。由于重新生成节目映射表,且将音视频包解包后再重新打包,导致解复用效率低下和cpu资源的浪费。技术实现要素:基于此,本发明提供了一种多节目传输流的解复用方法及装置,能够实现多节目流的解复用,提高解复用效率的同时节省了cpu资源。本发明实施例提供一种多节目传输流的解复用方法,包括:从接收到的ts数据包中解析出第一节目关联表;分析所述第一节目关联表以获取节目总个数及用于记录各节目的节目映射表对应的标识信息;根据所述标识信息查找各节目的节目映射表的ts包,以获取各节目的节目映射表;根据所述各节目的节目映射表确定各套节目的音频包和视频包;对所述第一节目关联表进行拆分,生成若干个第二节目关联表,其中,每一个所述第二节目关联表对应一套节目;将所述各节目的第二节目关联表、节目映射表、音频包及视频包重新打包成多个ts数据包,其中每个ts数据包对应一套节目。优选地,对所述第一节目关联表进行拆分,生成若干个第二节目关联表的步骤具体包括:解析获取的第一节目关联表,以获取各节目的节目号、各节目的节目映射表对应的标识信息;保存所述各节目的节目号及节目映射表对应的标识信息,以生成若干个第二节目关联表。优选地,所述方法还包括,重新计算循环冗余校验值。优选地,所述根据所述各节目的节目映射表确定各套节目的音频包和视频包的步骤包括:解析所述节目映射表,获取各节目的用于表征音频包的标识信息和用于表征视频包的标识信息;根据所述各节目的用于表征音频包的标识信息和用于表征视频包的标识信息查找相应的ts包并保存,以确定各节目对应的音频包和视频包。优选地,所述方法还包括:采用32位循环冗余校验算法计算所述循环冗余校验值。本发明实施例还提供了一种多节目传输流的解复用装置,包括:节目关联表解析模块,用于从接收到的ts数据包中解析出第一节目关联表;节目关联表分析模块,用于分析所述第一节目关联表以获取节目总个数及用于记录各节目的节目映射表对应的标识信息;节目映射表获取模块,用于根据所述标识信息查找各节目的节目映射表的ts包,以获取各节目的节目映射表;音视频包确定模块,用于根据所述各节目的节目映射表确定各套节目的音频包和视频包;节目关联表拆分模块,用于对所述第一节目关联表进行拆分,生成若干个第二节目关联表,其中,每一个所述第二节目关联表对应一套节目;数据打包模块,用于将所述各节目的第二节目关联表、节目映射表、音频包及视频包重新打包成多个ts数据包,其中每个ts数据包对应一套节目。优选地,所述节目关联表拆分模块包括:节目信息获取单元,用于解析获取的第一节目关联表,以获取各节目的节目号、各节目的节目映射表对应的标识信息;节目关联表生成单元,用于保存所述各节目的节目号及节目映射表对应的标识信息,以生成若干个第二节目关联表。优选地,所述多节目传输流的解复用装置还包括:校验值计算模块,用于重新计算循环冗余校验值。本发明实施例还提供了一种多节目传输流的解复用装置,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述的多节目传输流的解复用方法。本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述的多节目传输流的解复用方法。相对于现有技术,本发明的有益效果在于:本发明仅通过拆分节目关联表,将各个节目对应的节目关联表、节目映射表、音视频包等数据分别对应保存成新的ts包,无需重新生成各节目的节目映射表、音视频包等数据,实现多节目流的解复用,提高解复用效率的同时节省了cpu资源。附图说明图1是本发明实施例提供的一种多节目传输流的解复用方法的流程图;图2是本发明实施例提供的一种多节目传输流的解复用方法装置的示意框图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。音视频原始数据可以称作es流,从编码器输出后就是原始的es流;对es流打包后称作pes流,是对es分割成段,并加上相应头文件打包成形的打包基本码流;pes流再度打包成为ts流。ts--transportstreams(传输流)由定长的ts包组成(188字节),而ts包是对pes流的一种重新封装包,其组成为:tsheader(4个字节)+tsbody(184字节);ts流里面可以有很多套节目,每套节目又可以有音频、视频或字幕信息。其中,tsheader包含一个分组标识符pid,用来区分不同类别的es流。而ts流所包含的pat节目关联表给出了当前ts流里的每套节目的pmt节目映射表的pid,pmt节目映射表里给出了特定某套节目的音视频pes流的pid。一般不同类别的数据的pid不同,相同类别的数据的pid相同,比如一个频道节目的音频和视频各使用一个pid传输。在使用的时候依据pid把不同类别的数据过滤出来使用,这种从复用多种数据流的ts中过滤出指定条件的数据,称为解复用。请参阅图1,其是本发明实施例提供的一种多节目传输流的解复用方法的流程图,其中,pat(programassociationtable),节目关联表,携带的信息具体如下:ts流id,用于唯一标志数据流的id;节目频道号,标志ts流中的一个频道,该频道可以包含很多节目,即可以包含多个videopid和audiopid;pmt的pid,标识本频道使用的哪个pid作为pmt的pid,因为可以有很多个频道,所以可以由用户自定义。pmt(programmaptable)节目映射表,包含的数据如下:1、当前频道中包含的所有视频数据的pid2、当前频道中包含的所有音频数据的pid3、和当前频道关联在一起的其他数据的pid,如数字广播、数据通讯等使用的pid解析pmt可以获取频道中所有的pid信息,由此可以获取当前频道包含的节目视频和音频个数,以及各视频和音频数据对应的pid信息。如果选择其中的一个节目,只需要将相应的视频和音频的pid信息保存,在处理ts包的时候过滤即可。具体地:所述多节目传输流的解复用方法,包括:s100:从接收到的ts数据包中解析出第一节目关联表;ts数据里面包含了很多套节目,每套节目包含音频pes、视频pes或字幕信息。而pat表中记录了每套节目的pmt表的pid,因此,可以通过找到的ts数据包的pat表,并根据pat表给出的pmt表的pid,找到每套节目的pmt表;其中,pmt表记录特定节目的音视频pid;通过音视频pid可以找到特定节目的音视频ts数据包,实现ts流解复用。s200:分析所述第一节目关联表以获取节目总个数及用于记录各节目的节目映射表对应的标识信息;s300:根据所述标识信息查找各节目的节目映射表的ts包,以获取各节目的节目映射表;s400:根据所述各节目的节目映射表确定各套节目的音频包和视频包;例如第一节目关联表中记录了:节目1的pmt表的pid=521;节目2的pmt表的pid=522;节目3的pmt表的pid=523;若用户需要观看节目2,则根据节目2的pmt表的pid=522,找到节目2的pmt表,从而得到节目2的pmt表记录的音频pid和视频pid,找到节目2对应的音视频ts数据包。s500:对所述第一节目关联表进行拆分,生成若干个第二节目关联表,其中,每一个所述第二节目关联表对应一套节目;每个所述第二节目关联表只是所述ts数据包携带来的所述第一节目关联表的拆分,例如该第一节目关联表表描述了10套节目,那么针对每一套节目都重新生成一个pat表,作为所述第二节目关联表,以作为解复用后的节目关联表。s600:将所述各节目的第二节目关联表、节目映射表、音频包及视频包重新打包成多个ts数据包,其中每个ts数据包对应一套节目。由于在分析出ts数据的第一节目关联表后,重新生成与节目数量相同的几种第二节目关联表,根据特定节目的pmt表的pid,依据特定节目对应的拆分pat表,只需对找到的所述特定节目对应的音视频ts数据包并进行解包重打包,最后将该第二节目关联表写入新生成的ts数据包中,完成ts数据包的过滤。本发明仅通过拆分节目关联表,将各个节目对应的节目关联表、节目映射表、音视频包等数据分别对应保存成新的ts包,无需重新生成各节目的节目映射表、音视频包等数据,实现多节目流的解复用,提高解复用效率的同时节省了cpu资源。在一种可选的实施例中,s500:对所述第一节目关联表进行拆分,生成若干个第二节目关联表的步骤具体包括:解析获取的第一节目关联表,以获取各节目的节目号、各节目的节目映射表对应的标识信息;保存所述各节目的节目号及节目映射表对应的标识信息,以生成若干个第二节目关联表。在一种可选的实施例中,所述方法还包括,重新计算循环冗余校验值。循环冗余校验(crc),根据ts数据包产生简短固定位数校验码的一种散列函数,用来检测或校验ts数据包传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测。例如,可以采用md5算法、模二算法、多项式算法等计算循环冗余校验值。在一种可选的实施例中,所述根据所述各节目的节目映射表确定各套节目的音频包和视频包的步骤包括:解析所述节目映射表,获取各节目的用于表征音频包的标识信息和用于表征视频包的标识信息;根据所述各节目的用于表征音频包的标识信息和用于表征视频包的标识信息查找相应的ts包并保存,以确定各节目对应的音频包和视频包。在一种可选的实施例中,所述方法还包括:采用32位循环冗余校验算法计算所述循环冗余校验值。请参阅图2,其是本发明实施例提供的一种多节目传输流的解复用装置的示意框图,所述多节目传输流的解复用装置适用于电视机、机顶盒等设备。所述多节目传输流的解复用装置,包括:节目关联表解析模块1,用于从接收到的ts数据包中解析出第一节目关联表;ts数据里面包含了很多套节目,每套节目包含音频pes、视频pes或字幕信息。而pat表中记录了每套节目的pmt表的pid,因此,可以通过找到的ts数据包的pat表,并根据pat表给出的pmt表的pid,找到每套节目的pmt表;其中,pmt表记录特定节目的音视频pid;通过音视频pid可以找到特定节目的音视频ts数据包,实现ts流解复用。节目关联表分析模块2,用于分析所述第一节目关联表以获取节目总个数及用于记录各节目的节目映射表对应的标识信息;节目映射表获取模块3,用于根据所述标识信息查找各节目的节目映射表的ts包,以获取各节目的节目映射表;音视频包确定模块4,用于根据所述各节目的节目映射表确定各套节目的音频包和视频包;例如第一节目关联表中记录了:节目1的pmt表的pid=521;节目2的pmt表的pid=522;节目3的pmt表的pid=523;若用户需要观看节目2,则根据节目2的pmt表的pid=522,找到节目2的pmt表,从而得到节目2的pmt表记录的音频pid和视频pid,找到节目2对应的音视频ts数据包。节目关联表拆分模块5,用于对所述第一节目关联表进行拆分,生成若干个第二节目关联表,其中,每一个所述第二节目关联表对应一套节目;每个所述第二节目关联表只是所述ts数据包携带来的所述第一节目关联表的拆分,例如该第一节目关联表表描述了10套节目,那么针对每一套节目都重新生成一个pat表,作为所述第二节目关联表,以作为解复用后的节目关联表。数据打包模块6,用于将所述各节目的第二节目关联表、节目映射表、音频包及视频包重新打包成多个ts数据包,其中每个ts数据包对应一套节目。由于在分析出ts数据的第一节目关联表后,重新生成与节目数量相同的几种第二节目关联表,根据特定节目的pmt表的pid,依据特定节目对应的拆分pat表,只需对找到的所述特定节目对应的音视频ts数据包并进行解包重打包,最后将该第二节目关联表写入新生成的ts数据包中,完成ts数据包的过滤。本发明仅通过拆分节目关联表,将各个节目对应的节目关联表、节目映射表、音视频包等数据分别对应保存成新的ts包,无需重新生成各节目的节目映射表、音视频包等数据,实现多节目流的解复用,提高解复用效率的同时节省了cpu资源。在一种可选的实施例中,所述节目关联表拆分模块5包括:节目信息获取单元,用于解析获取的第一节目关联表,以获取各节目的节目号、各节目的节目映射表对应的标识信息;节目关联表生成单元,用于保存所述各节目的节目号及节目映射表对应的标识信息,以生成若干个第二节目关联表。优选地,所述多节目传输流的解复用装置还包括:校验值计算模块,用于重新计算循环冗余校验值。循环冗余校验(crc),根据ts数据包产生简短固定位数校验码的一种散列函数,用来检测或校验ts数据包传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测。例如,可以采用md5算法、模二算法、多项式算法等计算循环冗余校验值。在一种可选的实施例中,所述音视频包确定模块4包括:音视频标识信息获取单元,用于解析所述节目映射表,获取各节目的用于表征音频包的标识信息和用于表征视频包的标识信息;ts包查找单元,用于根据所述各节目的用于表征音频包的标识信息和用于表征视频包的标识信息查找相应的ts包并保存,以确定各节目对应的音频包和视频包。在一种可选的实施例中,校验值计算模块,用于采用32位循环冗余校验算法计算所述循环冗余校验值。本发明实施例还提供了一种多节目传输流的解复用装置,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述的多节目传输流的解复用方法。示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述多节目传输流的解复用装置中的执行过程。所述多节目传输流的解复用装置可以是手机、桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述多节目传输流的解复用装置可包括,但不仅限于,处理器、存储器。例如所述多节目传输流的解复用装置还可以包括输入输出设备、网络接入设备、总线等。所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述多节目传输流的解复用装置的控制中心,利用各种接口和线路连接整个多节目传输流的解复用装置的各个部分。所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述多节目传输流的解复用装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。其中,所述多节目传输流的解复用装置集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述的多节目传输流的解复用方法。相对于现有技术,本发明的有益效果在于:本发明仅通过拆分节目关联表,将各个节目对应的节目关联表、节目映射表、音视频包等数据分别对应保存成新的ts包,无需重新生成各节目的节目映射表、音视频包等数据,实现多节目流的解复用,提高解复用效率的同时节省了cpu资源。需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上是本发明的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1