音频数据封装方法及装置的制造方法

文档序号:10555964阅读:257来源:国知局
音频数据封装方法及装置的制造方法
【专利摘要】本发明实施例提供一种音频数据封装方法及装置,所述方法包括:针对音频流中的每一帧音频数据,查看是否存在未封装数据;在所述音频数据中存在未封装数据时,将所述未封装数据封装为一个TS包;查看所述TS包中是否存在剩余字节;在所述TS包中存在剩余字节时,继续将下一帧音频数据封装到所述剩余字节中。本发明实施例充分利用了资源,避免了资源浪费。
【专利说明】
音频数据封装方法及装置
技术领域
[0001]本发明实施例涉及数据处理技术领域,尤其涉及一种音频数据封装方法及装置。
【背景技术】
[0002]TS(Transport Stream,传输流)是一种音视频流数据封装格式,TS文件是将数据进行封装之后获得的传输文件。
[0003]TS文件的基本组成单位是定长为188字节的TS包,一个TS包中的数据可以是视频数据、音频数据等。
[0004]在仅对音频数据进行封装时,TS包中的数据即为音频数据,现有技术中,一个TS包用于封装一帧音频数据,但是,由于TS包为定长的数据包,假设一帧音频数据长度为200,则需要两个TS包,一个TS包封装188字节的数据,另一个TS包封装12字节的数据,两个TS包中就会浪费176字节的空间,因此现有技术的这种音频数据封装方式会导致资源浪费。

【发明内容】

