掌桥专利:专业的专利平台
掌桥专利
首页

一种视频传输方法、系统、装置、电子设备及存储介质

文献发布时间:2023-06-19 19:30:30


一种视频传输方法、系统、装置、电子设备及存储介质

技术领域

本申请涉及通信技术领域,特别是涉及一种视频传输方法、系统、装置、电子设备及存储介质。

背景技术

随着通信技术领域的发展,对于规模大、复杂度高的多输入视频,可以通过多个视频显示终端对其进行显示。

相关技术中,多个视频输入设备可以分别从源端获取视频图像,各视频图像分别对应同一显示画面的不同显示区域,进而,各视频输入设备可以向视频显示终端发送接收到的视频图像,多个视频显示终端可以分别显示自身接收到的视频图像,使得多个视频显示终端呈现完整的显示画面。

然而,在对多输入视频进行显示时,由于不同的视频输入设备在接收视频图像时存在时间差,且按照统一发送时刻进行发送,进而,会导致多个视频显示终端显示的视频图像出现不同步的问题。

发明内容

本申请实施例的目的在于提供一种视频传输方法、系统、装置、电子设备及存储介质,以避免多个视频显示终端显示的视频图像出现不同步的情况。具体技术方案如下:

本申请实施例的第一方面,首先提供了一种视频传输方法,所述方法应用于目标输入设备,所述目标输入设备为视频传输系统中的任一输入设备,所述视频传输系统还包括除所述目标输入设备以外的其他输入设备,所述方法包括:

从自身的接收端口接收第一视频帧,并为接收到的第一视频帧设置对应的帧序号;

获取帧序号更新时刻;其中,所述帧序号更新时刻为基于在指定输入设备对应的接收结束时刻的基础上增加预设时长得到的,且所述帧序号更新时刻位于各输入设备从各自的接收端口接收第一视频帧的接收结束时刻之后;所述指定输入设备对应的接收结束时刻表示:所述指定输入设备从自身的接收端口接收第一视频帧的接收结束时刻;各输入设备接收到的各第一视频帧在源端的原始视频图像中对应的时间戳相同;

当达到所述帧序号更新时刻时,按照为接收到的视频帧设置帧序号的方式,确定第一帧序号;其中,所述第一帧序号用于指示下一次发送的视频帧;

当达到统一发送时刻时,发送所述第一帧序号对应的视频帧;其中,所述统一发送时刻表示所述视频传输系统中所有输入设备统一发送视频帧的时刻。

在一些实施例中,所述指定输入设备为主输入设备,所述获取帧序号更新时刻,包括:

若自身为所述主输入设备,则获取从自身的接收端口接收第一视频帧的接收结束时刻;基于在获取到的接收结束时刻的基础上增加所述预设时长,得到帧序号更新时刻,并向其他输入设备发送帧序号更新时刻;和/或,

若自身不是所述主输入设备,则接收所述主输入设备发送的帧序号更新时刻。

在一些实施例中,所述方法还包括:

在从自身的接收端口接收到第一视频帧时,向其他输入设备发送从自身的接收端口接收第一视频帧的接收起始时刻;

确定各输入设备从各自的接收端口接收第一视频帧的接收起始时刻中最早的接收起始时刻,作为第一时刻,以及确定各输入设备从各自的接收端口接收第一视频帧的接收起始时刻中最晚的接收起始时刻,作为第二时刻;

确定以所述第一时刻和所述第二时刻为端点的时间区间的二分点对应的时刻,作为第三时刻;

将与所述第三时刻之间的时长最小的接收起始时刻对应的输入设备,确定为所述主输入设备。

在一些实施例中,所述基于在获取到的接收结束时刻的基础上增加所述预设时长,得到帧序号更新时刻,包括:

在获取到的接收结束时刻的基础上增加所述预设时长,得到第四时刻;

若所述第四时刻位于预设时间区间之外,则确定所述第四时刻为帧序号更新时刻;其中,所述预设时间区间的中心为所述统一发送时刻;

若所述第四时刻位于所述预设时间区间之内,则将不早于所述预设时间区间的终止时刻的第五时刻,确定为帧序号更新时刻。

在一些实施例中,所述方法还包括:

若自身不是所述主输入设备,且在从自身的接收端口接收到下一个视频帧之前,未基于所述主输入设备发送的所述帧序号更新时刻确定所述第一帧序号,则在从自身的接收端口接收到下一个视频帧时确定所述第一帧序号。

本申请实施例的第二方面,提供了一种视频传输系统,所述视频传输系统包括多个输入设备,以及与每一输入设备对应的输出设备;

每一输入设备,用于执行上述任一所述的视频传输方法;

每一输出设备,用于接收对应的输入设备发送的视频帧,并进行显示。

本申请实施例的第三方面,提供了一种视频传输装置,所述装置应用于目标输入设备,所述目标输入设备为视频传输系统中的任一输入设备,所述视频传输系统还包括除所述目标输入设备以外的其他输入设备,所述装置包括:

