System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机互联网,尤其涉及一种音视频同步方法、装置及存储介质。
技术介绍
1、在传统的云桌面系统中,存在音频流和视频流。音频流和视频流一般情况下相互独立,且都涉及采集、编码、传输、解码、渲染等步骤。当主机的性能较差或者网络拥塞的情况下,可能导致音视频不同步,且随着时间的积累,音视频不同步的现象不仅不会消除,还只会越来越明显。
2、因此,有必要提供一种新的技术方案改善上述方案中存在的一个或者多个问题。
3、需要说明的是,在上述
技术介绍
部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
技术实现思路
1、本申请的目的在于提供一种音视频同步方法、装置及存储介质,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。
2、根据本申请实施例的第一方面,提供一种音视频同步方法,该方法包括:
3、发送端基于开始采集音视频数据时的系统时间及对应的采样周期,分别生成音频时间戳和视频时间戳;其中,音视频数据包括音频数据和视频数据;
4、并将所述音频时间戳封装在所述音频数据中,得到音频数据包,将所述视频时间戳封装在所述视频数据中,得到视频数据包;
5、将所述音频数据包和所述视频数据包分别放入各自对应的缓冲区,并根据所述视频数据包中的第一帧视频数据的采集上报时间和所述音频数据包中的第一包音频数据的采集上报时间的大小关系,将所述音频数据包中的第一包音频数据
6、若所述视频数据包中的第一帧视频数据的采集上报时间大于等于所述音频数据包中的第一包音频数据的采集上报时间,则根据音频偏移量将所述第一包音频数据到所述音频偏移量之间的音频数据移除,以使剩余的所述音频数据包中的第一包音频数据和所述视频数据包中的第一帧视频数据对齐;其中,所述音频偏移量通过所述视频数据包中的第一帧视频数据的采集上报时间、所述音频数据包中的第一包音频数据的采集上报时间及音频采样周期计算而得;
7、对所述视频数据包和所述音频数据包分别进行编码,并将所述视频编码数据包和所述音频编码数据包组成一个传输包,并在该所述传输包上加上包头信息,进行发送至接收端进行解码显示。
8、本申请的实施例中,所述音频偏移量的计算公式如下:
9、
10、式中,audio_offset_n表示音频偏移量,t_video_0表示视频数据包中的第一帧视频数据的采集上报时间,t_audio_0表示音频数据包中的第一包音频数据的采集上报时间,interval_a表示音频采样周期。
11、本申请的实施例中,所述根据所述视频数据包中的第一帧视频数据的采集上报时间和所述音频数据包中的第一包音频数据的采集上报时间的大小关系,将所述音频数据包中的第一包音频数据和所述视频数据包中的第一帧视频数据对齐,之后包括:
12、若所述视频数据包中的第一帧视频数据的采集上报时间小于所述音频数据包中的第一包音频数据的采集上报时间,则根据视频偏移量将所述第一帧视频数据到所述视频偏移量之间的视频数据移除,以使剩余的所述视频数据包中的第一个帧视频数据和所述音频数据包中的第一包音频数据对齐;其中,所述视频偏移量通过所述视频数据包中的第一帧视频数据的采集上报时间、所述音频数据包中的第一包音频数据的采集上报时间及视频采样周期计算而得。
13、本申请的实施例中,所述视频偏移量的计算公式如下:
14、
15、式中,video_offset_n表示视频偏移量,t_video_0表示视频数据包中的第一帧视频数据的采集上报时间,t_audio_0表示音频数据包中的第一包音频数据的采集上报时间,interval_v表示视频采样周期。
16、本申请的实施例中,所述对所述视频数据包和所述音频数据包分别进行编码,并将视频编码数据包和音频编码数据包组成一个传输包,包括:
17、按视频数据的一帧长度对所述视频数据包进行编码,得到视频编码数据包;
18、根据音频偏移数从音频缓冲区内找到和视频帧时间上对应的音频数据,并进行编码,得到音频编码数据包;其中,所述音频偏移数通过当前视频缓冲区的第一帧视频数据的视频时间戳、视频采样周期、当前音频缓冲区的第一包音频数据的音频时间戳、音频采样周期计算得到。
19、本申请的实施例中,所述音频偏移数的计算公式如下:
20、
21、式中,t_video_k表示当前视频缓冲区的第一帧视频数据的视频时间戳,interval_v表示视频采样周期,t_audio_n表示移数通过当前视频缓冲区的第一帧视频数据的视频时间戳,interval_a表示音频采样周期。
22、根据本申请实施例的第二方面,提供一种音视频同步方法,该方法包括:
23、接收端对接收到的传输包进行拆包,得到拆包后的音频编码数据包和视频编码数据包,并分别进行解码,得到音频解码数据包和视频解码数据包;
24、通过网络均衡模块对所述音频解码数据包进行处理,得到处理后的所述音频解码数据包和音频播放结果,处理后的所述音频解码数据包进行渲染;其中,所述音频播放结果包括:正常播放、加速播放和减速播放;
25、所述视频解码数据包根据所述音频播放结果修正视频解码数据原始时长,得到修正后的视频解码数据时长,以使所述视频解码数据包根据修正后的所述视频解码数据时长进行渲染。
26、本申请的实施例中,所述视频解码数据包根据所述音频播放结果修正视频解码数据时长,得到修正后的视频解码数据时长,包括:
27、当所述音频播放结果为正常播放时,修正后的所述视频解码数据时长为所述视频解码数据原始时长。
28、本申请的实施例中,所述视频解码数据包根据所述音频播放结果修正视频解码数据时长,得到修正后的视频解码数据时长,包括:
29、当所述音频播放结果为加速播放时,修正后的所述视频解码数据时长的计算公式如下:
30、
31、式中,a_samples表示音频解码数据包中的音频解码数据的数量,ksamples表示减少的音频解码数据的数量,duration0表示视频解码数据原始时长。
32、本申请的实施例中,所述视频解码数据根据所述音频播放结果修正视频解码数据时长,得到修正后的视频解码数据时长,包括:
33、当所述音频播放结果为减速播放时,修正后的所述视频解码数据时长的计算公式如下:
34、
35、式中,a_samples表示音频解码数据包中的音频解码数据的数量,ksamples表示减少的音频解码数据的数量,duration0表示视频解码数据原始时长。
36、根据本申请实施例的第三方面,提供一种音视频同步装置,该装置包括:
37、生成模块,用于发送端基于开始采集音视本文档来自技高网...
【技术保护点】
1.一种音视频同步方法,其特征在于,该方法包括:
2.根据权利要求1所述的音视频同步方法,其特征在于,所述音频偏移量的计算公式如下:
3.根据权利要求1所述的音视频同步方法,其特征在于,所述根据所述视频数据包中的第一帧视频数据的采集上报时间和所述音频数据包中的第一包音频数据的采集上报时间的大小关系,将所述音频数据包中的第一包音频数据和所述视频数据包中的第一帧视频数据对齐,之后包括:
4.根据权利要求3所述的音视频同步方法,其特征在于,所述视频偏移量的计算公式如下:
5.根据权利要求1所述的音视频同步方法,其特征在于,所述对所述视频数据包和所述音频数据包分别进行编码,并将视频编码数据包和音频编码数据包组成一个传输包,包括:
6.根据权利要求5所述的音视频同步方法,其特征在于,所述音频偏移数的计算公式如下:
7.一种音视频同步方法,其特征在于,该方法包括:
8.根据权利要求7所述的音视频同步方法,其特征在于,所述视频解码数据包根据所述音频播放结果修正视频解码数据时长,得到修正后的视频解码数据时长,包括
9.根据权利要求7所述的音视频同步方法,其特征在于,所述视频解码数据包根据所述音频播放结果修正视频解码数据时长,得到修正后的视频解码数据时长,包括:
10.根据权利要求7所述的音视频同步方法,其特征在于,所述视频解码数据根据所述音频播放结果修正视频解码数据时长,得到修正后的视频解码数据时长,包括:
11.一种音视频同步装置,其特征在于,该装置包括:
12.一种音视频同步装置,其特征在于,该装置包括:
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1~10任一项所述音视频同步方法的步骤。
...【技术特征摘要】
1.一种音视频同步方法,其特征在于,该方法包括:
2.根据权利要求1所述的音视频同步方法,其特征在于,所述音频偏移量的计算公式如下:
3.根据权利要求1所述的音视频同步方法,其特征在于,所述根据所述视频数据包中的第一帧视频数据的采集上报时间和所述音频数据包中的第一包音频数据的采集上报时间的大小关系,将所述音频数据包中的第一包音频数据和所述视频数据包中的第一帧视频数据对齐,之后包括:
4.根据权利要求3所述的音视频同步方法,其特征在于,所述视频偏移量的计算公式如下:
5.根据权利要求1所述的音视频同步方法,其特征在于,所述对所述视频数据包和所述音频数据包分别进行编码,并将视频编码数据包和音频编码数据包组成一个传输包,包括:
6.根据权利要求5所述的音视频同步方法,其特征在于,所述音频偏移数的计算公式如下:
7.一种音视频...
【专利技术属性】
技术研发人员:易鑫,
申请(专利权)人:西安万像电子科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。