一种音视频文件处理方法、装置、终端以及存储介质与流程

文档序号:24642693发布日期:2021-04-13 13:55阅读:65来源:国知局
1.本发明涉及音视频处理
技术领域
:,更具体的说,是涉及一种音视频文件处理方法、装置、终端以及存储介质。
背景技术
::2.由于目前的终端浏览器大多不支持播放hls(httplivestreaming,基于http的流媒体网络传输协议)格式的ts(transportstream,传送流)音视频文件,因此需要将hls格式的ts音视频文件转换成浏览器能够支持的格式的音视频文件,才能够通过终端浏览器进行播放。3.但是目前存在的对ts音视频文件进行处理的处理方式,会造成终端浏览器播放音视频文件存在用户等待首帧画面时间长,以及播放过程易卡顿的问题。技术实现要素:4.有鉴于此,本发明提供了一种音视频文件处理方法、装置、终端以及存储介质,以克服现有技术中终端浏览器播放音视频文件存在用户等待首帧画面时间长,以及播放过程易卡顿的问题。5.为实现上述目的,本发明提供如下技术方案:6.一方面,本申请提供了一种音视频文件处理方法,所述方法包括:7.接收传送流ts音视频流,所述ts音视频流中包含至少一个ts音视频文件;8.在接收一个ts音视频文件的过程中,对正在接收的所述ts音视频文件进行解析;9.在对正在接收的所述ts音视频文件进行解析的过程中,每解析出第一预设个数的基本码流单元,则将解析出的第一预设个数的基本码流单元分为一组,得到至少一组基本码流单元集合,并将得到的基本码流单元集合作为目标数据集合;10.每生成一组目标数据集合,则将生成的所述目标数据集合转换成目标格式的音视频文件并输出。11.又一方面,本申请还提供了一种音视频文件处理装置,所述装置包括:12.ts音视频流接收单元,用于接收ts音视频流,所述ts音视频流中包含至少一个ts音视频文件;13.解析单元,用于在接收一个ts音视频文件的过程中,对正在接收的所述ts音视频文件进行解析;14.分组单元,用于在对正在接收的所述ts音视频文件进行解析的过程中,每解析出第一预设个数的基本码流单元,则将解析出的第一预设个数的基本码流单元分为一组,得到至少一组基本码流单元集合,并将得到的基本码流单元集合作为目标数据集合;15.转换单元,用于每生成一组目标数据集合,则将生成的所述目标数据集合转换成目标格式的音视频文件并输出。16.又一方面,本申请还提供了一种终端,所述终端包括:17.处理器和存储器;18.所述处理器,用于调用并执行所述存储器中存储的程序;19.所述存储器用于存储所述程序,所述程序至少用于:20.接收传送流ts音视频流,所述ts音视频流中包含至少一个ts音视频文件;21.在接收一个ts音视频文件的过程中,对正在接收的所述ts音视频文件进行解析;22.在对正在接收的所述ts音视频文件进行解析的过程中,每解析出第一预设个数的基本码流单元,则将解析出的第一预设个数的基本码流单元分为一组,得到至少一组基本码流单元集合,并将得到的基本码流单元集合作为目标数据集合;23.每生成一组目标数据集合,则将生成的所述目标数据集合转换成目标格式的音视频文件并输出。24.又一方面,本申请还提供了一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上所述的音视频文件处理方法。25.经由上述的技术方案可知,与现有技术相比,本发明提供了一种音视频文件处理方法、装置、终端以及存储介质,通过接收传送流ts音视频流,所述ts音视频流中包含至少一个ts音视频文件;在接收一个ts音视频文件的过程中,对正在接收的所述ts音视频文件进行解析;在对正在接收的所述ts音视频文件进行解析的过程中,每解析出第一预设个数的基本码流单元,则将解析出的第一预设个数的基本码流单元分为一组,得到至少一组基本码流单元集合,并将得到的基本码流单元集合作为目标数据集合;每生成一组目标数据集合,则将生成的所述目标数据集合转换成目标格式的音视频文件并输出。本申请实施例在接收一个ts音视频文件的过程中就对正在接收的所述ts音视频文件进行解析,然后在解析的过程中同步执行基本码流单元的分组过程,得到至少一组目标数据集合,并且在每生成一组目标数据集合,则将生成的所述目标数据集合转换成目标格式的音视频文件并输出,也就是说,本申请实施例并不是在接收到整个ts音视频文件之后才执行ts音视频文件的转换过程,而是在接收到一个ts音视频文件的过程中就执行了该ts音视频文件的转换过程,并且每生成一组目标数据集合,则将生成的所述目标数据集合转换成目标格式的音视频文件并输出播放,减少了用户等待首帧画面的时间;并且,在网络状况不好的情况下,在相同时间段内,用户侧只需要下载一个ts音视频文件的部分内容就可以进行播放,而无需下载一个ts音视频文件的全部内容,解决了播放过程易卡顿的问题。附图说明26.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。27.图1为本发明实施例提供的终端的一种组成结构示意图;28.图2为本发明实施例提供的一种音视频文件处理方法一个实施例的流程示意图;29.图3为本发明实施例提供的一种音视频文件处理方法另一个实施例的流程示意图;30.图4为本发明实施例提供的一种音视频文件处理方法另一个实施例的流程示意图;31.图5为本发明实施例提供的一种音视频文件处理方法另一个实施例的流程示意图;32.图6为本发明实施例提供的ts音视频文件的格式示意图;33.图7为本发明实施例提供的fmp4音视频文件的格式示意图;34.图8为本发明实施例提供的一种音视频文件处理装置的结构图。具体实施方式35.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。36.由于目前的终端浏览器大多不支持播放hls格式的ts音视频文件,因此需要将hls格式的ts音视频文件转换成浏览器能够支持的格式的音视频文件,才能够通过终端浏览器进行播放。但是目前存在的对ts音视频文件进行处理的处理方式,需要将整个ts音视频文件从网络上下载下来之后,在执行对ts音视频文件的转换过程,将整个ts音视频文件转换成浏览器能够支持的格式的音视频文件,进而通过终端浏览器进行播放。37.但是由于1个ts音视频文件大小一般介于1m-10m之间,粒度比较大,将整个ts音视频文件从网络上下载下来再进行处理的方式,无法保证用户首帧播放体验以及播放流畅度,也就是会造成终端浏览器播放音视频文件存在用户等待首帧画面时间长,以及播放过程易卡顿的问题。38.为了解决上述问题,本申请实施例公开了一种音视频文件处理方法、装置、终端以及存储介质,通过接收传送流ts音视频流,所述ts音视频流中包含至少一个ts音视频文件;在接收一个ts音视频文件的过程中,对正在接收的所述ts音视频文件进行解析;在对正在接收的所述ts音视频文件进行解析的过程中,每解析出第一预设个数的基本码流单元,则将解析出的第一预设个数的基本码流单元分为一组,得到至少一组基本码流单元集合,并将得到的基本码流单元集合作为目标数据集合,每生成一组目标数据集合,则将生成的所述目标数据集合转换成目标格式的音视频文件并输出。本申请实施例在接收一个ts音视频文件的过程中就对正在接收的所述ts音视频文件进行解析,然后在解析的过程中同步执行基本码流单元的分组过程,得到至少一组目标数据集合,并且在每生成一组目标数据集合,则将生成的所述目标数据集合转换成目标格式的音视频文件并输出,也就是说,本申请实施例并不是在接收到整个ts音视频文件之后才执行ts音视频文件的转换过程,而是在接收到的一个ts音视频文件的过程中就执行了该ts音视频文件的转换过程,并且每生成一组目标数据集合,则将生成的所述目标数据集合转换成目标格式的音视频文件并输出播放,减少了用户等待首帧画面的时间;并且,在网络状况不好的情况下,在相同时间段内,用户侧只需要下载一个ts音视频文件的部分内容就可以进行播放,而无需下载一个ts音视频文件的全部内容,解决了播放过程易卡顿的问题。39.本申请实施例的音视频文件处理方法可以应用于终端,如图1所示,其示出了本申请的方案所适用的终端的一种组成结构示意图。在图1中,该终端可以包括:处理器101和存储器102。40.该服务器100还可以包括:通信接口103、输入单元104和显示器105和通信总线106。41.处理器101、存储器102、通信接口103、输入单元104、显示器105、均通过通信总线106完成相互间的通信。42.在本申请实施例中,该处理器101,可以为中央处理器(centralprocessingunit,cpu),现成可编程门阵列(fpga)或者其他可编程逻辑器件等。43.该处理器可以调用存储器102中存储的程序,具体的,可以处理器可以执行以下方法实施例中终端侧所执行的操作。44.存储器102中用于存放一个或者一个以上程序,程序可以包括程序代码,所述程序代码包括计算机操作指令,在本申请实施例中,该存储器中至少存储有用于实现以下功能的程序:45.接收传送流ts音视频流,所述ts音视频流中包含至少一个ts音视频文件;46.在接收一个ts音视频文件的过程中,对正在接收的所述ts音视频文件进行解析;47.在对正在接收的所述ts音视频文件进行解析的过程中,每解析出第一预设个数的基本码流单元,则将解析出的第一预设个数的基本码流单元分为一组,得到至少一组基本码流单元集合,并将得到的基本码流单元集合作为目标数据集合;48.每生成一组目标数据集合,则将生成的所述目标数据集合转换成目标格式的音视频文件并输出。49.如图2所示,其示出了本申请一种音视频文件处理方法一个实施例的流程示意图,本实施例主要以该方法应用于终端来举例说明,参照图2,该音视频文件处理方法具体包括如下步骤:50.s100、接收传送流ts音视频流;51.需要说明的是,所述ts音视频流中包含至少一个ts音视频文件,本申请中的技术方案支持ts音视频文件bytes级别的下载。52.s110、在接收一个ts音视频文件的过程中,对正在接收的所述ts音视频文件进行解析;53.本申请在对ts音视频文件按照bytes级别下载过程中,如果目前下载到的一个ts音视频文件的部分数据足够对ts音视频文件执行格式转换处理,则同步执行对该在接收的ts音视频文件进行解析的过程。也就是说,本申请实施例并不是在下载一个完整的ts音视频文件之后才执行的格式转换处理,而是在下载一个ts音视频文件的过程中,对该正在下载的ts音视频文件同步执行解析过程,从而将对ts音视频文件执行的格式转换处理过程提前。也就是在接收一个ts音视频文件的过程中,就执行了对该ts音视频文件的格式转换处理过程。54.s120、在对正在接收的所述ts音视频文件进行解析的过程中,每解析出第一预设个数的基本码流单元,则将解析出的第一预设个数的基本码流单元分为一组,得到至少一组基本码流单元集合,并将得到的基本码流单元集合作为目标数据集合;55.每解析出第一预设个数的基本码流单元,则将解析出的第一预设个数的基本码流单元分为一组,得到至少一组基本码流单元集合,基本码流单元集合为目标格式的音视频文件中的一帧数据,也就是说,基本码流单元集合为目标格式的音视频文件的基本处理单元,本申请实施例将得到的基本码流单元集合作为目标数据集合,每组目标数据集合都可以对应生成一个完整的目标格式的音视频文件。56.本申请实施例中对第一预设个数并不做具体限定,第一预设个数可以由本领域技术人员进行设定。本申请实施例中每次分为一组的基本码流单元对应的第一预设个数的数值可以相同,也可以不同,本申请实施例不做具体限定。57.s130、每生成一组目标数据集合,则将生成的所述目标数据集合转换成目标格式的音视频文件并输出。58.需要说明的是,本申请实施例在每解析出第一预设个数的基本码流单元,则将解析出的第一预设个数的基本码流单元分为一组,得到至少一组基本码流单元集合的过程中,就同步执行了将生成的所述目标数据集合转换成目标格式的音视频文件的过程,即每生成一组目标数据集合,则将生成的所述目标数据集合转换成目标格式的音视频文件并输出。59.需要说明的是,为了提高音视频文件的处理速度,本申请实施例中上述步骤s100-s130同步并行执行,一边接收ts音视频文件,一边对正在接收的ts音视频文件进行处理,并在每生成一组目标数据集合,则将生成的所述目标数据集合转换成目标格式的音视频文件并输出,明显提高了音视频文件的处理速度。本申请实施例在接收ts音视频流的过程中就对正在接收的所述ts音视频文件进行解析,然后在解析的过程中同步执行基本码流单元的分组过程,得到至少一组目标数据集合,并且在每生成一组目标数据集合,则将生成的所述目标数据集合转换成目标格式的音视频文件并输出,也就是说,本申请实施例并不是在接收到整个ts音视频文件之后才执行ts音视频文件的转换过程,而是在接收一个ts音视频文件的过程中执行ts音视频文件的转换过程,并且每生成一组目标数据集合,则将生成的所述目标数据集合转换成目标格式的音视频文件并输出播放,明显提高了音视频文件的处理速度,能够更快速的生成目标格式的音视频文件,从而减少了用户从打开浏览器中的音视频文件到看到音视频文件的首帧画面需要的等待时长;并且,在网络状况不好的情况下,在相同时间段内,本申请能够更快速的合成目标格式的音视频文件,用户侧只需要下载ts音视频文件的内容就可以进行播放,而无需下载ts音视频文件的全部内容,解决了播放过程易卡顿的问题。60.如图3所示,其示出了本申请另外一种音视频文件处理方法一个实施例的流程示意图,本实施例主要以该方法应用于终端来举例说明,参照图3,该音视频文件处理方法具体包括如下步骤:61.s200、接收传送流ts音视频流;62.需要说明的是,所述ts音视频流中包含至少一个ts音视频文件,本申请中的技术方案支持ts音视频文件bytes级别的下载。63.s210、在接收一个ts音视频文件的过程中,对正在接收的所述ts音视频文件进行解析;64.s220、在对正在接收的所述ts音视频文件进行解析的过程中,每解析出第一预设个数的基本码流单元,则将解析出的第一预设个数的基本码流单元分为一组,得到至少一组基本码流单元集合;65.s230、在对正在接收的所述ts音视频文件进行解析的过程中,每生成第二预设个数的基本码流单元集合,则将生成的第二预设个数的基本码流单元集合分为一组,得到至少一组目标数据集合;66.本申请实施例为了减少碎片化现象,还执行了基本码流单元集合的分组过程,每生成第二预设个数的基本码流单元集合,则将生成的第二预设个数的基本码流单元集合分为一组,得到至少一组目标数据集合,每组目标数据集合都可以对应生成一个完整的目标格式的音视频文件。67.本申请实施例中对第二预设个数并不做具体限定,第二预设个数可以由本领域技术人员进行设定。本申请实施例中每次分为一组的基本码流单元集合对应的第二预设个数的数值可以相同,也可以不同,本申请实施例不做具体限定。68.s240、每生成一组目标数据集合,则将生成的所述目标数据集合转换成目标格式的音视频文件并输出。69.需要说明的是,本申请实施例在每解析出第一预设个数的基本码流单元,则将解析出的第一预设个数的基本码流单元分为一组,得到至少一组基本码流单元集合,每生成第二预设个数的基本码流单元集合,将生成的第二预设个数的基本码流单元集合分为一组,得到至少一组目标数据集合的过程中,同步执行了将生成的所述目标数据集合转换成目标格式的音视频文件的过程,即每生成一组目标数据集合,则将生成的所述目标数据集合转换成目标格式的音视频文件并输出。70.需要说明的是,为了提高音视频文件的处理速度,本申请实施例中上述步骤s200-s240可以同步并行执行,一边接收ts音视频文件,一边对正在接收的ts音视频文件进行处理,并在每生成一组目标数据集合,则将生成的所述目标数据集合转换成目标格式的音视频文件并输出,明显提高了音视频文件的处理速度。本申请实施例在接收ts音视频文件的过程中就对正在接收的所述ts音视频文件进行解析,然后在解析的过程中同步执行基本码流单元的分组过程以及基本码流单元集合的分组过程,得到至少一组目标数据集合,并且在每生成一组目标数据集合,则将生成的所述目标数据集合转换成目标格式的音视频文件并输出,也就是说,本申请实施例并不是在接收到整个ts音视频文件之后才执行ts音视频文件的转换过程,而是在接收一个ts音视频文件的过程中同步执行了对该ts音视频文件的转换过程,并且每生成一组目标数据集合,则将生成的所述目标数据集合转换成目标格式的音视频文件并输出播放,明显提高了音视频文件的处理速度,能够更快速的生成目标格式的音视频文件,从而减少了用户从打开浏览器中的音视频文件到看到音视频文件的首帧画面需要的等待时长;并且,在网络状况不好的情况下,在相同时间段内,本申请能够更快速的合成目标格式的音视频文件,用户侧只需要下载ts音视频文件的内容就可以进行播放,而无需下载ts音视频文件的全部内容,解决了播放过程易卡顿的问题。71.如图4所示,其示出了本申请另外一种音视频文件处理方法一个实施例的流程示意图,本实施例主要以该方法应用于终端来举例说明,参照图4,该音视频文件处理方法具体包括如下步骤:72.s300、接收传送流ts音视频流;73.需要说明的是,所述ts音视频流中包含至少一个ts音视频文件,本申请中的技术方案支持ts音视频文件bytes级别的下载。74.s310、在接收一个ts音视频文件的过程中,对正在接收的所述ts音视频文件进行解析;75.s320、在对正在接收的所述ts音视频文件进行解析的过程中,每解析出第一预设个数的基本码流单元,则将解析出的第一预设个数的基本码流单元分为一组,得到至少一组基本码流单元集合;76.s330、在对正在接收的所述ts音视频文件进行解析的过程中,每解析出一个基本码流单元,则检测解析出的基本码流单元中承载的音视频帧是否为关键帧;77.需要说明的是,本申请实施例在执行对正在接收的所述ts音视频文件进行解析的过程,同步执行了关键帧的检测过程,每解析出一个基本码流单元,则检测解析出的基本码流单元中承载的音视频帧是否为关键帧。78.由于对于部分浏览器来说,对ts音视频文件的解析过程需要参考h.264压缩标准,本申请中的关键帧指的是h.264压缩标准规定的i帧,i帧又称帧内编码帧,是一种自带全部信息的独立帧,无需参考其他图像便可独立进行解码,可以简单理解为一张静态画面,ts音视频文件中的第一个帧始终都是i帧,因为它是关键帧。79.ts音视频文件中的基本码流单元中承载的非关键帧可以为h.264压缩标准规定的p帧,p帧又称帧间预测编码帧,需要参考前面的i帧才能进行编码。表示的是当前帧画面与前一帧(前一帧可能是i帧也可能是p帧)的差别。解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。80.s340、每检测到下一帧关键帧,则将检测到的与所述下一帧帧关键帧相邻的上一帧关键帧所在的基本码流单元集合,以及位于所述上一帧关键帧所在的基本码流单元集合与位于所述下一帧关键帧所在的基本码流单元集合之间的基本码流单元集合分为一组,得到至少一组目标数据集合;81.需要说明的是,由于ts音视频文件中的第一个帧始终都是关键帧,关键帧可以单独进行编解码,而关键帧之后的非关键帧需要参考前面的关键帧进行编解码,因此在检测到第一个关键帧的情况下,不执行任何处理,只有在检测到第二帧关键帧的情况下,才会将第一帧关键帧所在的基本码流单元集合,以及位于第一帧关键帧所在的基本码流单元集合与第二帧关键帧所在的基本码流单元集合之间的基本码流单元集合分为一组,划分到同一组中的基本码流单元集合可以进行独立的编解码操作,单独合成为一个完整的目标格式的音视频文件,并且合成的目标格式的音视频文件可以独立播放。82.同理,将第二帧关键帧所在的基本码流单元集合,以及位于第二帧关键帧所在的基本码流单元集合与第三帧关键帧所在的基本码流单元集合之间的基本码流单元集合分为一组,以此类推,将得到的每组基本码流单元集合作为目标数据集合,进而得到至少一组目标数据集合。83.s350、每生成一组目标数据集合,则将生成的所述目标数据集合转换成目标格式的音视频文件并输出。84.需要说明的是,本申请实施例中公开的目标格式的音视频文件的格式可以为任何格式,本申请实施例不做具体限定,可选的,本申请实施例中的目标格式的音视频文件可以为fmp4格式的音视频文件,基于此,本申请实施例中公开的每生成一组目标数据集合,则将生成的所述目标数据集合转换成目标格式的音视频文件并输出的过程可以为每生成一组目标数据集合,则将生成的所述目标数据集合转换成fmp4格式的音视频文件并输出。85.本申请实施例按照基本码流单元中承载的音视频帧是否为关键帧,来对关键帧所在的基本码流单元集合进行分组,得到至少一组目标数据集合,并且每生成一组目标数据集合,则将生成的所述目标数据集合转换成目标格式的音视频文件并输出。86.需要说明的是,为了提高音视频文件的处理速度,本申请实施例中上述步骤s300-s350可以同步并行执行,一边接收ts音视频文件,一边对正在接收的ts音视频文件进行处理,并在每生成一组目标数据集合,则将生成的所述目标数据集合转换成目标格式的音视频文件并输出,明显提高了音视频文件的处理速度。本申请实施例在接收ts音视频文件的过程中就对正在接收的所述ts音视频文件进行解析,然后在解析的过程中同步执行基本码流单元的分组过程以及按照关键帧对基本码流单元集合进行分组的过程,得到至少一组目标数据集合,并且在每生成一组目标数据集合,则将生成的所述目标数据集合转换成目标格式的音视频文件并输出,也就是说,本申请实施例并不是在接收到整个ts音视频文件之后才执行ts音视频文件的转换过程,而是在接收一个ts音视频文件的过程中同步执行了对该ts音视频文件的转换过程,并且每生成一组目标数据集合,则将生成的所述目标数据集合转换成目标格式的音视频文件并输出播放,明显提高了音视频文件的处理速度,能够更快速的生成目标格式的音视频文件,从而减少了用户从打开浏览器中的音视频文件到看到音视频文件的首帧画面需要的等待时长;并且,在网络状况不好的情况下,在相同时间段内,本申请能够更快速的合成目标格式的音视频文件,用户侧只需要下载ts音视频文件的部分内容就可以进行播放,而无需下载ts音视频文件的全部内容,解决了播放过程易卡顿的问题。87.下面本申请以ts音视频文件转换成fmp4格式的音视频文件为例,详细说明本申请实施例中公开的音视频文件处理方法,如图5所示,其示出了本申请另外一种音视频文件处理方法一个实施例的流程示意图,本实施例主要以该方法应用于终端来举例说明,参照图5,该音视频文件处理方法具体包括如下步骤:88.s400、接收传送流ts音视频流;89.需要说明的是,所述ts音视频流中包含至少一个ts音视频文件,本申请中的技术方案支持ts音视频文件bytes级别的下载。90.s410、在接收一个ts音视频文件的过程中,对正在接收的所述ts音视频文件进行解析;91.本申请实施例中公开了如下一种接收一个ts音视频文件的过程中,对正在接收的所述ts音视频文件进行解析的过程:在接收一个ts音视频文件的过程中,对正在接收的所述ts音视频文件进行解析,从所述在接收的ts音视频文件中的pes(packetizedelementarystreams,分组的基本码流)包中,筛选出与目标音视频id对应的至少一个pes包;将所述目标音视频id对应的至少一个pes包按照预设顺序进行拼接,得到所述目标音视频id对应的目标pes包;对所述目标pes包进行解析,得到至少一个基本码流单元。92.具体的ts音视频文件的解析过程如下:93.步骤a:对所述正在接收的ts音视频文件对应的节目关联表pat(programassociationtable)进行解析,得到所述ts音视频文件对应的所有节目id;94.参照图6公开的ts音视频文件的格式,ts音视频文件是基于包的位流格式,每个包为tspacket,每个包是188个字节,ts包是由包头head跟负载(payload)组成的,负载payload中承载的数据至少包括节目关联表pat、节目映射表pmt或分组的基本码流pes数据。95.所述节目关联表中包含ts音视频文件对应的所有节目id,pat表中所有节目id采用programid的形式表示。96.步骤b:从ts音视频文件对应的所有节目id中确定ts音视频文件对应的目标节目id;97.本申请可以按照音视频的播放顺序,依次从ts音视频文件对应的所有节目id中确定目标节目id。98.步骤c:确定与所述目标节目id对应的节目映射表,所述节目映射表中包含所述目标节目id对应的所有音视频id;99.每个节目id唯一对应一个节目映射表,所述节目映射表中包含该节目id对应的节目的所有音视频id。本申请实施例中的节目映射表为pmt(programmaptable)表。音视频id既包含音频id又包含视频id。100.步骤d:从与所述目标节目id对应的节目映射表中确定目标音视频id;101.本申请可以按照音视频的播放顺序,依次从目标节目id对应的节目映射表中确定目标音视频id。102.步骤e:从所述ts音视频文件中包含的pes包中,筛选出与目标音视频id对应的至少一个pes包;103.每个pes包中承载了音视频数据,因此,每个pes包都对应一个目标音视频id,pes包中包含的是与目标音视频id对应的音视频数据,因此,本申请实施例中可以利用目标音视频id在ts音视频文件中筛选出与目标音视频id对应的pes数据,每个pes数据作为一个pes包,从而得到至少一个pes包。104.步骤f:将所述目标音视频id对应的至少一个pes包按照预设顺序进行拼接,得到所述目标音视频id对应的目标pes包;105.本申请实施例可以主要按照pes包的播放顺序将pes包进行拼接,例如:按照pes包的播放时间将pes包进行拼接,拼接之后得到所述目标音视频id对应的目标pes包。106.步骤g:对所述目标pes包进行解析,得到至少一个基本码流单元。107.由于一个pes包中包含至少一个基本码流单元,本申请实施例通过对目标pes包进行解析,能够得到至少一个基本码流单元nalu,每个基本码流单元唯一对应一个基本码流单元标识。108.s420、在对正在接收的所述ts音视频文件进行解析的过程中,每解析出第一预设个数的基本码流单元,则将解析出的第一预设个数的基本码流单元分为一组,得到至少一组基本码流单元集合;109.在对正在接收的所述ts音视频文件进行解析的过程中,每解析出第一预设个数的基本码流单元nalu,则将解析出的该nalu分为一组,每组nalu为sample,sample为fmp4里的1帧数据,一个sample一般包含多个nalu,一个sample为本申请实施例中的一组基本码流单元集合。110.可选的,本申请实施例在对nalu进行分组的过程中,每解析出一个nalu,则对该nalu的类型进行识别,每识别到一个类型为分界符类型的nalu,则将该nalu以及位于该nalu之前未被分组的nalu划分到一组中。本申请实施例还可以采用其他分组方式,本申请实施例不做具体限定。111.s430、在对正在接收的所述ts音视频文件进行解析的过程中,每解析出一个基本码流单元,则检测解析出的基本码流单元中承载的音视频帧是否为关键帧;112.需要说明的是,本申请实施例在执行对已接收到的ts音视频流进行解析的过程,同步执行了关键帧的检测过程,每解析出一个基本码流单元,则检测解析出的基本码流单元中承载的音视频帧是否为关键帧。113.本申请实施例可以通过对nalu的类型进行识别的方式,来判断一个nalu中承载的音视频帧是否为关键帧。114.s440、每检测到下一帧关键帧,则将检测到的与所述下一帧帧关键帧相邻的上一帧关键帧所在的基本码流单元集合,以及位于所述上一帧关键帧所在的基本码流单元集合与位于所述下一帧关键帧所在的基本码流单元集合之间的基本码流单元集合分为一组,得到至少一组目标数据集合;115.s450、每生成一组目标数据集合,则按照fmp4格式的音视频文件的格式,将所述目标数据集合转换成fmp4格式的音视频文件中的至少一个片段;116.参照图7公开的fmp4音视频文件的格式,图7所示的fmp4音视频文件中至少包含以下信息:117.fytp:fmp4音视频文件中用于描述当前文件类型的数据结构;118.moov:fmp4音视频文件中用于描述当前文件属性的数据结构,至少包括:文件分辨率,码率,时长等信息,本申请实施例不做具体限定。119.片段fragment:1个fragment由1个moof和1个mdat组成,1个fragment内的数据足够可以单独解码。120.moof:描述当前fragment的mdat数据属性,包括时长,大小,偏移量等,本申请实施例不做具体限定。121.mdat:包含fragment中的音视频数据。122.基于上述公开的fmp4音视频文件的格式,本申请实施例中可以提取目标数据集合中的音视频数据,然后将目标数据集合中的音视频数据转换成fmp4格式的音视频文件中的至少一个片段fragment。123.s460、确定所述fmp4格式的音视频文件的类型信息以及属性信息;124.本步骤用于确定所述fmp4格式的音视频文件的fytp信息以及moov信息。125.s470、将所述类型信息、属性信息以及至少一个片段组装为fmp4格式的音视频文件并输出。126.将所述类型信息、属性信息以及至少一个片段进行整合,即获取到数据的视频特性合成fmp4的moof和mdat段,并且在moof和mdata前加上fytp和moov头,生成可以播放的fmp4格式的音视频文件,并将fmp4格式的音视频文件通过浏览器的mse接口提交给播放器播放。127.应用本申请上述技术方案,在接收到的一个ts音视频文件的过程中就执行了对该ts音视频文件的转换过程,并且每生成一组目标数据集合,则将生成的所述目标数据集合转换成目标格式的音视频文件并输出播放,明显提高了音视频文件的处理速度,能够更快速的生成目标格式的音视频文件,从而减少了用户从打开浏览器中的音视频文件到看到音视频文件的首帧画面需要的等待时长。128.如果1个ts音视频文件有3个关键帧,假设ts音视频文件的关键帧均匀分布,下载1个完整的ts音视频文件需要5s的时间,也就是说现有方案用户从打开音视频文件到看到首帧画面需要至少5s的时间,而本申请技术方案用户从打开音视频文件到看到首帧画面的时间为5/3s,即本申请技术方案将首帧画面的播出时间点提前了。129.并且,在网络状况不好的情况下,在相同时间段内,本申请能够更快速的合成目标格式的音视频文件,用户侧只需要下载ts音视频文件的部分内容就可以进行播放,而无需下载ts音视频文件的全部内容,解决了播放过程易卡顿的问题,比如说,现有方案1个ts音视频文件需要被完整下载以后才能被转码并提交到mse的接口,而本申请技术方案可以将1个ts音视频文件分成多段提交,提高解码效率,我们可以假设一个场景,用户播放的下1个ts音视频文件有10s的播放数据,并且其中有2个关键帧,假设ts音视频文件的关键帧均匀分布,播放剩余时间是3s,那么现有方案,用户需要在3s以内下载1个完整ts音视频文件才能保证不卡顿,而本申请技术方案只需要下载0.5ts就能保证用户能再播放5s,提高了播放器播放抗网络抖动能力,以及播放流畅度,达到优化用户播放体验的目的。130.对应本申请的一种音视频文件处理方法,本申请还提供了一种音视频文件处理装置。如图8所示,其示出了本申请一种音视频文件处理装置的一种组成结构示意图,该装置可以包括:131.ts音视频流接收单元100,用于接收ts音视频流,所述ts音视频流中包含至少一个ts音视频文件;132.解析单元110,用于在接收一个ts音视频文件的过程中,对正在接收的所述ts音视频文件进行解析;133.分组单元120,用于在对正在接收的所述ts音视频文件进行解析的过程中,每解析出第一预设个数的基本码流单元,则将解析出的第一预设个数的基本码流单元分为一组,得到至少一组基本码流单元集合,并将得到的基本码流单元集合作为目标数据集合;134.转换单元130,用于每生成一组目标数据集合,则将生成的所述目标数据集合转换成目标格式的音视频文件并输出。135.所述分组单元包括:第一分组子单元,所述第一分组子单元具体用于:136.在对正在接收的所述ts音视频文件进行解析的过程中,每解析出第一预设个数的基本码流单元,则将解析出的第一预设个数的基本码流单元分为一组,得到至少一组基本码流单元集合;137.在对正在接收的所述ts音视频文件进行解析的过程中,每生成第二预设个数的基本码流单元集合,则将生成的第二预设个数的基本码流单元集合分为一组,得到至少一组目标数据集合。138.所述分组单元包括:第二分组子单元,所述第二分组子单元具体用于:139.在对正在接收的所述ts音视频文件进行解析的过程中,每解析出第一预设个数的基本码流单元,则将解析出的第一预设个数的基本码流单元分为一组,得到至少一组基本码流单元集合;140.在对正在接收的所述ts音视频文件进行解析的过程中,每解析出一个基本码流单元,则检测解析出的基本码流单元中承载的音视频帧是否为关键帧;141.每检测到下一帧关键帧,则将检测到的与所述下一帧帧关键帧相邻的上一帧关键帧所在的基本码流单元集合,以及位于所述上一帧关键帧所在的基本码流单元集合与位于所述下一帧关键帧所在的基本码流单元集合之间的基本码流单元集合分为一组,得到至少一组目标数据集合。142.所述解析单元包括:143.pes包筛选单元,用于在接收一个ts音视频文件的过程中,对正在接收的所述ts音视频文件进行解析,从所述正在接收的ts音视频文件中的分组的基本码流pes包中,筛选出与目标音视频id对应的至少一个pes包;144.拼接单元,用于将所述目标音视频id对应的至少一个pes包按照预设顺序进行拼接,得到所述目标音视频id对应的目标pes包;145.解析子单元,用于对所述目标pes包进行解析,得到至少一个基本码流单元。146.所述pes包筛选单元包括:147.节目id获取单元,用于对所述正在接收的ts音视频文件对应的节目关联表进行解析,得到ts音视频文件对应的所有节目id,所述节目关联表中包含所述ts音视频文件对应的所有节目id;148.目标节目id确定单元,用于从ts音视频文件对应的所有节目id中确定所述ts音视频文件对应的目标节目id;149.节目映射表确定单元,用于确定与所述目标节目id对应的节目映射表,所述节目映射表中包含所述目标节目id对应的所有音视频id;150.目标音视频id确定单元,用于从与所述目标节目id对应的节目映射表中确定目标音视频id;151.pes包筛选子单元,用于从所述ts音视频文件中包含的分组的基本码流pes包中,筛选出与目标音视频id对应的至少一个pes包。152.所述转换单元包括:153.转换子单元,用于每生成一组目标数据集合,则将生成的所述目标数据集合转换成fmp4格式的音视频文件并输出。154.所述转换子单元具体用于:155.每生成一组目标数据集合,则按照fmp4格式的音视频文件的格式,将所述目标数据集合转换成fmp4格式的音视频文件中的至少一个片段;156.确定所述fmp4格式的音视频文件的类型信息以及属性信息;157.将所述类型信息、属性信息以及至少一个片段组装为fmp4格式的音视频文件并输出。158.另一方面,本申请还提供了一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上所述的音视频文件处理方法。159.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法说明即可。160.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。161.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或
技术领域
:内所公知的任意其它形式的存储介质中。162.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1