视频帧接收模块,用于从自身的接收端口接收第一视频帧,并为接收到的第一视频帧设置对应的帧序号;

第一获取模块,用于获取帧序号更新时刻;其中,所述帧序号更新时刻为基于在指定输入设备对应的接收结束时刻的基础上增加预设时长得到的,且所述帧序号更新时刻位于各输入设备从各自的接收端口接收第一视频帧的接收结束时刻之后;所述指定输入设备对应的接收结束时刻表示:所述指定输入设备从自身的接收端口接收第一视频帧的接收结束时刻;各输入设备接收到的各第一视频帧在源端的原始视频图像中对应的时间戳相同;

第一确定模块,用于当达到所述帧序号更新时刻时,按照为接收到的视频帧设置帧序号的方式,确定第一帧序号;其中,所述第一帧序号用于指示下一次发送的视频帧;

视频帧发送模块,用于当达到统一发送时刻时,发送所述第一帧序号对应的视频帧;其中,所述统一发送时刻表示所述视频传输系统中所有输入设备统一发送视频帧的时刻。

在一些实施例中,所述指定输入设备为主输入设备,所述第一获取模块,包括:

第一发送子模块,用于若自身为所述主输入设备,则获取从自身的接收端口接收第一视频帧的接收结束时刻;基于在获取到的接收结束时刻的基础上增加所述预设时长,得到帧序号更新时刻,并向其他输入设备发送所述帧序号更新时刻;

和/或,

第一接收子模块,用于若自身不是所述主输入设备,则接收所述主输入设备发送的帧序号更新时刻。

在一些实施例中,所述装置还包括:

第一发送模块,用于在从自身的接收端口接收到第一视频帧时,向其他输入设备发送从自身的接收端口接收第一视频帧的接收起始时刻;

第二确定模块,用于确定各输入设备从各自的接收端口接收第一视频帧的接收起始时刻中最早的接收起始时刻,作为第一时刻,以及确定各输入设备从各自的接收端口接收第一视频帧的接收起始时刻中最晚的接收起始时刻,作为第二时刻;

第三确定模块,用于确定以所述第一时刻和所述第二时刻为端点的时间区间的二分点对应的时刻,作为第三时刻;

主设备确定模块,用于将与所述第三时刻之间的时长最小的接收起始时刻对应的输入设备,确定为所述主输入设备。

在一些实施例中,所述第一发送子模块,具体用于:

在获取到的接收结束时刻的基础上增加所述预设时长,得到第四时刻;

若所述第四时刻位于预设时间区间之外,则确定所述第四时刻为帧序号更新时刻;其中,所述预设时间区间的中心为所述统一发送时刻;

若所述第四时刻位于所述预设时间区间之内,则将不早于所述预设时间区间的终止时刻的第五时刻,确定为帧序号更新时刻。

在一些实施例中,所述装置还包括:

第四确定模块,用于若自身不是所述主输入设备,且在从自身的接收端口接收到下一个视频帧之前,未基于所述主输入设备发送的所述帧序号更新时刻确定所述第一帧序号,则在从自身的接收端口接收到下一个视频帧时确定所述第一帧序号。

本申请实施例的第四方面,提供了一种电子设备,包括:

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述任一所述的视频传输方法。

本申请实施例的第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的视频传输方法。

本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的视频传输方法。

本申请实施例有益效果:

本申请实施例提供的一种视频传输方法,该方法应用于目标输入设备,目标输入设备为视频传输系统中的任一输入设备,视频传输系统还包括除目标输入设备以外的其他输入设备,该方法包括:从自身的接收端口接收第一视频帧,并为接收到的第一视频帧设置对应的帧序号;获取帧序号更新时刻;其中,帧序号更新时刻为基于在指定输入设备对应的接收结束时刻的基础上增加预设时长得到的,且帧序号更新时刻位于各输入设备从各自的接收端口接收第一视频帧的接收结束时刻之后;指定输入设备对应的接收结束时刻表示:指定输入设备从自身的接收端口接收第一视频帧的接收结束时刻;各输入设备接收到的各第一视频帧在源端的原始视频图像中对应的时间戳相同;当达到帧序号更新时刻时,按照为接收到的视频帧设置帧序号的方式,确定第一帧序号;其中,第一帧序号用于指示下一次发送的视频帧;当达到统一发送时刻时,发送第一帧序号对应的视频帧;其中,统一发送时刻表示视频传输系统中所有输入设备统一发送视频帧的时刻。

基于上述处理,由于帧序号更新时刻是基于在指定输入设备对应的接收结束时刻的基础上增加预设时长得到的,且位于各输入设备从各自的接收端口接收第一视频帧的接收结束时刻之后,使得各输入设备可以在同一时刻确定第一帧序号,且在该时刻已完成第一视频帧的接收。相应的,各输入设备在统一发送时刻,发送第一帧序号对应的视频帧,也就能够使得各输入设备在同一时刻发送帧序号一致的视频帧,从而可以避免多个视频显示终端显示的视频图像出现不同步的情况。