[0005]本发明实施例提供一种音频数据封装方法及装置,用以解决现有技术中音频数据封装导致资源浪费的技术问题。
[0006]本发明实施例提供一种音频数据封装方法,包括:
[0007]针对音频流中的每一帧音频数据,查看是否存在未封装数据;
[0008]在所述音频数据中存在未封装数据时,将所述未封装数据封装为一个TS包;
[0009]查看所述TS包中是否存在剩余字节;
[0010]在所述TS包中存在剩余字节时,继续将下一帧音频数据封装到所述剩余字节中。
[0011]本发明实施例提供一种音频数据封装装置,包括:
[0012]第一判断模块,用于针对音频流中的每一帧音频数据,查看是否存在未封装数据;
[0013]第一封装模块,用于在所述音频数据中存在未封装数据时,将所述未封装数据封装为一个TS包;
[0014]第二判断模块,用于查看所述第一封装模块封装获得的TS包中是否存在剩余字
-K-
T ;
[0015]第二封装模块,用于在所述TS包中存在剩余字节时,继续将下一帧音频数据封装到所述剩余字节中。
[0016]本发明实施例提供的音频数据封装方法及装置,如果一个TS包封装完成一帧音频数据之后,如果还存在剩余字节,则可以继续封装下一帧音频数据,每一帧音频数据进行TS包封装之后,如果还存在未封装数据,则封装在下一个TS包中,从而每一个TS包的每一个字节均封装了音频数据,使得TS包不会大量剩余字节,从而即可以避免资源浪费。
【附图说明】
[0017]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0018]图1为本发明音频数据封装方法一个实施例的流程图;
[0019]图2为本发明音频数据封装方法又一个实施例的流程图;
[0020]图3为本发明音频数据封装装置一个实施例的结构示意图;
[0021]图4为本发明音频数据封装装置又一个实施例的结构示意图。
【具体实施方式】
[0022]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0023]本发明实施例中,如果一个TS包封装完成一帧音频数据之后,如果还存在剩余字节,则可以继续封装下一帧音频数据,每一帧音频数据进行TS包封装之后,如果还存在未封装数据,则封装在下一个TS包中,从而每一个TS包的每一个字节均封装了音频数据,使得TS包不会大量剩余字节,从而即可以避免资源浪费。
[0024]下面结合附图对本发明技术方案进行详细描述。
[0025]图1为本发明实施例提供的一种音频数据封装方法一个实施例的流程图,该方法可以包括以下几个步骤:
[0026]101:针对音频流中的每一帧音频数据,查看是否存在未封装数据。
[0027]对于任一个音频媒体数据,需要按照TS格式进行封装并传输时,需要首先进行切害J,该音频流可以是将一个音频媒体数据进行切割获得任一端音频流。每一个音频流经过封装打包获得一个TS文件。
[0028]因此,将音频流的每一帧音频数据,从第一帧音频数据开始,需要依次进行封装,获得TS包,再由获得多个TS包打包成TS文件。
[0029]由于TS包为固定长度188字节。如果一帧音频数据的数据长度大于TS包固定长度,则一个TS包只能封装一帧音频数据部分数据,则该帧音频数据即会存在未封装数据。
[0030]102:在所述音频数据中存在未封装数据时,将所述未封装数据封装为一个TS包。
[0031]103:查看所述TS包中是否存在剩余字节。
[0032]104:在所述TS包中存在剩余字节时,继续将下一帧音频数据封装到所述剩余字节中。
[0033]也即将所述TS包中已封装数据对应的下一帧音频数据中,所述剩余字节对应数据长度的数据封装在所述TS包中。
[0034]如果一帧音频数据中存在未封装数据,则将该未封装数据封装在一个TS包,此时如果该未封装数据的数据长度小于TS包固定长度,则TS包会存在剩余字节,此时即将TS包中已封装数据对应的下一帧音频数据中,所述剩余字节对应数据长度的数据封装在所述TS包中,该TS包中即封装了两种音频数据,TS包剩余字节对应的一帧音频数据,如果仍存在未封装数据,则可以返回步骤101继续执行。从而即可以使得每一个TS包的每一个字节都得到了充分利用,避免了资源浪费。
[0035]在本发明实施例中,如果一个TS包封装完成一帧音频数据之后,如果还存在剩余字节,则可以继续封装下一帧音频数据,每一帧音频数据进行TS包封装之后,如果还存在未封装数据,则封装在下一个TS包中,从而每一个TS包的每一个字节均封装了音频数据,使得TS包不会大量剩余字节,从而即可以避免资源浪费。
[0036]如果所述音频流中的每一帧音频数据均进行封装之后,则可以将封装获得的多个TS包打包为TS文件。
[0037]由于每一帧音频数据中携带区分标识,该区分标识可以为该帧音频数据的数据长度,从而在解析TS文件时,根据每一帧音频数据的区分标识,既可以从各个TS包中获得每一帧音频数据。
[0038]图2为本发明实施例提供的一种音频数据封装方法又一个实施例的流程图,该方法可以包括以下几个步骤:
[0039]201:针对音频流中的每一帧音频数据,查看是否存在未封装数据,如果是,执行步骤202,如果否,执行步骤205。
[0040]202:将所述未封装数据封装为一个TS包。
[0041 ] 203:查看所述TS包中是否存在剩余字节,如果是,执行步骤204,如果否,返回步骤201继续执行。
[0042]204:继续将下一帧音频数据封装到所述剩余字节中。
[0043]也即将所述TS包中已封装数据对应的下一帧音频数据中,所述剩余字节对应数据长度的数据封装在所述TS包的所述剩余字节中。
[0044]205:获取所述音频数据的下一帧音频数据。
[0045]206:判断所述音频数据封装获得的TS包是否存在剩余字节,如果是,执行步骤207,如果否执行步骤208。
[0046]207:将所述音频数据的下一帧音频数据封装到所述剩余字节中。
[0047]也即将所述下一帧音频数据中,所述剩余字节对应数据长度的数据封装在所述音频数据封装获得的TS包的所述剩余字节中。
[0048]208:将所述下一帧音频数据封装为一个TS包。
[0049]本实施例中,如果一帧音频数据存在未封装数据,则将未封装数据封装在一个TS包中,如果TS包不存在剩余字节且该帧音频数据还存在未封装数据时,则可以继续将未封装数据的封装在一个TS包;如果一帧音频数据不存在未封装数据,如果该帧音频数据封装获得TS包存在剩余字节,则将下一帧音频数据中,所述剩余字节对应数据长度的数据封装在所述音频数据封装获得TS包中;如果该帧音频数据封装获得TS包不存在剩余字节,则将下一帧音频数据封装为一个新的TS包,并可以继续判断其是否存在未封装数据。从而实现了每一个TS包每一个字节的得到了充分利用,避免了资源的浪费。
[0050]其中,如果一帧音频数据的未封装数据全部封装完毕,且其封装获得TS包括不存在剩余字节时,则可以获取所述TS包中已封装的音频数据的下一帧音频数据;
[0051]在所述下一帧音频数据的数据长度小于等于TS包固定长度时,将所述下一帧音频数据封装在另一个TS包中;
[0052]在所述下一帧音频数据的数据长度大于所述TS包固定长度时,将所述下一帧音频数据中对应所述TS包固定长度的数据封装在另一个TS包中。
[0053]作为又一个实施例,所述在所述TS包中存在剩余字节时,继续将下一帧音频数据封装到所述剩余字节中可以是:
[0054]在所述TS包中存在剩余字节且所述剩余字节大于预设值时,继续将下一帧音频数据封装到所述剩余字节中。
[0055]而如果所述TS包中所述剩余字节小于预设值时,则可以将下一帧音频数据封装在另一个TS包中。
[0056]通过本发明实施例,使得TS包得到了充分利用,避免了字节浪费,从而可以大大节省资源。
[0057]图3为本发明实施例提供的一种音频数据封装装置一个实施例的结构示意图,该装置可以应用在需要采用TS格式进行音频数据传输的任一个设备中,该装置可以包括:
[0058]第一判断模块301,用于针对音频流中的每一帧音频数据,查看是否存在未封装数据;
[0059]第一封装模块302,用于在所述音频数据中存在未封装数据时,将所述未封装数据封装在一个TS包中;
[0060]第二判断模块303,用于查看所述第一封装模块封装获得的TS包中是否存在剩余字Tl ;
[0061 ]如果第二判断模块303判断TS包不存在剩余字节时,还可以触发第一判断模块301继续进行判断。
[0062]第二封装模块304,用于在所述TS包中存在剩余字节时,继续将下一帧音频数据封装到所述剩余字节中。
[0063]如果一帧音频数据中存在未封装数据,则将该未封装数据封装在一个TS包,此时如果该未封装数据的数据长度小于TS包固定长度,则TS包会存在剩余字节,此时即将TS包中已封装数据对应的下一帧音频数据中,所述剩余字节对应数据长度的数据封装在所述TS包中,该TS包中即封装了两种音频数据,TS包剩余字节对应的一帧音频数据,如果仍存在未封装数据,则可以返回步骤101继续执行。从而即可以使得每一个TS包的每一个字节都得到了充分利用,避免了资源浪费。
[0064]在本发明实施例中,如果一个TS包封装完成一帧音频数据之后,如果还存在剩余字节,则可以继续封装下一帧音频数据,每一帧音频数据进行TS包封装之后,如果还存在未封装数据,则封装在下一个TS包中,从而每一个TS包的每一个字节均封装了音频数据,使得TS包不会大量剩余字节,从而即可以避免资源浪费。
[0065]此外,还装置还可以包括:
[0066]打包模块,用于在所述音频流中的每一帧音频数据均进行封装之后,将封装获得的多个TS包打包为TS文件。
[0067]而由于每一帧音频数据中携带区分标识,该区分标识可以为该帧音频数据的数据长度,从而在解析TS文件时,根据每一帧音频数据的区分标识,既可以从各个TS包中获得每一帧音频数据。
[0068]如图4所示,与图3所示实施例不同之处在于,该装置还可以包括:
[0069]第三判断模块305,用于针对每一帧音频数据,不存在未封装的数据时,判断所述音频数据封装获得的TS包是否存在剩余字节。
[0070]第三封装模块306,用于在所述音频数据封装获得的TS包存在剩余字节时,将所述音频数据的下一帧音频数据封装到所述剩余字节中。
[0071]第四封装模块307,用于所述音频数据封装获得的TS包不存在剩余字节时,将所述音频数据的下一帧音频数据封装为一个TS包。
[0072]本实施例中,如果一帧音频数据存在未封装数据,则将未封装数据封装在一个TS包中,如果TS包不存在剩余字节且该帧音频数据还存在未封装数据时,则可以继续将未封装数据的封装在一个TS包;如果一帧音频数据不存在未封装数据,如果该帧音频数据封装获得TS包存在剩余字节,则将下一帧音频数据中,所述剩余字节对应数据长度的数据封装在所述音频数据封装获得TS包中;如果该帧音频数据封装获得TS包不存在剩余字节,则将下一帧音频数据封装为一个新的TS包,并可以继续判断其是否存在未封装数据。从而实现了每一个TS包每一个字节的得到了充分利用,避免了资源的浪费。
[0073]其中,如果一帧音频数据的未封装数据全部封装完毕,且其封装获得TS包括不存在剩余字节时,则可以获取所述TS包中已封装的音频数据的下一帧音频数据;
[0074]在所述下一帧音频数据的数据长度小于等于TS包固定长度时,将所述下一帧音频数据封装在另一个TS包中;
[0075]在所述下一帧音频数据的数据长度大于所述TS包固定长度时,将所述下一帧音频数据中对应所述TS包固定长度的数据封装在另一个TS包中。
[0076]作为又一个实施例,所述第二封装模块可以具体用于:
[0077]在所述TS包中存在剩余字节且所述剩余字节大于预设值时,继续将下一帧音频数据封装到所述剩余字节中。
[0078]而如果所述TS包中所述剩余字节小于预设值时,则可以将下一帧音频数据封装在另一个TS包中。
[0079]通过本发明实施例,使得TS包得到了充分利用,避免了字节浪费,从而可以大大节省资源。
[0080]以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0081]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0082]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【主权项】
1.一种音频数据封装方法,其特征在于,包括: 针对音频流中的每一帧音频数据,查看是否存在未封装数据; 在所述音频数据中存在未封装数据时,将所述未封装数据封装为一个TS包; 查看所述TS包中是否存在剩余字节; 在所述TS包中存在剩余字节时,继续将下一帧音频数据封装到所述剩余字节中。2.根据权利要求1所述的方法,其特征在于,针对每一帧音频数据,不存在未封装的数据时,所述方法还包括: 获取所述音频数据的下一帧音频数据; 判断所述音频数据封装获得的TS包是否存在剩余字节; 如果是,将所述音频数据的下一帧音频数据封装到所述剩余字节中; 如果否,将所述下一帧音频数据封装为一个TS包。3.根据权利要求1所述的方法,其特征在于,在所述TS包中不存在剩余字节时,返回所述针对音频流中的每一帧音频数据,查看是否存在未封装数据的步骤继续执行。4.根据权利要求1所述的方法,其特征在于,所述在所述TS包中存在剩余字节时,继续将下一帧音频数据封装到所述剩余字节中包括: 在所述TS包中存在剩余字节且所述剩余字节大于预设值时,继续将下一帧音频数据封装到所述剩余字节中。5.根据权利要求1所述的方法,其特征在于,在所述音频流中的每一帧音频数据均进行封装之后,所述方法还包括: 将封装获得的多个TS包打包为TS文件。6.一种音频数据封装装置,其特征在于,包括: 第一判断模块,用于针对音频流中的每一帧音频数据,查看是否存在未封装数据;第一封装模块,用于在所述音频数据中存在未封装数据时,将所述未封装数据封装为一个TS包; 第二判断模块,用于查看所述第一封装模块封装获得的TS包中是否存在剩余字节;第二封装模块,用于在所述TS包中存在剩余字节时,继续将下一帧音频数据封装到所述剩余字节中。7.根据权利要求6所述的装置,其特征在于,还包括: 第三判断模块,用于针对每一帧音频数据,不存在未封装的数据时,判断所述音频数据封装获得的TS包是否存在剩余字节; 第三封装模块,用于在所述音频数据封装获得的TS包存在剩余字节时,将所述音频数据的下一帧音频数据封装到所述剩余字节中; 第四封装模块,用于所述音频数据封装获得的TS包不存在剩余字节时,将所述音频数据的下一帧音频数据封装为一个TS包。8.根据权利要求6所述的装置,其特征在于,所述第二判断模块在所述第一封装模块封装获得的TS包中不存在剩余字节时,触发所述第一判断模块执行。9.根据权利要求6所述的装置,其特征在于,所述第二封装模块具体用于: 在所述TS包中存在剩余字节且所述剩余字节大于预设值时,继续将下一帧音频数据封装到所述剩余字节中。10.根据权利要求6所述的装置,其特征在于,还包括: 打包模块,用于在所述音频流中的每一帧音频数据均进行封装之后,将封装获得的多个TS包打包为TS文件。
【文档编号】H04N21/434GK105915941SQ201510999884
【公开日】2016年8月31日
【申请日】2015年12月25日
【发明人】徐潇
【申请人】乐视云计算有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1