视频会议处理方法、系统和装置与流程

文档序号:27259505发布日期:2021-11-05 21:18阅读:246来源:国知局
视频会议处理方法、系统和装置与流程

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.图1为一个实施例中视频会议处理方法的应用环境图;
41.图2为一个实施例中视频会议处理方法的流程示意图;
42.图3为一个实施例中获取视频数据包的具体流程示意图;
43.图4为另一个实施例中目标视频关键帧中扩展序列号的结构示意图;
44.图5为另一个实施例中获取目标视频关键帧的视频包扩展序列号的流程示意图;
45.图6为另一个实施例中原始rtp数据包rtp固定头部的具体结构图;
46.图7为另一个实施例中原始rtp数据包扩展头部的具体结构图;
47.图8为另一个实施例中重新赋值后的rtp数据包扩展头部的具体结构图;
48.图9为另一个实施例中视频会议处理方法的另一流程示意图;
49.图10为另一个实施例中对数据包进行解码处理方法的流程示意图;
50.图11为一个实施例中视频会议处理装置的结构框图;
51.图12为另一个实施例中视频会议处理装置的结构框图;
52.图13为一个实施例中计算机设备的内部结构图。
具体实施方式
53.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
54.本技术提供的视频会议处理方法,可以应用于如图1所示的应用环境中。其中,发送端102与接收端104通过网络进行通信。在本实施例中,发送端102和接收端104均为虚拟端,能够用现有的模拟数据,即本实施例中的视频数据包,对多点视频会议的视频码流进行处理,以实现视频会议的接收端接收到的音视频与发送端发送的音视频同步,且发送端102和接收端104均可以为符合h.323功能的终端模拟器。该终端模拟器可以集成h.323协议栈、会话发起协议栈,能进行视频会议h.323/会话发起呼叫、被呼。在本实施例中,上述发送端102可以通过wireshark、tcpdump等软件或带有网络镜像功能交换机等硬件,采集视频会议时产生的一段视频码流包含的各视频帧中的若干个视频数据包。
55.其中,上述发送端102与接收端104可以用独立的服务器或者是多个服务器组成的服务器集群来实现,也可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。
56.在一个实施例中,如图2所示,提供了一种视频会议处理方法,以该方法应用于图1中的发送端102为例进行说明,包括以下步骤:
57.s100、按照预设发送时序向接收端发送视频帧包含的多个视频数据包。
58.具体的,上述预设发送时序可以理解为视频会议的同一对话中,每个视频帧对应的多个视频数据包在每个视频帧中对应的先后位置,该位置是固定的,还可以理解为视频会议的同一对话中,每个视频帧在对话中的先后顺序。视频帧可以包括视频关键帧、前向预测帧和/或双向预测帧,在采集视频码流时,就能够将视频关键帧、前向预测帧和/或双向预测帧的位置进行编码,双向预测帧、前向预测帧的数据量小于视频关键帧的数据量;每段视频码流包括多个视频帧,两个视频关键帧之间可以包括多个前向预测帧和/或双向预测帧。如一个视频帧可以由3个视频数据包组成,分别对应位置1的视频数据包1、位置2的视频数据包2和位置3的视频数据包3,那么,预设发送时序可以为1,2,3,也就是,发送端102向接收端104发送视频数据包的先后顺序可以为视频数据包1、视频数据包2、视频数据包3。在本实施例中,发送端102将一个视频帧对应的所有视频数据包发完之后,再发送下一个视频帧对应的所有视频数据包,且这些视频帧的先后发送顺序也可以为预设发送时序。可选的,每个视频帧可以分成多个视频数据包。
59.在本实施例中,上述视频数据包可以为加密视频会议对应的加密视频数据包,该视频数据包可以为实体设备开启加密视频会议功能后,发送端102采集到的视频码流可以对应多个视频帧,并将各个视频帧分成若干个视频数据包,也就是,视频数据包可以作为样本数据包直接在发送端102进行处理以实现发送端和接收端的视频同步。可选的,实体设备可以为多点接入单元设备和端点设备,端点设备可以向成千上百的多点接入单元发起加密视频会议的呼叫请求,呼叫请求响应后可以产生加密后的加密视频码流,上述呼叫请求中携带有预设协议,视频码流可以包括视频会议的同一会话中视频信号对应的视频码流和同一会话中音频信号对应的音频码流。也就是,上述视频数据包可以包括视频会议的同一会话中视频信号对应的视频数据包和音频信号对应的音频数据包;对应的,视频信号可以为一段动态内容连贯的图像,音频信号可以为一段音乐,也可以为一段讲话,对此不做限定。
60.其中,发送端102采集的视频码流可以为不同协议、格式、帧率等属性下的数据,但在本实施例中采集的视频码流符合实时传输协议(real

time transport protocol,rtp),且采集两个相邻视频码流之间的时间间隔可以根据实际需求而定。该rtp包含了在互联网上传递音频和视频的标准数据包格式,因此,在本实施例中,视频数据包可以称为rtp数据包。
61.可以理解的是,接收端104可以按照预设发送时序接收每个视频帧对应的多个视频数据包,在接收到视频数据包之后,将这些视频数据包组合在一起形成视频帧,然后对组成后的视频帧进行解码。在解码过程中,若接收端104可以接收到多个组合后的视频帧,并依次对每个组合后的视频帧进行解码,对组合后的第一个视频帧进行解码时,可以基于初始化数据对组合后的第一个视频帧进行解码;再对组合后的第二个视频帧进行解码时,可以基于组合后的第一个视频帧对组合后的第二个视频帧进行解码;依次类推,对后一个组合后的视频帧进行解码时,可以基于前一个组合后的视频帧进行解码。
62.若将当前视频帧对应的多个视频数据包向接收端104发送的过程中,出发丢包的情况,此时,接收端104会出现解码失败的情况,若不存在丢包的情况,此时,接收端104会解码成功,将当前接收到的视频帧解出来。在本实施例中,发送端102可以将视频数据包通过用户数据报协议、传输控制协议发送至网络传输至接收端104。上述解码处理可以理解为解密处理、解压缩处理等等,但在本实施例中,解码处理可以为解密处理。
63.还可以理解的是,发送端102可以按照预设发送时序向接收端104,依次发送多个视频数据包,其中,每次发送一个视频数据包,两次发送操作之间的时间间隔可以为预设的时间间隔,两两发送操作之间的时间间隔可以相同,也可以不相同,只要在下一次发送操作之前能够将上一次发送的视频数据包发送出去即可。
64.s200、若接收到接收端发送的解码失败信息,则获取预设发送时序中位于当前发送的视频帧之后的目标视频关键帧,并获取与目标视频关键帧对应的目标视频数据包。
65.具体的,若发送端102接收到接收端104发送的解码失败信息之后,可以获取预设发送时序中位于当前发送的视频帧之后的目标视频关键帧,同时获取该目标视频关键帧对应的目标视频数据包。可选的,解码失败信息可以通过解码失败的相关标识表示,该标识可以为数字、字母,还可以为其它特殊符号等。可选的,解码失败信息可以指示发送端查找当前发送的视频帧之后的下一视频关键帧,即目标视频关键帧,和该目标视频关键帧对应的目标视频数据包。
66.上述目标视频关键帧可以为通过视频的类型从一段码流的所有视频帧中提取出来的关键帧,可以为所有视频帧中的首帧图像,也可以为所有视频帧中的中间帧图像或者尾帧图像。上述目标视频关键帧在h.264等视频压缩标准中,携带能初始化解码器参数的一幅压缩图像,解码器接收到此帧图像后能解码出原始图像,以及解码出基于该目标视频关键帧的编码的压缩图像,上述h.264为国际标准化组织和国际电信联盟共同提出的数字视频压缩格式。
67.s300、从目标视频数据包开始,按照预设发送时序继续向接收端发送视频数据包。
68.具体的,发送端102获取到目标视频数据包之后,可以从目标视频数据包开始,将目标视频数据包以及目标视频数据包之后的所有视频数据包按照预设发送时序继续向接收端104发送,也就是,接收端104可以接收到新的视频数据包,进而将新的视频数据包组合得到组合后的视频帧,然后对组合后的视频帧进行解码,解码失败后,可以继续执行s200至s300的步骤,直到解码成功为止。
69.上述视频会议处理方法中,发送端按照预设发送时序向接收端发送视频帧包含的多个视频数据包,若接收到接收端发送的解码失败信息,则获取预设发送时序中位于当前发送的视频帧之后的目标视频关键帧以及与目标视频关键帧对应的目标视频数据包,并且从目标视频数据包开始,按照预设发送时序继续向接收端发送视频数据包。该方法可以采用预先加密后的视频数据包,有效降低视频会议的多点接入单元设备、端点设备开发对接加密码流的测试环境的搭建成本,并且能够在测试端实现视频会议的发送端发送的视频与接收端接收的视频同步,达到同步测试的效果,提升用户使用视频会议功能的体验,还提高了发送端发送的视频与接收端接收的视频同步的测试效率;同时,方便开发人员发现开发测试过程中存在的问题。
70.在一种场景中,为了实现视频会议的发送端102发送的视频与接收端104接收的视频同步,需要发送端102重新获取新的视频关键帧与对应的视频数据包,以达到解码成功的状态;如图3所示,上述s200中获取预设发送时序中位于当前发送的视频帧之后的目标视频关键帧,并获取与目标视频关键帧对应的目标视频数据包的步骤,具体可以通过以下步骤实现:
71.s210、获取目标视频关键帧的视频包扩展序列号,视频包扩展序列号用于指示视
频帧在预设发送时序中的排序。其中,目标视频关键帧携带有视频包序列号、视频包扩展序列号以及视频包位置索引。
72.具体的,上述目标视频关键帧中可以携带有视频包序列号、视频包扩展序列号和视频包位置索引,由于视频数据包中包含了视频信号对应的视频数据包和音频信号对应的音频数据包,那么,目标视频关键帧具体可以携带有视频包序列号、视频包扩展序列号、视频包位置索引、音频包序列号、音频包扩展序列号和音频包位置索引。
73.还可以理解的是,发送端102可以根据当前发送的视频数据包对应的视频帧找到目标视频关键帧,进而得到目标视频关键帧对应的视频包扩展序列号,当前发送的视频帧对应的视频包扩展序列号可以比目标视频关键帧对应的视频包扩展序列号小。各视频帧包含的若干个视频数据包均有对应的视频包扩展序列号,该视频包扩展序列号在视频数据包采集过程中根据采集的先后顺序完成编码。当前发送的视频帧可以理解为当前发送的视频数据包所对应的视频帧。
74.在本实施例中,发送端102可以按照一定的预设周期获取每个视频帧,每次将视频帧对应的视频数据包发送至接收端102时,会记录视频帧携带的视频包序列号、视频包扩展序列号、视频包位置索引、音频包序列号、音频包扩展序列号和音频包位置索引。可选的,视频包扩展序列号和音频包扩展序列号均为32bits,其构成如图4所示,roc(rollover counter)表示序列号翻转计数,序列号seq为16bits,且roc从0开始,当sequence number从0到65535再回到0时,roc可以增加1。
75.其中,如图5所示,上述s210中获取目标视频关键帧的视频包扩展序列号的步骤,具体可以包括以下步骤:
76.s211、读取发送计数信息,发送计数信息用于记录发送端向接收端已发送的视频数据包的数量。
77.可选的,上述发送计数信息可以表征发送端102向接收端104已经发送的视频数据包的数量,但是不管接收端104是否接收到视频数据包,只要发送端102已发送即可。该发送计数信息可以通过数值表示,也可以通过字母表示;但在本实施例中,发送计数信息用数值表示,该信息的初始值为0,每次发送端102向接收端104发送一个视频数据包后,该数值会增加1。
78.s212、根据发送计数信息,获取目标视频关键帧对应的视频包扩展序列号。
79.可以理解的是,发送端102可以根据记录的发送计数信息,从容错跳转表中查找到与发送计数信息相等的视频包扩展序列号,还可以根据记录的发送计数信息,从容错跳转表中查找到大于发送计数信息的视频包扩展序列号,当然,还可以根据记录的发送计数信息,从容错跳转表中查找到小于发送计数信息的视频包扩展序列号。还可以理解的是,发送端102可以在容错跳转表中查找大于发送计数信息的所有视频包扩展序列号,并将其中一个视频包扩展序列号作为目标视频关键帧对应的视频包扩展序列号。
80.其中,上述s212中根据发送计数信息,从容错跳转表中查找到目标视频关键帧对应的视频包扩展序列号的步骤,可以包括:在容错跳转表中查找大于发送计数信息的第一个视频包扩展序列号,并将查找到的视频包扩展序列号作为目标视频关键帧对应的视频包扩展序列号。
81.在本实施例中,发送端102可以在容错跳转表中,按照视频关键帧从1到n的顺序依
次查找,查找到大于发送计数信息的第一个视频包扩展序列号,并将该视频包扩展序列号作为目标视频关键帧对应的视频包扩展序列号。
82.s220、根据视频包扩展序列号,从预先获取的容错跳转表中查找视频包扩展序列号对应的视频包位置索引。其中,容错跳转表包括多个视频关键帧。
83.实际上,容错跳转表中包含的视频包序列号、视频包扩展序列号、视频包位置索引、音频包序列号、音频包扩展序列号与音频包位置索引之间是一一对应的。发送端102可以根据视频包扩展序列号,从预先获取的容错跳转表中查找视频包扩展序列号相邻的下一视频包扩展序列号对应的视频包位置索引和音频包位置索引,还可以根据视频包扩展序列号,从预先获取的容错跳转表中查找视频包扩展序列号相邻的上一视频包扩展序列号对应的视频包位置索引和音频包位置索引,当然,还可以根据视频包扩展序列号,从预先获取的容错跳转表中查找视频包扩展序列号对应的视频包位置索引和音频包位置索引。但在本实施例中,发送端102具体可以根据视频包扩展序列号,从预先获取的容错跳转表中查找视频包扩展序列号对应的视频包位置索引和音频包位置索引。下表1为一个容错跳转表的示例,包含n个视频关键帧,该视频关键帧在视频数据包采集的过程中就可以确定,两两视频关键帧之间均有若干个前向预测帧和/或双向预测帧。
84.表1
[0085][0086]
s230、根据视频包位置索引,读取目标视频数据包。
[0087]
具体的,发送端102可以根据查找到的视频包位置索引和音频包位置索引,读取该视频包位置索引和音频包位置索引对应的目标视频数据包,还可以根据查找到的视频包位置索引和音频包位置索引读取相邻的下一视频包位置索引和下一音频包位置索引对应的目标视频数据包,当然,还可以根据查找到的视频包位置索引和音频包位置索引读取相邻的上一视频包位置索引和上一音频包位置索引对应的目标视频数据包。但在本实施例中,发送端102具体可以根据查找到的视频包位置索引和音频包位置索引,读取该视频包位置索引和音频包位置索引对应的目标视频数据包。
[0088]
上述视频会议处理方法在接收端存在解码失败的状态时,需要重新获取当前发送的视频帧对应的下一视频关键帧与对应的视频数据包,以让接收端重新对新获取到的组合后的视频帧进行解码,以实现正常解码,让发送端发送的视频与接收端接收的视频达到同步的状态,提升用户使用视频会议功能的体验,并且增加了响应接收端解码失败后再实现同步的处理策略。
[0089]
在一种场景中,为了不影响接收端104接收到的视频数据包的统计丢包计数、帧率等非加密环节的处理,本实施例需要发送端102将视频数据包发送至接收端104之前,先对
视频数据包进行重新赋值,因此,在本实施例中,上述视频会议处理方法还可以包括:对多个视频数据包的固定头部和扩展头部进行重新赋值。
[0090]
在本实施例中,发送端102将视频数据包发送之前均进行了重新赋值处理,接收端104接收到的视频数据包均可以为重新赋值后的视频数据包。
[0091]
其中,如图6所示为重新赋值前的rtp数据包的rtp固定头部的具体结构图,图6中v表示版本号,固定为2(2bits),p表示填充(1bits),x表示扩展(1bits),cc表示csrc计数(4bits),m表示标志(1bits),payload type(pt)表示负载类型(7bits),sequence number(seq)表示序列号(16bits),timestamp表示时间戳(32bits),synchronization source(ssrc)identifier表示同步源标志,contributing source(csrc)identifiers表示作用源列表。视频数据包(rtp数据包)中的序列号字段可以表示对rtp数据包的计数,其值在0到65535之间循环,通过该序列号字段信息可以供接收端判断是否有丢包计算丢包率以及经过网络传输造成乱序后的重排序等,序列号字段的步进为1;视频数据包(rtp数据包)中的时间戳字段可以表示的范围为0到4294967295,时间戳字段的步进基本上不会等于序列号字段的步进;丢包实际上可以表示视频数据包从发送端到接收端发送未成功的情况。视频数据包(rtp数据包)中的rtp固定头的序列号值可以从0开始,视频数据包中的时间戳字段可以表示rtp数据包携带的音频码流和视频码流的采样时刻值,可用于同步以及抖动的计算,其值一般与rtp负载相关,或是特别的定义。
[0092]
如图7所示为重新赋值前的rtp数据包的扩展头部的具体结构图。图8为对rtp数据包进行重新赋值后得到的扩展头部的结构图。在本实施例中,重新赋值后得到新的rtp数据包的具体结构由rtp数据包固定头部、rtp数据包扩展头部与rtp负载。重新赋值的过程中,可以将rtp数据包固定头部中的x字段置为1,然后再rtp数据包固定头部后填充扩展头部,将扩展头部中的srctimestamp和srcseq字段可以为重新赋值前的视频数据包中的原始timestamp和seq。
[0093]
在本实施例中,上述时间戳字段可以表示视频当前帧与下一帧之间的显示时间,每增加一帧就会增加一个步进。示例性的,对于视频,一般将时钟频率定为90khz,帧率为30帧的视频,帧与帧之间,采用的时间戳步进为90000/30=3000,也就是,若视频当前帧的时间戳的值为6666(初始值可以是随机的),则视频下一帧的所有rtp数据包的时间戳为3000+6666=9666。而对于音频,在固定采样率的音频中,每个固定采样周期下发送一个视频数据包,其时间戳=采样率/每秒采样次数。如16000hz的采样率,每次从发送端读20ms,那么时间戳步进可以为320。其中,视频会议中不同的音视频协议有不同的rtp封包定义,但大多都采用上述的计算方法计算时间戳,如视频的h.263、h.264、h.265,音频的aac、g.711等。
[0094]
上述视频会议处理方法中,发送端将视频数据包发送至接收端之前,先对视频数据包进行重新赋值,避免影响接收端104接收到的视频数据包的统计丢包计数、帧率等非加密环节的处理,也就是,该方法可以采用预先加密后的视频数据包,并对加密后的视频数据包进行重新赋值,再将重复赋值后的结果发送至接收端,使得接收端接收到的视频数据包组合在一起能正常解码。
[0095]
在一个场景中,为了接收端104接收的视频与发送端102发送的视频同步,接收端104需要将接收到的视频数据包组合在一起生成组合后的视频帧,并对组合后的视频帧进行解码,解码成功后实现同步的效果,因此,在一个实施例中提供了视频会议处理方法,如
图9所示,该方法可以通过以下方法实现:
[0096]
s400、按照预设发送时序接收发送端发送的视频帧包含的多个视频数据包。
[0097]
具体的,对于接收端104而言,发送端102按照预设发送时序依次向接收端104发送视频帧包含的多个视频数据包,接收端104可以接收发送端102按照预设发送时序依次向接收端104发送多个视频数据包,但是,在出现网络不稳定会存在数据丢包的情况,此时,接收段104可能会接收不到同一个视频帧中的多个视频数据包中的一个或多个视频数据包。上述预设发送时序可以理解为视频会议的同一对话中,每个视频帧对应的多个视频数据包在每个视频帧中对应的先后位置,该位置是固定的,还可以理解为视频会议的同一对话中,每个视频帧在对话中的先后顺序。
[0098]
在本实施例中,接收端104接收到的视频数据包均为经过重新赋值处理后的视频数据包,也就是,视频数据包的固定头部和扩展头部时经过重新赋值后的数据,重新赋值的具体过程可以如图8所示的实施例所述,在此不再赘述。接收端104接收到每个视频帧对应的所有视频数据包后,将这些视频数据包组合在一起形成组合后的视频帧,然后对组合后的视频帧进行解码。接收端104对组合后的第一个视频帧进行解码时,可以基于初始化数据对组合后的第一个视频帧进行解码;再对组合后的第二个视频帧进行解码时,可以基于组合后的第一个视频帧对组合后的第二个视频帧进行解码;依次类推,对后一个组合后的视频帧进行解码时,可以基于前一个组合后的视频帧进行解码。
[0099]
s500、向发送端发送解码失败信息,解码失败信息用于指示发送端查找预设发送时序中,位于当前发送的视频帧之后的目标视频关键帧以及与目标视频关键帧对应的目标视频数据包。
[0100]
具体的,接收端104可以向发送端102发送解码失败信息,在发送端102接收到解码失败信息时,会查找当前视频帧之后的下一视频关键帧,即目标视频关键帧,以及与目标视频关键帧对应的目标视频数据包。可选的,解码失败信息可以通过解码失败的相关标识表示,该标识可以为数字、字母,还可以为其它特殊符号等。
[0101]
s600、接收发送端从目标视频数据包开始,按照预设发送时序发送的视频数据包,并继续对接收到的视频数据包进行组合得到组合后的视频帧,对组合后的视频帧进行解码。
[0102]
可以理解的是,若发送端102查找到目标视频数据包之后,可以继续向接收端104发送目标视频数据包以及目标视频数据包之后的所有视频数据包。可选的,接收端104可以对接收到的新的视频数据包进行组合得到组合后的视频帧,对组合后的视频帧进行解码,得到解码结果,该此种情况下解码结果可以为解码失败信息,也可以为解码成功信息。在本实施例中,若接收端104对新的视频数据包进行组合得到组合后的视频帧,对组合后的视频帧进行解码,解码失败后,可以继续执行s500至s600的步骤,直到解码成功为止。在本实施例中,组合的视频数据包为发送端102发送的同一个视频帧所包含的视频数据包。
[0103]
还可以理解的是,在接收端104每次解码失败,并重新接收到新的视频数据包后,接收端104可以将之前保存的视频数据包全部删除,以减少接收端104的内存。
[0104]
在一些场景中,接收端104接收到的视频数据包为重新赋值处理后的结果,因此,接收端104在对视频数据包进行组合得到组合后的视频帧,并对组合后的视频帧进行解码时,需要获取组合后的视频帧的原始码流,以供正确解码;作为其中一个实施例,如图10所
示,上述视频会议处理方法还可以包括以下步骤:
[0105]
s700、对接收到的视频数据包进行逆处理,获取逆处理后的视频数据包,逆处理后的视频数据包为包含视频数据包重新赋值之前的时间戳和同步源字段。
[0106]
其中,接收端104在接收到视频数据包之后,接收端104可以先对接收到的视频数据包进行逆处理,以得到逆处理后的视频数据包。可选的,逆处理可以理解为数据还原处理,采用的处理方法可以为反卷积复原算法、数据恢复算法等等。在本实施例中,发送端102在将原始的视频数据包发送至接收端104时,若原始的视频数据包的序列号字段只有101到65530,发送端102假设发送前不对原始的视频数据包进行重新赋值,那么,在发送完65530后又开始发送101,此时,接收端104就不知道是否有数据丢包的情况,但对原始的视频数据包重新赋值后,接收端104就可以正常判断视频数据包的序列号是否连续;对于时间戳字段的重新赋值情况也一样。
[0107]
在本实施例中,上述逆处理的过程具体可以为将视频数据包扩展头部的时间戳和序列号字段还原为重新赋值之前的视频数据包的固定头部的时间戳和序列号字段。
[0108]
s800、对逆处理后的视频数据包进行组合生成组合后的视频帧,并对组合后的视频帧进行解码。
[0109]
具体的,接收端104可以对逆处理后的视频数据包进行组合生成组合后的视频帧,并对组合后的视频帧进行解码。可选的,解码方法可以为传统的音视频解码方法,对此不再赘述。
[0110]
上述视频会议处理方法中,接收端接收发送端从目标视频数据包开始,按照预设发送时序发送的视频数据包,并继续对接收到的视频数据包进行解码,对接收到的视频数据包进行逆处理,获取逆处理后的视频数据包,对逆处理后的视频数据包进行组合生成组合后的视频帧,并对组合后的视频帧进行解码;该方法可以采用预先加密后的视频数据包,有效降低视频会议的多点接入单元设备、端点设备开发对接加密码流的测试环境的搭建成本,并且能够在测试端实现视频会议的发送端发送的视频与接收端接收的视频同步,达到同步测试的效果,提升用户使用视频会议功能的体验,还提高了发送端发送的视频与接收端接收的视频同步的测试效率;同时,方便开发人员发现开发测试过程中存在的问题。
[0111]
继续参见图1,另一实施例提供的一种视频会议处理系统的具体结构示意图;视频会议处理系统包括:发送端102以及接收端104。
[0112]
其中,发送端102用于执行上述图2、图3和图5对应的任一实施例中的方法;
[0113]
接收端104用于执行上述图9~图10对应实施例中的方法。
[0114]
具体的,发送端102可以按照预设发送时序向接收端发送视频帧包含的多个视频数据包以及与多个视频数据包一一对应的多个目标视频关键帧,若接收到接收端发送的解码失败信息,则获取预设发送时序中位于当前发送的目标视频关键帧之后的目标视频关键帧以及与目标视频关键帧对应的目标视频数据包,从目标视频关键帧以及目标视频数据包开始,按照预设发送时序继续向接收端发送视频数据包以及目标视频关键帧。
[0115]
另外,接收端104可以接收发送端从目标视频数据包开始,按照预设发送时序发送的视频数据包,并继续对接收到的视频数据包进行组合得到组合后的视频帧,对组合后的视频帧进行解码,对接收到的视频数据包进行逆处理,获取逆处理后的视频数据包,并对逆处理后的视频数据包进行解码。
[0116]
本实施例提供的视频会议处理系统,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
[0117]
应该理解的是,虽然图2、3、5、9和10的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、3、5、9和10中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0118]
在一个实施例中,如图11所示,提供了一种视频会议处理装置,包括:数据发送模块11、数据获取模块12和数据重发送模块13,其中:
[0119]
数据发送模块11,用于按照预设发送时序向接收端发送视频帧包含的多个视频数据包;
[0120]
数据获取模块12,用于在接收到所述接收端发送的解码失败信息时,获取所述预设发送时序中位于当前发送的视频帧之后的目标视频关键帧,并获取与所述目标视频关键帧对应的目标视频数据包;
[0121]
数据重发送模块13,用于从目标视频数据包开始,按照预设发送时序继续向接收端发送视频数据包。
[0122]
本实施例提供的视频会议处理装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
[0123]
在其中一个实施例中,数据获取模块12包括:序列号获取单元、查找单元和数据读取单元,其中:
[0124]
序列号获取单元,用于获取所述目标视频关键帧的视频包扩展序列号,所述视频包扩展序列号用于指示所述视频帧在所述预设发送时序中的排序,所述目标视频关键帧携带有视频包序列号、视频包扩展序列号以及视频包位置索引;
[0125]
查找单元,用于根据视频包扩展序列号,从预先获取的容错跳转表中查找视频包扩展序列号对应的视频包位置索引;
[0126]
数据读取单元,用于根据视频包位置索引,读取目标视频数据包。
[0127]
本实施例提供的视频会议处理装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
[0128]
在其中一个实施例中,序列号获取单元包括:计数信息读取子单元和序列号获取子单元,其中:
[0129]
计数信息读取子单元,用于读取发送计数信息,发送计数信息用于记录发送端向接收端已发送的视频数据包的数量;
[0130]
序列号获取子单元,用于根据发送计数信息,获取目标视频关键帧对应的视频包扩展序列号。
[0131]
本实施例提供的视频会议处理装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
[0132]
在其中一个实施例中,序列号获取子单元具体用于在容错跳转表中查找大于发送
计数信息的第一个视频包扩展序列号,并将查找到的视频包扩展序列号作为目标视频关键帧对应的视频包扩展序列号。
[0133]
其中,容错跳转表包括多个视频关键帧,视频关键帧携带有视频包序列号、视频包扩展序列号以及视频包位置索引。
[0134]
本实施例提供的视频会议处理装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
[0135]
在其中一个实施例中,视频会议处理装置还包括:重新赋值模块,重新赋值模块,用于对多个视频数据包的固定头部和扩展头部进行重新赋值。
[0136]
本实施例提供的视频会议处理装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
[0137]
在一个实施例中,如图12所示,提供了一种视频会议处理装置,包括:数据接收模块14、解码信息发送模块15和数据重接收模块16,其中,
[0138]
数据接收模块14,用于按照预设发送时序接收发送端发送的视频帧包含的多个视频数据包;
[0139]
解码信息发送模块15,用于向所述发送端发送解码失败信息,所述解码失败信息用于指示所述发送端查找所述预设发送时序中,位于当前发送的视频帧之后的目标视频关键帧以及与所述目标视频关键帧对应的目标视频数据包;
[0140]
数据重接收模块16,用于接收所述发送端从所述目标视频数据包开始,按照所述预设发送时序发送的视频数据包,并继续对接收到的所述视频数据包进行组合得到组合后的视频帧,对所述组合后的视频帧进行解码。
[0141]
本实施例提供的视频会议处理装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
[0142]
在其中一个实施例中,视频会议处理装置还包括:逆处理模块和解码模块,其中,
[0143]
逆处理模块,用于对接收到的视频数据包进行逆处理,获取逆处理后的视频数据包,逆处理后的视频数据包为包含视频数据包重新赋值之前的时间戳和同步源字段;
[0144]
解码模块,用于对逆处理后的视频数据包进行解码。
[0145]
本实施例提供的视频会议处理装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
[0146]
关于视频会议处理装置的具体限定可以参见上文中对于视频会议处理方法的限定,在此不再赘述。上述视频会议处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0147]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图13所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储视频数据包和视频帧。该计算机设备的网络接口用于与外部的终端通过
网络连接通信。该计算机程序被处理器执行时以实现一种视频会议处理方法。
[0148]
本领域技术人员可以理解,图13中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0149]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
[0150]
按照预设发送时序向接收端发送视频帧包含的多个视频数据包;
[0151]
若接收到接收端发送的解码失败信息,则获取预设发送时序中位于当前发送的视频帧之后的目标视频关键帧,并获取与目标视频关键帧对应的目标视频数据包;
[0152]
从目标视频数据包开始,按照预设发送时序继续向接收端发送视频数据包。
[0153]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时还实现以下步骤:
[0154]
按照预设发送时序接收发送端发送的视频帧包含的多个视频数据包;
[0155]
向发送端发送解码失败信息,解码失败信息用于指示发送端查找预设发送时序中,位于当前发送的视频帧之后的目标视频关键帧以及与目标视频关键帧对应的目标视频数据包;
[0156]
接收发送端从目标视频数据包开始,按照预设发送时序发送的视频数据包,并继续对接收到的视频数据包进行组合得到组合后的视频帧,对所述组合后的视频帧进行解码。
[0157]
在一个实施例中,提供了一种存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
[0158]
按照预设发送时序向接收端发送视频帧包含的多个视频数据包;
[0159]
若接收到接收端发送的解码失败信息,则获取预设发送时序中位于当前发送的视频帧之后的目标视频关键帧,并获取与目标视频关键帧对应的目标视频数据包;
[0160]
从目标视频数据包开始,按照预设发送时序继续向接收端发送视频数据包。
[0161]
在一个实施例中,提供了一种存储介质,其上存储有计算机程序,计算机程序被处理器执行时还实现以下步骤:
[0162]
按照预设发送时序接收发送端发送的视频帧包含的多个视频数据包;
[0163]
向发送端发送解码失败信息,解码失败信息用于指示发送端查找预设发送时序中,位于当前发送的视频帧之后的目标视频关键帧以及与目标视频关键帧对应的目标视频数据包;
[0164]
接收发送端从目标视频数据包开始,按照预设发送时序发送的视频数据包,并继续对接收到的视频数据包进行组合得到组合后的视频帧,对所述组合后的视频帧进行解码。
[0165]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read

only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
[0166]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0167]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1