当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。

图1为本申请实施例提供的一种输入设备接收并发送视频帧的示意图;

图2为本申请实施例提供的一种视频传输方法的流程示意图;

图3为本申请实施例提供的另一种视频传输方法的流程示意图;

图4为本申请实施例提供的一种输入设备接收视频帧的示意图;

图5为本申请实施例提供的一种确定第一帧序号的流程示意图;

图6为本申请实施例提供的一种视频传输系统的结构示意图;

图7为本申请实施例提供的一种输入设备交互的结构示意图;

图8为本申请实施例提供的一种视频传输装置的结构图;

图9为本申请实施例提供的一种电子设备的结构图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本申请保护的范围。

相关技术中,视频传输系统中包括多个输入设备,每一输入设备对应源端发送的一路视频。针对任一输入设备,当该输入设备接收完一个视频帧时,该输入设备可以确定用于指示下一次发送的视频帧的帧序号。由于各输入设备开始接收视频帧的时刻之间存在时间差,也就导致各输入设备接收完视频帧的时刻之间存在时间差,相应的,各输入设备确定帧序号的时刻之间也存在时间差,进而,当达到统一发送时刻时,若各输入设备分别发送确定出的帧序号对应的视频帧,则会导致各输入设备发送帧序号不一致的视频帧,使得多个视频显示终端显示的视频图像出现不同步的情况。

如图1所示,图1为本申请实施例提供的一种输入设备接收并发送视频帧的示意图。图1中,各输入设备可以从源端获取视频帧,并分别向各自对应的视频显示终端发送视频帧,各输入设备在同一时间轴下工作。在图1中,输入设备#0在a0时刻开始接收视频帧,并设置其帧序号为1,此时,输入设备#0确定的下一次发送的视频帧的帧序号为0。在b0时刻,输入设备#0完成帧序号为1的视频帧的接收,此时,输入设备#0确定的下一次发送的视频帧的帧序号为1。进而,在统一发送时刻c,输入设备#0发送帧序号为1的视频帧。后续,输入设备#0在a’0时刻开始接收下一视频帧,并设置其帧序号为2。

同理,输入设备#1在a1时刻开始接收视频帧,并设置其帧序号为1,此时,输入设备#1确定的下一次发送的视频帧的帧序号为0。因此,在统一发送时刻c,输入设备#1发送帧序号为0的视频帧。后续,在b1时刻,输入设备#1完成帧序号为1的视频帧的接收,此时,输入设备#1确定的下一次发送的视频帧的帧序号为1。输入设备#1在a’1时刻开始接收下一视频帧,并设置其帧序号为2。

输入设备#n在an时刻开始接收视频帧,并设置其帧序号为1,此时,输入设备#n确定的下一次发送的视频帧的帧序号为0。在bn时刻,输入设备#n完成帧序号为1的视频帧的接收,此时,输入设备#n确定的下一次发送的视频帧的帧序号为1。进而,在统一发送时刻c,输入设备#n发送帧序号为1的视频帧。后续,输入设备#n在a’n时刻开始接收下一视频帧,并设置其帧序号为2。

可见,在统一发送时刻c,各输入设备会发送帧序号不一致的视频帧,会导致各输入设备对应的视频显示终端显示的视频图像出现不同步的问题。

为了解决上述问题,本申请实施例提供了一种视频传输方法,该方法应用于目标输入设备,目标输入设备为视频传输系统中的任一输入设备,视频传输系统还包括除目标输入设备以外的其他输入设备,各输入设备之间可以通过以太网、串口、USB(UniversalSerial Bus,通用串行总线),或硬件连线等方式进行数据通信。参见图2,图2为本申请实施例提供的一种视频传输方法的流程示意图,该方法可以包括以下步骤:

S201:从自身的接收端口接收第一视频帧,并为接收到的第一视频帧设置对应的帧序号。

S202:获取帧序号更新时刻。

其中,帧序号更新时刻为基于在指定输入设备对应的接收结束时刻的基础上增加预设时长得到的,且帧序号更新时刻位于各输入设备从各自的接收端口接收第一视频帧的接收结束时刻之后;指定输入设备对应的接收结束时刻表示:指定输入设备从自身的接收端口接收第一视频帧的接收结束时刻;各输入设备接收到的各第一视频帧在源端的原始视频图像中对应的时间戳相同。

S203:当达到帧序号更新时刻时,按照为接收到的视频帧设置帧序号的方式,确定第一帧序号。

其中,第一帧序号用于指示下一次发送的视频帧。

S204:当达到统一发送时刻时,发送第一帧序号对应的视频帧。

其中,统一发送时刻表示视频传输系统中所有输入设备统一发送视频帧的时刻。

