本申请涉及音视频编码,尤其涉及一种多路音视频码流的封装、解封装方法及装置。
背景技术:
1、在音视频领域中,采集的音视频数据经过编码后封装至文件中进行存储,以便后续传输或共享。随着智能视频监控的普及,对于多码流的音视频封装场景越来越多,多码流的音视频的封装方法是将录制的音视频数据分别封装至不同的文件中。例如,在智能视频监控领域中,行车记录仪可能包括前摄、后拉相机、驾驶舱监视相机等多个相机。其中,前摄、后拉相机和驾驶舱监视相机采集的音视频数据经过编码后会分别封装至单独的视频文件中进行存储。
2、然而,基于上述封装方法封装的音视频数据在后续调用时,需要调取多个视频文件,并分别进行解封装,才能得到原始音视频数据,进而会造成不同相机录制的视频文件同步、循环删除文件同步、回放观看等开发困难的问题。并且,每路音视频数据均对应封装至单独的视频文件,会增大占用的存储空间。
技术实现思路
1、本申请提供一种多路音视频码流的封装、解封装方法及装置,以解决不同相机录制的视频文件同步困难的问题。
2、第一方面,本申请提供一种多路音视频码流的封装方法,包括:
3、获取音频数据和多路视频数据;
4、对所述音频数据进行编码,以生成音频编码数据;
5、分别对多路所述视频数据进行编码,以生成多路视频编码数据;
6、建立音频轨和多个视频轨,所述音频轨为存储音频数据的信号轨道,所述视频轨为存储视频数据的信号轨道;
7、将所述音频编码数据封装至所述音频轨中,以及将多路所述视频编码数据分别封装至多个所述视频轨中;
8、创建音视频文件;
9、将所述音频轨和多个所述视频轨写入所述音视频文件,以及存储所述音视频文件。
10、可选的,对所述视频数据进行编码的步骤,还包括:
11、设置视频编码参数,所述视频编码参数包括视频宽高、帧率、码率和编码类型;
12、按照所述视频编码参数将所述视频数据编码压缩为预设视频格式的视频数据,以生成视频编码数据。
13、可选的,对所述音频数据进行编码的步骤,还包括:
14、设置音频编码参数;
15、按照所述音频编码参数将所述音频数据编码压缩为预设音频格式的音频数据,以生成音频编码数据。
16、第二方面,本申请提供一种多路音视频码流的解封装方法,包括:
17、调取音视频文件,所述音视频文件根据上述多路音视频码流的封装方法封装得到;
18、在所述音视频文件中读取音频轨和多个视频轨;
19、分别对所述音频轨和多个所述视频轨进行解封装,以生成音频编码数据和多路视频编码数据;
20、对所述音频编码数据进行解码,以生成音频数据;
21、分别对多路所述视频编码数据进行解码,以生成多路视频数据。
22、可选的,所述方法还包括:
23、将多路所述视频数据发送至显示器,以及将所述音频数据发送至声音播放器;
24、分别解析所述视频数据和所述音频数据中每帧数据的时间戳;
25、根据所述时间戳,控制所述显示器显示所述视频数据,以及控制所述声音播放器播放所述音频数据。
26、可选的,所述方法还包括:
27、合并多路所述视频数据;
28、将合并后的多路视频数据发送至显示器。
29、可选的,所述方法还包括:
30、将多路所述视频数据分别发送至多个显示器,所述显示器用于播放一路视频数据。
31、可选的,所述方法还包括:
32、响应于用户输入的视频选中指令,所述视频选中指令包括目标视频轨;
33、对所述目标视频轨进行解封装,以生成目标视频编码数据;
34、对所述目标视频编码数据进行解码,以生成目标视频数据;
35、将所述目标视频数据发送至显示器。
36、第三方面,本申请提供一种多路音视频码流的封装装置,包括视频采集模块、音频采集模块、视频编码模块、音频编码模块、音视频封装模块和存储模块,其中:
37、视频采集模块,用于采集视频数据;
38、音频采集模块,用于采集音频数据;
39、视频编码模块,用于分别对多路所述视频数据进行编码,以生成多路视频编码数据;
40、音频编码模块,用于对所述音频数据进行编码,以生成音频编码数据;
41、音视频封装模块,用于建立音频轨和多个视频轨,所述音频轨为存储音频数据的信号轨道,所述视频轨为存储视频数据的信号轨道;
42、将所述音频编码数据封装至所述音频轨中,以及将多路所述视频编码数据分别封装至多个所述视频轨中;
43、创建音视频文件;
44、将所述音频轨和多个所述视频轨写入所述音视频文件;
45、存储模块,用于存储所述音视频文件。
46、第三方面,本申请提供一种多路音视频码流的解封装装置,包括音视频解封装模块、音频解码模块和视频解码模块,其中:
47、音视频解封装模块,用于调取所述音视频文件,所述音视频文件根据权利要求9所述的封装装置封装得到;
48、在所述音视频文件中读取音频轨和多个视频轨;
49、分别对所述音频轨和多个所述视频轨进行解封装,以生成所述音频编码数据和多路所述视频编码数据;
50、音频解码模块,用于对所述音频编码数据进行解码,以生成所述音频数据;
51、视频解码模块,用于分别对多路所述视频编码数据进行解码,以生成多路所述视频数据。
52、由以上技术方案可知,本申请提供一种多路音视频码流的封装、解封装方法及装置,封装时,可以在获取到音频数据和多路视频数据后,对音频数据和多路视频数据进行编码,以生成音频编码数据和多路视频编码数据,再将音频编码数据封装至音频轨中,以及将多路视频编码数据分别封装至多个视频轨中,并将音频轨和多个视频轨写入音视频文件,以及存储音视频文件。解封时,可以调取音视频文件,并读取音频轨和多个视频轨,分别对音频轨和视频轨进行解封装,以生成音频编码数据和多路视频编码数据,再对音频编码数据和多路视频数据进行解码,以生成音频数据和多路视频数据。所述方法可以将不同的视频流和不同的音频流封装在同一个文件里,解决不同音视频流同步困难的问题。
1.一种多路音视频码流的封装方法,其特征在于,包括:
2.根据权利要求1所述的封装方法,其特征在于,对所述视频数据进行编码的步骤,还包括:
3.根据权利要求1所述的封装方法,其特征在于,对所述音频数据进行编码的步骤,还包括:
4.一种多路音视频码流的解封装方法,其特征在于,包括:
5.根据权利要求4所述的解封装方法,其特征在于,所述方法还包括:
6.根据权利要求5所述的解封装方法,其特征在于,所述方法还包括:
7.根据权利要求5所述的解封装方法,其特征在于,所述方法还包括:
8.根据权利要求5所述的解封装方法,其特征在于,所述方法还包括:
9.一种多路音视频码流的封装装置,其特征在于,包括:
10.一种多路音视频码流的解封装装置,其特征在于,包括: