本技术涉及计算机领域,尤其涉及一种视频对齐方法、视频编码方法、装置及存储介质。
背景技术:
1、当前,hls(http live streaming,超文本直播流)协议为实现直播业务的主流技术。基于hls协议进行视频直播,可以解决视频直播时出现的卡顿问题。比如,在地铁等网络波动明显的场景下,看视频直播卡顿总会发生,这时候通过切换到清晰度低的多媒体流,可以很好的避免卡顿的发生。
2、然而,由于不同清晰度的多媒体流的切片通常分布在不同的服务器中,或分布在同一服务器的不同任务进程中,所以在视频直播的场景下,当进行不同清晰度的多媒体流的切换时,会出现不同清晰度的多媒体流的切片以及音视频时间戳无法精确对齐的问题。
技术实现思路
1、本技术提供了一种视频对齐方法、视频编码方法、装置及存储介质,用以解决不同清晰度的多媒体流的切片以及音视频时间戳无法精确对齐的问题。
2、第一方面,提供一种视频编码方法,包括:
3、对于n路直播码流中的任意一路直播码流,获取所述任意一路直播码流中的任意一个图像组的实际编码时刻、标准索引号和起始基准时间;所述起始基准时间为所述n路直播码流中首帧视频帧在编码生产虚拟时间轴上的编码完成时刻;
4、基于所述标准索引号和所述起始基准时间,计算所述任意一个图像组的理论编码时刻;
5、基于所述实际编码时刻和所述理论编码时刻,计算所述任意一路直播码流的编码提前时长;
6、当所述编码提前时长大于标准图像组时长时,减小所述标准索引号以得到所述任意一个图像组的索引号。
7、可选地,基于所述标准索引号和所述起始基准时间,计算所述任意一个图像组的理论编码时刻,包括:
8、计算所述标准索引号与标准图像组时长的乘积,得到所述任意一个图像组在所述编码生产虚拟时间轴上的编码时刻偏移;
9、计算所述编码时刻偏移和所述起始基准时间之和,得到所述理论编码时刻。
10、可选地,当所述编码提前时长大于标准图像组时长时,减小所述标准索引号以得到所述任意一个图像组的索引号,包括:
11、判断所述编码提前时长是否大于n个标准图像组时长;
12、若大于所述n个标准图像组时长,确定所述任意一个图像组的索引号为所述标准索引号减n;
13、若不大于所述n个标准图像组时长,更新n=n-1,返回执行判断所述编码提前时长是否大于n个标准图像组时长的步骤,直至n更新为1时,若所述编码提前时长大于1个标准图像组时长,则确定所述任意一个图像组的索引号为所述标准索引号减1,若所述编码提前时长不大于1个标准图像组时长,确定所述任意一个图像组的索引号为标准索引号。
14、第二方面,提供一种视频对齐方法,包括:
15、获取一路直播码流中的任意一个图像组;
16、解析所述任意一个图像组,获取所述任意一个图像组的对齐参数,所述对齐参数包括起始基准时间、所述任意一个图像组的索引号和所述任意一个图像组中首个视频帧的时间戳偏移,所述起始基准时间为所述n路直播码流中首帧视频帧在编码生产虚拟时间轴上的编码完成时刻,所述任意一个图像组的索引号与所述任意一个图像组的编码提前时长相关;所述时间戳偏移为所述首个视频帧相对于目标图像组中的首个视频帧的编码时间戳的偏移,所述目标图像组为对所述任意一个图像组进行切片的切片任务启动时处理的第一个图像组;
17、按照所述任意一个图像组的索引号,确定所述任意一个图像组在所述一路直播码流中的切分位置;
18、基于所述起始基准时间和所述时间戳偏移,确定所述任意一个图像组的音频播放时间和视频播放时间。
19、可选地,按照所述任意一个图像组的索引号,确定所述任意一个图像组在所述一路直播码流中的切分位置,包括:
20、计算所述索引号与标准图像组时长的乘积,得到所述任意一个图像组在所述编码生产虚拟时间轴上的标准编码时间偏移;
21、获取所述标准编码时间偏移除以预设的切片周期时长所得的商值和余数值;
22、基于所述商值确定所述任意一个图像组所属的切片的序号、以及基于所述余数值确定所述任意一个图像组在所述所属的切片中的位置;
23、将所述切片的序号和在所述所属的切片中的位置,作为所述切分位置。
24、可选地,基于所述起始基准时间和所述时间戳偏移,确定所述任意一个图像组的音频播放时间和视频播放时间,包括:
25、计算所述起始基准时间和所述时间戳偏移之和,得到所述任意一个图像组中首个视频帧在所述编码生产虚拟时间轴上的时间偏移量;
26、对于所述任意一个图像组中的每个视频帧,采用所述时间偏移量,分别修正所述每个视频帧的视频编码时间戳和视频显示时间戳,得到与所述视频编码时间戳对应的修正后视频编码时间戳、以及与所述视频显示时间戳对应的修正后视频显示时间戳;以及,采用所述时间偏移量,分别修正所述每个音频帧的音频编码时间戳和音频显示时间戳,得到与所述音频编码时间戳对应的修正后音频编码时间戳、以及与所述音频显示时间戳对应的修正后音频显示时间戳;
27、将所述修正后视频编码时间戳和所述修正后视频显示时间戳,作为所述每个视频帧的视频时间戳;以及,将所述修正后音频编码时间戳和所述修正后音频显示时间戳作为所述每个音频帧的音频时间戳;
28、将所述任意一个图像组中所有视频帧的视频时间戳所指示的播放时间,作为所述任意一个图像组的视频播放时间;以及,将所述任意一个图像组中所有音频帧的音频时间戳所指示的播放时间,作为所述任意一个图像组的音频播放时间。
29、可选地,对于所述任意一个图像组中的每个视频帧,采用所述时间偏移量,分别修正所述每个视频帧的视频编码时间戳和视频显示时间戳,得到与所述视频编码时间戳对应的修正后视频编码时间戳、以及与所述视频显示时间戳对应的修正后视频显示时间戳,包括:
30、计算所述每个视频帧的视频编码时间戳和所述时间偏移量之和,得到第一求和结果;以及,计算所述每个视频帧的视频显示时间和所述时间偏移量之和,得到第二求和结果;
31、将所述第一求和结果作为所述修正后视频编码时间戳,以及,将所述第二求和结果作为所述修正后视频显示时间戳。
32、可选地,采用所述时间偏移量,分别修正所述每个音频帧的音频编码时间戳和音频显示时间戳,得到与所述音频编码时间戳对应的修正后音频编码时间戳、以及与所述音频显示时间戳对应的修正后音频显示时间戳,包括:
33、计算所述每个音频帧的音频编码时间戳和所述时间偏移量之和,得到第一求和结果;以及,计算所述每个音频帧的音频显示时间和所述时间偏移量之和,得到第二求和结果;
34、将所述第一求和结果作为所述修正后音频编码时间戳,以及,将所述第二求和结果作为所述修正后音频显示时间戳。
35、第三方面,提供一种视频编码装置,包括:
36、第一获取模块,用于对于n路直播码流中的任意一路直播码流,获取所述任意一路直播码流中的任意一个图像组的实际编码时刻、标准索引号和起始基准时间;所述起始基准时间为所述n路直播码流中首帧视频帧在编码生产虚拟时间轴上的编码完成时刻;
37、第一计算模块,用于基于所述标准索引号和所述起始基准时间,计算所述任意一个图像组的理论编码时刻;
38、第二计算模块,用于基于所述实际编码时刻和所述理论编码时刻,计算所述任意一路直播码流的编码提前时长;
39、第一确定模块,用于当所述编码提前时长大于标准图像组时长时,减小所述标准索引号以得到所述任意一个图像组的索引号。
40、第四方面,提供一种视频对齐装置,包括:
41、第二获取模块,用于获取一路直播码流中的任意一个图像组;
42、第三获取模块,用于解析所述任意一个图像组,获取所述任意一个图像组的对齐参数,所述对齐参数包括起始基准时间、所述任意一个图像组的索引号和所述任意一个图像组中首个视频帧的时间戳偏移,所述起始基准时间为所述n路直播码流中首帧视频帧在编码生产虚拟时间轴上的编码完成时刻,所述任意一个图像组的索引号与所述任意一个图像组的编码提前时长相关;所述时间戳偏移为所述首个视频帧相对于目标图像组中的首个视频帧的编码时间戳的偏移,所述目标图像组为对所述任意一个图像组进行切片的切片任务启动时处理的第一个图像组;
43、第二确定模块,用于按照所述任意一个图像组的索引号,确定所述任意一个图像组在所述一路直播码流中的切分位置;
44、第三确定模块,用于基于所述起始基准时间和所述时间戳偏移,确定所述任意一个图像组的音频播放时间和视频播放时间。
45、第五方面,提供一种电子设备,包括:处理器、存储器和通信总线,其中,处理器和存储器通过通信总线完成相互间的通信;
46、所述存储器,用于存储计算机程序;
47、所述处理器,用于执行所述存储器中所存储的程序,实现第一方面或第二方面所述的视频对齐方法。
48、第六方面,提供一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现第一方面或第二方面所述的视频对齐方法。
49、本技术实施例提供的上述技术方案与现有技术相比具有如下优点:本技术实施例提供的该方法,由于在编码的过程中,基于图像组的编码提前时长校正了图像组的标准索引号,并且使得校正后的索引号小于标准索引号,所以当生成切片时,可以基于校正后的索引号追齐编码提前时长,从而避免出现播放端下载超前的问题。