基于上述处理,由于帧序号更新时刻是基于在指定输入设备对应的接收结束时刻的基础上增加预设时长得到的,且位于各输入设备从各自的接收端口接收第一视频帧的接收结束时刻之后,使得各输入设备可以在同一时刻确定第一帧序号,且在该时刻已完成第一视频帧的接收。相应的,各输入设备在统一发送时刻,发送第一帧序号对应的视频帧,也就能够使得各输入设备在同一时刻发送帧序号一致的视频帧,从而可以避免多个视频显示终端显示的视频图像出现不同步的情况。

针对步骤S201,源端可以基于原始视频图像得到多路视频,得到的视频的数目与输入设备的数目相同,即,一路视频对应一个输入设备。

例如,源端得到的多路视频相同。也就是说,源端可以分别向每一输入设备发送原始视频图像中的视频帧。该方式下,各输入设备接收到的各第一视频帧为原始视频图像中的同一个视频帧,即,各输入设备接收到的各第一视频帧在原始视频图像中对应的时间戳相同。

又例如,源端得到的多路视频不相同。如,针对原始视频图像中的每一视频帧,源端可以按照输入设备的数目将该视频帧划分为多个图像区域,也就可以得到多个路视频。一路视频包含原始视频图像中一个图像区域的视频画面。该方式下,各输入设备接收到的各第一视频帧为原始视频图像中一个视频帧的不同图像区域,即,各输入设备接收到的各第一视频帧在原始视频图像中对应的时间戳相同。

每一输入设备均可以从自身的接收端口依次接收源端发送的一路视频中的各视频帧。源端发送的各路视频可以相同,也可以不同。例如,若各路视频不同,则各路视频可以对应同一个显示画面中的不同区域,进而,使得从各输入设备获取视频帧的设备(即本申请中的输出设备)可以呈现该完整的显示画面。

例如,源端可以为提供多路视频的视频服务器。在本申请中,针对每一视频帧,开始接收该视频帧的时刻可以称为接收起始时刻,相应的,完成接收该视频帧的时刻可以称为接收结束时刻。

各输入设备为接收到的视频帧设置帧序号的方式可以相同,也可以不同。

例如,每一输入设备可以基于预先设置的帧序号集合中的数值,以循环的方式为接收到的视频帧设置对应的帧序号。例如,帧序号的集合可以为[0,1,2]。在从源端接收第一个视频帧时,可以设置该视频帧的帧序号为0,在从源端接收第二个视频帧时,可以设置该视频帧的帧序号为1,在从源端接收第三个视频帧时,可以设置该视频帧的帧序号为2,在从源端接收第四个视频帧时,可以设置该视频帧的帧序号为0,以此类推。

或者,每一输入设备也可以基于自然数递增的方式为接收到的视频帧设置对应的帧序号。例如,在从源端接收第一个视频帧时,可以设置该视频帧的帧序号为0,在从源端接收第二个视频帧时,可以设置该视频帧的帧序号为1,在从源端接收第三个视频帧时,可以设置该视频帧的帧序号为2,在从源端接收第四个视频帧时,可以设置该视频帧的帧序号为3。

针对步骤S202,帧序号更新时刻表示:输入设备确定下一次发送的视频帧的帧序号的时刻。

指定输入设备可以为视频传输系统中的任一输入设备。

例如,指定输入设备可以为该视频传输系统初始化时,技术人员根据当前的业务需求预先设置的。也就是说,在该视频传输系统对视频进行传输的过程中,指定输入设备可以不变。或者,指定输入设备可以为各输入设备在从源端接收到每一视频帧时,按照第一预设选举方式从各输入设备中确定出的一个输入设备。也就是说,在该视频传输系统对视频进行传输的过程中,指定输入设备可以改变。

一种实现方式中,可以基于在指定输入设备从其接收端口接收第一视频帧接收结束时刻的基础上增加预设时长得到帧序号更新时刻。相应的,指定输入设备可以向其他输入设备发送得到的帧序号更新时刻。在该方式下,指定输入设备就是本申请实施例中的主输入设备。关于主输入设备将在后续实施例中详细介绍。例如,预设时长可以为5微秒。

另一种实现方式中,帧序号更新时刻也可以为:除指定输入设备以外的其他任一输入设备基于在指定输入设备接收第一视频帧的接收结束时刻的基础上增加预设时长得到。即,指定输入设备可以向该任一输入设备发送其接收第一视频帧的接收结束时刻,该任一输入设备在接收到该接收结束时刻后,可以在该接收结束时刻的基础上增加预设时长得到帧序号更新时刻。相应的,该任一输入设备可以向其他输入设备发送帧序号更新时刻。

又一种实现方式中,指定输入设备也可以向其他输入设备发送指定输入设备接收第一视频帧的接收结束时刻。相应的,其他每一输入设备可以在指定输入设备接收第一视频帧的接收结束时刻的基础上增加预设时长得到帧序号更新时刻,且指定输入设备也可以在接收第一视频帧的接收结束时刻的基础上增加预设时长得到帧序号更新时刻。

针对步骤S203,每一输入设备确定第一帧序号的方式,与该输入设备为接收到的视频帧设置帧序号的方式一致。例如,若输入设备在接收视频帧时,基于帧序号集合[0,1,2],以循环的方式为接收到的视频帧设置对应的帧序号,则该输入设备在第一次达到帧序号更新时刻时,可以确定第一帧序号为0,在第二次达到帧序号更新时刻时,可以确定第一帧序号为1,在第三次达到帧序号更新时刻时,可以确定第一帧序号为2,在第四次达到帧序号更新时刻时,可以确定第一帧序号为0,以此类推。

针对步骤S204,统一发送时刻用于指示各输入设备在该时刻发送视频帧。视频传输系统中的各输入设备对应的统一发送时刻相同。也就是说,各输入设备在同一时间轴下的统一发送时刻,发送视频帧。

在一个实施例中,指定输入设备为主输入设备。参见图3,在图2的基础上,图3为本申请实施例提供的另一种视频传输方法的流程示意图,步骤S202包括:

S2021:若自身为主输入设备,则获取从自身的接收端口接收第一视频帧的接收结束时刻;基于在获取到的接收结束时刻的基础上增加预设时长,得到帧序号更新时刻,并向其他输入设备发送帧序号更新时刻。

和/或,

S2022:若自身不是主输入设备,则接收主输入设备发送的帧序号更新时刻。

其中,主输入设备可以为视频传输系统中的任一输入设备,主输入设备用于确定帧序号更新时刻。主输入设备可以获取从自身的接收端口接收第一视频帧的接收结束时刻,基于在获取到的接收结束时刻的基础上增加预设时长得到帧序号更新时刻,并向其他输入设备发送帧序号更新时刻。在该方式下,主输入设备就是本申请中的指定输入设备。在本申请,除主输入设备以外的输入设备可以称为从输入设备。

一种实现方式中,主输入设备可以为该视频传输系统初始化时,技术人员根据当前的业务需求预先设置的。也就是说,在该视频传输系统对视频进行传输的过程中,主输入设备可以不变。

另一种实现方式中,主输入设备可以为各输入设备在从源端接收到每一视频帧时,按照第二预设选举方式从各输入设备中确定出的一个输入设备。也就是说,在该视频传输系统对视频进行传输的过程中,主输入设备可以改变。

基于上述处理,由主输入设备统一确定帧序号更新时刻,能够保证帧序号更新时刻准确性,且无需每一输入设备均计算帧序号更新时刻,降低整个系统的数据计算量。

在一个实施例中,该方法还包括:

步骤一:在从自身的接收端口接收到第一视频帧时,向其他输入设备发送从自身的接收端口接收第一视频帧的接收起始时刻。

步骤二:确定各输入设备从各自的接收端口接收第一视频帧的接收起始时刻中最早的接收起始时刻,作为第一时刻,以及确定各输入设备从各自的接收端口接收第一视频帧的接收起始时刻中最晚的接收起始时刻,作为第二时刻。

步骤三:确定以第一时刻和第二时刻为端点的时间区间的二分点对应的时刻,作为第三时刻。

步骤四:将与第三时刻之间的时长最小的接收起始时刻对应的输入设备,确定为主输入设备。

例如,针对任一输入设备,该输入设备在从自身的接收端口接收到第一视频帧时,可以向其他输入设备发送自身接收第一视频帧的接收起始时刻。也就是说,每一输入设备均可以接收到其他输入设备发送的接收第一视频帧的接收起始时刻,也就可以得到系统中各输入设备接收第一视频帧的接收起始时刻。即,每一输入设备均可以获取视频传输系统中所有输入设备接收第一视频帧的接收起始时刻。进而,每一输入设备均可以基于所有输入设备的接收起始时刻,按照第二预设选举方式确定主输入设备。由于各输入设备确定主输入设备的方式相同,因此,各输入设备确定出的主输入设备也相同。

基于上述处理,各输入设备可以互相发送自身接收第一视频帧的接收起始时刻,以选举产生主输入设备,使得从输入设备能够接收到选举出的主输入设备发送的帧序号更新时刻。相对于预先设置主输入设备的方式,能够提高各输入设备获取到帧序号更新时刻的可靠性,进而,能够进一步避免多个视频显示终端显示的视频图像出现不同步的情况。

针对每一输入设备,在该输入设备获取到所有输入设备的接收起始时刻后,可以确定各输入设备的接收起始时刻中最早的接收起始时刻(即第一时刻),以及各输入设备的接收起始时刻中最晚的接收起始时刻(即第二时刻)。

第三时刻为以第一时刻和第二时刻为端点的时间区间的二分点对应的时刻。即,第三时刻位于第一时刻之后,第二时刻之前,且第一时刻和第三时刻的时间差与第三时刻与第二时刻的时间差相同。确定各输入设备的接收起始时刻与第三时刻之间的时长,即,计算各输入设备的接收起始时刻与第三时刻之间的时间差。进而,可以将时间差最小的接收起始时刻对应的输入设备,确定为主输入设备。

另外,还可以对各输入设备确定出的主输入设备进行校验。例如,每一输入设备在确定主输入设备后,可以向其他输入设备发送自身确定出的主输入设备的设备信息。例如,主输入设备的身份标识。若存在任一输入设备接收到的主输入设备的设备信息与自身确定的主输入设备的设备信息不一致,则该输入设备可以向其他输入设备发送错误提醒,相应的,各输入设备可以重新确定主输入设备。

基于上述处理,由于其他较大时间差对应的输入设备可能为异常的输入设备,因此,将时间差最小的接收起始时刻对应的输入设备确定为主输入设备,能够避免因输入设备异常而导致确定出的帧序号更新时刻异常的情况,进而,能够提高视频传输系统在对多输入视频进行显示时的容错能力。

如图4所示,图4为本申请实施例提供的一种输入设备接收视频帧的示意图。图4中,各输入设备在同一时间轴下工作。输入设备#0的接收起始时刻为a0,输入设备#1的接收起始时刻为a1,输入设备#i的接收起始时刻为ai,输入设备#j的接收起始时刻为aj,输入设备#n的接收起始时刻为an。其中,输入设备#n的接收起始时刻最早,即第一时刻为an;输入设备#j的接收起始时刻最晚,即第二时刻为aj。确定以第一时刻和第二时刻为端点的时间区间的二分点对应的时刻,即第三时刻为d。然后,可以将与第三时刻之间的时长最小的接收起始时刻对应的输入设备(即输入设备#1),确定为主输入设备。

另外,在实际的场景中,为了保证确定出的帧序号更新时刻的有效性,可以降低源端发送各路视频帧的时间差,使得各输入设备对应的接收起始时刻的时间差不大于输入设备接收视频帧的帧间隔的1/3。进而,能够保证对帧序号更新时刻进行校正的有效性。例如,针对图4,△t1、△t2、△tn均小于输入设备接收视频帧的帧间隔的1/3。其中,输入设备接收视频帧的帧间隔表示相邻两个视频帧的接收起始时刻的时间差,该时间差为源端发送的视频的帧率的倒数。例如,源端发送的视频的帧率为60fps,即源端每秒向各输入设备发送60个视频帧,相应的,各输入设备接收视频帧的帧间隔为1S/60,即16.6ms(毫秒)。

本申请中,主输入设备在接收第一视频帧的接收结束时刻的基础上增加预设时长的过程,可以称为一次校准。例如,当完成第一视频帧的接收时,即,达到第一视频帧的接收结束时刻时,主输入设备可以在该接收结束时刻的基础上增加预设时长,得到帧序号更新时刻。

预设时长的大小可以由技术人员根据当前的业务需求确定,使得一次校准得到的第四时刻位于各输入设备接收第一视频帧的接收结束时刻之后,且位于主输入设备接收下一帧的接收起始时刻之前。

例如,可以在接收第一视频帧的接收起始时刻的基础上增加输入设备接收视频帧的帧间隔的时长,得到输入设备接收下一帧的接收起始时刻。其中,源端发送各路视频的帧率相同。

在一个实施例中,上述步骤S2021,包括:

步骤1:在获取到的接收结束时刻的基础上增加预设时长,得到第四时刻。

步骤2:若第四时刻位于预设时间区间之外,则确定第四时刻为帧序号更新时刻。

其中,预设时间区间的中心为统一发送时刻。

步骤3:若第四时刻位于预设时间区间之内,则将不早于预设时间区间的终止时刻的第五时刻,确定为帧序号更新时刻。

预设时间区间的中心为统一发送时刻。例如,可以以统一发送时刻向前延伸抖动时长得到预设时间区间的起始时刻,以统一发送时刻向后延伸抖动时长得到预设时间区间的终止时刻。相应的,在本申请中,预设时间区间也可以称为抖动窗口。例如,抖动时长可以为1微秒。

在实际场景中,虽然为各输入设备设置了统一发送时刻,然而,在各输入设备按照统一发送时刻发送视频帧时,实际的发送时刻(可以称为发送起始时刻)之间会存在一定误差,即,各输入设备真实的发送起始时刻可能并不一致。因此,可以基于统一发送时刻确定预设时间区间,使得各输入设备真实的发送起始时刻均位于预设时间区间内。

若一次校准后得到的第四时刻位于预设时间区间内,可能存在真实的发送起始时刻位于第四时刻之前的输入设备,以及存在真实的发送起始时刻位于第四时刻之后的输入设备,也就会导致有的输入设备确定第一帧序号后,再发送视频帧,而有的输入设备发送视频帧后,再确定第一帧序号,也就会导致各输入设备发送帧序号不一致的视频帧,使得多个视频显示终端显示的视频图像出现不同步的情况。

因此,为了避免各输入设备的真实的发送起始时刻之间存在时间差所产生的影响,可以再次进行校准,即,将帧序号更新时刻校准至预设时间区间外,该过程可以称为二次校准。

例如,可以将预设时间区间的终止时刻确定为帧序号更新时刻;或者,也可以将预设时间区间的终止时刻之后,且主输入设备接收下一帧的接收起始时刻之前的任一时刻确定为帧序号更新时刻。

基于上述处理,将帧序号更新时刻校准至预设时间区间外,使得各输入设备均在发送视频帧后,再确定第一帧序号,也就能够统一各输入设备确定第一帧序号的时机,进而,能够避免各输入设备发送帧序号不一致的视频帧,以避免多个视频显示终端显示的视频图像出现不同步的情况。

如图5所示,图5为本申请实施例提供的一种确定第一帧序号的流程示意图。

S501:等待接收起始时刻。

即,各输入设备接收第一视频帧,并向其他输入设备发送自身接收第一视频帧的接收起始时刻,进而,可以确定出主输入设备。

S502:主输入设备获取第一视频帧的接收结束时刻VIN_T_end。

S503:主输入设备将接收结束时刻VIN_T_end向后延迟△t。

主输入设备进行一次校准,即,主输入设备在接收第一视频帧的接收结束时刻的基础上增加预设时长△t,得到延迟时刻(即本申请中的第四时刻)。

S504:判断延迟时刻是否位于抖动窗口内。

判断第四时刻是否位于抖动窗口(即本申请中的预设时间区间)内,若第四时刻位于预设时间区间之内,则执行步骤S506;若第四时刻位于预设时间区间之外,则执行步骤S505。

S505:确定主输入设备的接收结束时刻向后延迟△t的延迟时刻为帧序号更新时刻。

S506:确定抖动窗口后沿对应的时刻SEND_T_back为帧序号更新时刻。

主输入设备进行二次校准,即,获取抖动窗口后沿对应的时刻SEND_T_back。抖动窗口后沿对应的时刻也就是本申请中的预设时间区间的终止时刻。

S507:确定帧序号。

即,主输入设备向其他输入设备发送帧序号更新时刻,进而,当达到该帧序号更新时刻时,各输入设备可以在该时刻确定第一帧序号。

S508:校准结束。

后续,重复上述步骤S501-S507,各输入设备在接收到新的视频帧时,重新确定主输入设备,并确定第一帧序号。

在一个实施例中,该方法还包括:

若自身不是主输入设备,且在从自身的接收端口接收到下一个视频帧之前,未基于主输入设备发送的帧序号更新时刻确定第一帧序号,则在从自身的接收端口接收到下一个视频帧时确定第一帧序号。

针对每一输入设备,在开始接收第一视频帧后,若该输入设备确定自身不是主输入设备,可以接收主输入设备发送的帧序号更新时刻。

然而,主输入设备在进行一次校准时,可能会将帧序号更新时刻确定为该输入设备接收下一帧的接收起始时刻之后的一个时刻。另外,主输入设备在进行一次校准以及二次校准时,也可能会将帧序号更新时刻确定为该输入设备接收下一帧的接收起始时刻之后的一个时刻。

上述两种情况,会导致该输入设备在开始接收下一帧时,并未基于主输入设备发送的帧序号更新时刻对确定第一帧序号。因此,为了使自身与其他输入设备在同一时刻发送帧序号一致的视频帧,则该输入设备可以主动确定第一帧序号。

另外,与主输入设备之间的通信故障等原因,会导致该输入设备未接收到主输入设备发送的帧序号更新时刻,也就使得该输入设备在接收到下一个视频帧之前未确定第一帧序号。因此,为了使自身与其他输入设备在同一时刻发送帧序号一致的视频帧,则该输入设备可以主动确定第一帧序号。

基于上述处理,能够实现从输入设备主动确定第一帧序号,使得各输入设备在同一时刻发送帧序号一致的视频帧,从而可以避免多个视频显示终端显示的视频图像出现不同步的情况。

基于相同的发明构思,本申请实施例还提供了一种视频传输系统,该视频传输系统包括多个输入设备,以及与每一输入设备对应的输出设备;

每一输入设备,用于执行上述实施例中的任一视频传输方法的步骤;

每一输出设备,用于接收对应的输入设备发送的视频帧,并进行显示。

如图6所示,图6为本申请实施例提供的一种视频传输系统的结构示意图。该视频传输系统包括源端、多个输入设备、视频数据交换网络、多个输出设备和多个视频显示终端。各输入设备从各自的接收端口接收到视频帧时,可以向其他输入设备发送接收到视频帧的接收起始时刻。进而,基于各输入设备的接收起始时刻,确定主输入设备,例如,为输入设备#0。如图7所示,图7为本申请实施例提供的一种输入设备交互的结构示意图,图7中,主输入设备(即输入设备#0)可以与其他输入设备(输入设备#1-输入设备#n)进行数据通信。

当达到各输入设备对应的统一发送时刻时,各输入设备可以获取第一帧序号,通过视频数据交换网络向对应的输出设备发送第一帧序号对应的视频帧。每一输出设备与每一视频显示终端相连接,各输出设备在接收到对应的视频帧后,使对应的视频显示终端在统一显示时刻显示视频图像。各输入设备与各输出设备在同一时间轴下工作,各输入设备的统一发送时刻与各输出设备的输出显示时刻一致。

基于上述处理,输出设备在接收到输入设备发送的视频帧后,无需进行处理,可以将获取的视频帧存储在显存中,多个视频显示终端能够直接按照输出设备接收到的视频帧进行显示,最终呈现完整的显示画面。

基于相同的发明构思,本申请实施例还提供了一种视频传输装置,该装置应用于目标输入设备,所述目标输入设备为视频传输系统中的任一输入设备,所述视频传输系统还包括除所述目标输入设备以外的其他输入设备。参见图8,图8为本申请实施例提供的一种视频传输装置的结构图,所述装置包括:

视频帧接收模块801,用于从自身的接收端口接收第一视频帧,并为接收到的第一视频帧设置对应的帧序号;

第一获取模块802,用于获取帧序号更新时刻;其中,所述帧序号更新时刻为基于在指定输入设备对应的接收结束时刻的基础上增加预设时长得到的,且所述帧序号更新时刻位于各输入设备从各自的接收端口接收第一视频帧的接收结束时刻之后;所述指定输入设备对应的接收结束时刻表示:所述指定输入设备从自身的接收端口接收第一视频帧的接收结束时刻;各输入设备接收到的各第一视频帧在源端的原始视频图像中对应的时间戳相同;

第一更新模块803,用于当达到所述帧序号更新时刻时,按照为接收到的视频帧设置帧序号的方式,确定第一帧序号;其中,所述第一帧序号用于指示下一次发送的视频帧;

视频帧发送模块804,用于当达到统一发送时刻时,发送所述第一帧序号对应的视频帧;其中,所述统一发送时刻表示所述视频传输系统中所有输入设备统一发送视频帧的时刻。

在一些实施例中,所述第一获取模块802,包括:

第一发送子模块,用于若自身为所述主输入设备,则获取从自身的接收端口接收第一视频帧的接收结束时刻;基于在获取到的接收结束时刻的基础上增加所述预设时长,得到帧序号更新时刻,并向其他输入设备发送所述帧序号更新时刻;

和/或,

第一接收子模块,用于若自身不是所述主输入设备,则接收所述主输入设备发送的帧序号更新时刻。

在一些实施例中,所述装置还包括:

第一发送模块,用于在从自身的接收端口接收到第一视频帧时,向其他输入设备发送从自身的接收端口接收第一视频帧的接收起始时刻;

第二确定模块,用于确定各输入设备从各自的接收端口接收第一视频帧的接收起始时刻中最早的接收起始时刻,作为第一时刻,以及确定各输入设备从各自的接收端口接收第一视频帧的接收起始时刻中最晚的接收起始时刻,作为第二时刻;

第三确定模块,用于确定以所述第一时刻和所述第二时刻为端点的时间区间的二分点对应的时刻,作为第三时刻;

主设备确定模块,用于将与所述第三时刻之间的时长最小的接收起始时刻对应的输入设备,确定为所述主输入设备。

在一些实施例中,所述第一发送子模块,具体用于:

在获取到的接收结束时刻的基础上增加所述预设时长,得到第四时刻;

若所述第四时刻位于预设时间区间之外,则确定所述第四时刻为帧序号更新时刻;其中,所述预设时间区间的中心为所述统一发送时刻;

若所述第四时刻位于所述预设时间区间之内,则将不早于所述预设时间区间的终止时刻的第五时刻,确定为帧序号更新时刻。

在一些实施例中,所述装置还包括:

第四确定模块,用于若自身不是所述主输入设备,且在从自身的接收端口接收到下一个视频帧之前,未基于所述主输入设备发送的所述帧序号更新时刻确定所述第一帧序号,则在从自身的接收端口接收到下一个视频帧时确定所述第一帧序号。

本申请实施例还提供了一种电子设备,如图9所示,包括:

存储器901,用于存放计算机程序;

处理器902,用于执行存储器901上所存放的程序时,实现上述实施例中任一视频传输方法的步骤。

并且上述电子设备还可以包括通信总线和/或通信接口,处理器902、通信接口、存储器901通过通信总线完成相互间的通信。

上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一视频传输方法的步骤。

在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一视频传输方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统、装置、电子设备、计算机可读存储介质,以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

相关技术
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 一种漆面识别方法、装置、存储介质及电子设备
  • 一种植物观赏方法、装置、电子设备和存储介质
  • 一种题目搜索、批改方法、装置、电子设备和存储介质
  • 一种虚拟形象视频播放方法、装置、电子设备及存储介质
  • 视频传输方法、系统、电子设备、存储介质及芯片系统
  • 视频传输系统和视频传输方法、装置及存储介质
技术分类

06120115931570