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

视频的播放方法、播放装置、电子设备及系统

文献发布时间:2023-06-19 12:11:54


视频的播放方法、播放装置、电子设备及系统

技术领域

本公开涉及直播领域,尤其涉及一种视频的播放方法、播放装置、电子设备、系统和计算机可读存储介质。

背景技术

相关技术中,解决多视角直播时需要切换直播间的方法,一般为客户端同时拉多路直播视频数据流,以供客户端切换播放不同视角的视频数据流。但是,在拉流的过程中,会发生随机延迟的问题,即多个源视频流数据并不是完全同步传输,导致不同视角的视频数据流在播放时存在时间不同步的问题。

因此,亟需一种可以解决不同视角的视频数据流在拉流时的时间延迟导致的播放不同步的问题。

发明内容

本公开提供一种视频的播放方法、播放装置、电子设备、系统和计算机可读存储介质,以至少解决相关技术中不同视角的视频数据流在拉流时的时间延迟导致的播放不同步的问题。本公开的技术方案如下:

根据本公开实施例的第一方面,提供一种视频的播放方法,包括:获取多个源视频流数据;横向拼接多个所述源视频流数据,得到拼接视频流数据,所述拼接视频流数据中,一帧的拼接图像包括多个子图像,所述多个子图像与所述多个源视频流数据中对应帧的图像对应;发送所述拼接视频流数据至客户端,以使所述客户端可切换地播放所述拼接视频流数据中的多个所述源视频流数据。

可选地,在所述横向拼接多个所述源视频流数据,得到拼接视频流数据步骤之前,所述方法还包括:获取各源视频的属性信息,所述源视频的属性信息至少包括各所述源视频的分辨率,在所述横向拼接多个所述源视频流数据,得到拼接视频流数据步骤之后,所述方法还包括:至少根据各所述源视频的分辨率以及多个所述源视频流数据的拼接顺序,确定各帧的所述拼接图像中的各所述子图像的位置信息并发送至所述客户端,以使得所述客户端根据所述位置信息切换地播放所述拼接视频流数据中的多个所述源视频流数据。

可选地,所述至少根据各所述源视频的分辨率以及多个所述源视频流数据的拼接顺序,确定各帧的所述拼接图像中的各所述子图像的位置信息步骤包括:确定第一个所述源视频流数据对应的所述子图像在所述拼接图像中的第一起始像素值为0、第一终点像素值为所述第一个所述源视频流数据的分辨率中的像素值;根据所述拼接顺序、第N个所述源视频流数据拼接之前的(N-1)个所述源视频流数据的像素值以及所述第N个所述源视频流数据的像素值,确定第N个所述源视频流数据对应的所述子图像在所述拼接图像中的第N起始像素值和第N终点像素值,N为大于等于2的正整数,所述拼接顺序为第一拼接顺序或者第二拼接顺序,其中,所述第一拼接顺序为按照像素高度方向拼接的顺序,所述第二拼接顺序为按照像素宽度方向拼接的顺序,所述子图像的位置信息包括所述子图像在对应的所述拼接图像中的起始像素值和终点像素值,所述像素值为像素高度或者像素宽度。

可选地,所述根据所述拼接顺序、第N个所述源视频流数据拼接之前的(N-1)个所述源视频流数据的像素值以及所述第N个所述源视频流数据的像素值,确定第N个所述源视频流数据对应的所述子图像在所述拼接图像中的第N起始像素值和第N终点像素值步骤包括:根据所述拼接顺序,确定在第N个所述源视频流数据拼接之前的(N-1)个所述源视频流数据;计算(N-1)个所述源视频流数据的分辨率中的像素值之和,得到第N起始像素值;计算(N-1)个所述源视频流数据的分辨率中的像素值与所述第N个所述源视频流数据的像素值之和,得到所述第N终点像素值;在所述拼接顺序为所述第一拼接顺序时,所述像素值为所述像素高度,在所述拼接顺序为所述第二拼接顺序时,所述像素值为所述像素宽度。

可选地,在所述至少根据各所述源视频的分辨率以及多个所述源视频流数据的拼接顺序,确定各帧的所述拼接图像中的各所述子图像的位置信息步骤之后,所述方法还包括:将各帧的所述拼接图像中的各所述子图像的位置信息发送至所述客户端,以使得所述客户端确定当前播放的所述源视频流数据和待播放的目标源视频流数据之间的位置关系,从而根据所述位置关系将当前播放的所述源视频流数据切换为所述目标源视频流数据。

可选地,所述源视频的属性信息包括各所述源视频的视角信息,所述方法还包括:将各所述源视频的视角信息发送至所述客户端,以使得所述客户端的显示界面上展示各所述视角信息对应的标识,所述视角信息为对应的拍摄视角的信息。

根据本公开实施例的第二方面,提供一种视频的播放方法,包括:接收拼接视频流数据,其中,所述拼接视频流数据为多个源视频流数据横向拼接得到的,所述拼接视频流数据中,一帧的拼接图像包括多个子图像,所述多个子图像与所述多个源视频流数据中对应帧的图像对应;响应于切换指令,将所述拼接视频流中当前播放的所述源视频流数据切换至目标源视频流数据,所述目标源视频流数据为所述切换指令对应的所述源视频流数据。

可选地,所述响应于切换指令,将所述拼接视频流当前播放的所述源视频流数据切换至与目标源视频流数据步骤之前,所述方法还包括:接收拼接视频对应的各帧的所述拼接图像中的各所述子图像的位置信息,所述位置信息为至少根据各所述源视频的分辨率以及多个所述源视频流数据的拼接顺序确定的。

可选地,所述响应于切换指令,将所述拼接视频流当前播放的所述源视频流数据切换至与目标源视频流数据步骤之前,所述方法还包括:接收各所述源视频的视角信息,所述视角信息为对应的拍摄视角的信息;在显示界面上展示所述视角信息对应的标识。

可选地,所述响应于切换指令,将所述拼接视频流中当前播放的所述源视频流数据切换至目标源视频流数据步骤包括:响应于所述切换指令,确定待播放的所述目标源视频流数据;根据所述目标源视频流数据对应的所述子图像和当前播放的所述源视频流数据对应的所述子图像的位置信息,确定所述目标源视频流数据和当前播放的所述源视频流数据的位置关系;根据所述位置关系,将当前播放的所述源视频流数据切换至所述目标源视频流数据。

根据本公开实施例的第三方面,提供一种视频的播放装置,包括:第一获取单元,被配置为执行获取多个源视频流数据;拼接单元,被配置为执行横向拼接多个所述源视频流数据,得到拼接视频流数据,所述拼接视频流数据中,一帧的拼接图像包括多个子图像,所述多个子图像与所述多个源视频流数据中对应帧的图像对应;第一发送单元,被配置为执行发送所述拼接视频流数据至客户端,以使所述客户端可切换地播放所述拼接视频流数据中的多个所述源视频流数据。

可选地,所述装置还包括:第二获取单元,被配置为执行在所述横向拼接多个所述源视频流数据,得到拼接视频流数据步骤之前,获取各源视频的属性信息,所述源视频的属性信息至少包括各所述源视频的分辨率;第一确定单元,被配置为执行在所述横向拼接多个所述源视频流数据,得到拼接视频流数据步骤之后,至少根据各所述源视频的分辨率以及多个所述源视频流数据的拼接顺序,确定各帧的所述拼接图像中的各所述子图像的位置信息并发送至所述客户端,以使得所述客户端根据所述位置信息切换地播放所述拼接视频流数据中的多个所述源视频流数据。

可选地,所述第一确定单元包括:第一确定模块,被配置为执行确定第一个所述源视频流数据对应的所述子图像在所述拼接图像中的第一起始像素值为0、第一终点像素值为所述第一个所述源视频流数据的分辨率中的像素值;第二确定模块,被配置为执行根据所述拼接顺序、第N个所述源视频流数据拼接之前的(N-1)个所述源视频流数据的像素值以及所述第N个所述源视频流数据的像素值,确定第N个所述源视频流数据对应的所述子图像在所述拼接图像中的第N起始像素值和第N终点像素值,N为大于等于2的正整数,所述拼接顺序为第一拼接顺序或者第二拼接顺序,其中,所述第一拼接顺序为按照像素高度方向拼接的顺序,所述第二拼接顺序为按照像素宽度方向拼接的顺序,所述子图像的位置信息包括所述子图像在对应的所述拼接图像中的起始像素值和终点像素值,所述像素值为像素高度或者像素宽度。

可选地,所述第二确定模块包括:确定子模块,被配置为执行根据所述拼接顺序,确定在第N个所述源视频流数据拼接之前的(N-1)个所述源视频流数据;第一计算子模块,被配置为执行计算(N-1)个所述源视频流数据的分辨率中的像素值之和,得到第N起始像素值;第二计算子模块,被配置为执行计算(N-1)个所述源视频流数据的分辨率中的像素值与所述第N个所述源视频流数据的像素值之和,得到所述第N终点像素值;其中,在所述拼接顺序为所述第一拼接顺序时,所述像素值为所述像素高度,在所述拼接顺序为所述第二拼接顺序时,所述像素值为所述像素宽度。

可选地,所述装置还包括:第二发送单元,被配置为执行在所述至少根据各所述源视频的分辨率以及多个所述源视频流数据的拼接顺序,确定各帧的所述拼接图像中的各所述子图像的位置信息步骤之后,将各帧的所述拼接图像中的各所述子图像的位置信息发送至所述客户端,以使得所述客户端确定当前播放的所述源视频流数据和待播放的目标源视频流数据之间的位置关系,从而根据所述位置关系将当前播放的所述源视频流数据切换为所述目标源视频流数据。

可选地,所述源视频的属性信息包括各所述源视频的视角信息,所述装置还包括:第三发送单元,被配置为执行将各所述源视频的视角信息发送至所述客户端,以使得所述客户端的显示界面上展示各所述视角信息对应的标识,所述视角信息为对应的拍摄视角的信息。

根据本公开实施例的第四方面,提供一种视频的播放装置,包括:第一接收单元,被配置为执行接收拼接视频流数据,其中,所述拼接视频流数据为多个源视频流数据横向拼接得到的,所述拼接视频流数据中,一帧的拼接图像包括多个子图像,所述多个子图像与所述多个源视频流数据中对应帧的图像对应;响应单元,被配置为执行响应于切换指令,将所述拼接视频流中当前播放的所述源视频流数据切换至目标源视频流数据,所述目标源视频流数据为所述切换指令对应的所述源视频流数据。

可选地,所述装置还包括:第二接收单元,被配置为执行所述响应于切换指令,将所述拼接视频流当前播放的所述源视频流数据切换至与目标源视频流数据步骤之前,接收拼接视频对应的各帧的所述拼接图像中的各所述子图像的位置信息,所述位置信息为至少根据各所述源视频的分辨率以及多个所述源视频流数据的拼接顺序确定的。

可选地,所述装置包括:第三接收单元,被配置为执行响应于切换指令,将所述拼接视频流当前播放的所述源视频流数据切换至与目标源视频流数据步骤之前,接收各所述源视频的视角信息,所述视角信息为对应的拍摄视角的信息;展示单元,被配置为执行在显示界面上展示所述视角信息对应的标识。

可选地,所述响应单元包括:响应模块,被配置为执行响应于所述切换指令,确定待播放的所述目标源视频流数据;第二确定模块,被配置为执行根据所述目标源视频流数据对应的所述子图像和当前播放的所述源视频流数据对应的所述子图像的位置信息,确定所述目标源视频流数据和当前播放的所述源视频流数据的位置关系;切换模块,被配置为执行根据所述位置关系,将当前播放的所述源视频流数据切换至所述目标源视频流数据。

根据本公开实施例的第五方面,提供了一种电子设备,包括处理器和用于存储所述处理器可执行指令的存储器,其中,所述处理器被配置为执行所述指令,以实现任一种所述的视频的播放方法。

根据本公开实施例的第六方面,提供了一种系统,包括服务器和客户端,其中,所述服务器被配置为执行任一种所述的视频的播放方法;所述客户端与所述服务器通信连接,所述客户端用于执行任一种所述的视频的播放方法。

可选地,所述系统还包括多个采集端,多个所述采集端分别与所述服务器通信连接,多个所述采集端用于采集多个源视频流数据,并将多个所述源视频流数据发送至所述服务器。

根据本公开实施例的第七方面,提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行任一种所述的视频的播放方法或者任一种所述的视频的播放方法。

根据本公开实施例的第八方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现任一种所述的视频的播放方法或者任一种所述的视频的播放方法。

本申请的所述视频的播放方法中,首先,获取多个源视频流数据;然后,对多个时间同步的所述源视频流数据进行横向拼接,得到拼接视频流数据;最后,将所述拼接视频流数据发送至客户端,客户端可以根据所述拼接视频流数据,切换地播放多个所述源视频流数据。所述方法中,通过将多个源视频流数据进行横向拼接,得到所述拼接视频流数据,之后,再将拼接视频流数据发送给客户端,这样使得客户端只需拉一路源视频流数据,无需同时拉多路流,这样避免了客户端同时拉多路视频数据流,进而避免了客户端在拉多路流时不同的源视频流数据可能有时间延迟而导致的播放不同步的问题,保证了多个所述源视频流数据可以同步播放,保证了客户端的播放效果较好,保证了客户端的体验感较好。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。

图1是根据一示例性实施例示出的一种实施环境的架构图。

图2是根据一示例性实施例示出的一种视频的播放方法的流程图。

图3是根据一示例性实施例示出的得到源视频流数据的拼接后的像素高度的示意图。

图4是根据另一示例性实施例示出的一种视频的播放方法的流程图。

图5是根据一示例性实施例示出的将当前播放的源视频流数据切换至目标源视频流数据的示意图。

图6是根据一示例性实施例示出的一种播放装置的框图。

图7是根据另一示例性实施例示出的一种播放装置的框图。

其中,附图说明如下:

01、电子设备;02、服务器;03、当前的源视频流数据;04、在前源视频流数据。

具体实施方式

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

正如背景技术所说,现有技术中不同视角的视频数据流在拉流时的时间延迟导致的播放不同步。

图1是根据一示例性实施例示出的一种实施环境的架构图,如图1所示,下述视频的播放方法可以应用于该实施环境中。该实施环境包括电子设备01和服务器02。其中,电子设备01和服务器02可以通过网络互连并通信。

其中,电子设备01可以为可切换地播放多个上述源视频流数据的设备。电子设备01可以是任何一种可与用户通过键盘、触摸板、触摸屏、遥控器、语音交互或手写设备等一种或多种方式进行人机交互的电子产品,例如手机、平板电脑、掌上电脑、个人计算机(Personal Computer,PC)、可穿戴设备、智能电视等。

服务器02可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。服务器02可以包括处理器、存储器以及网络接口等。

本领域技术人员应能理解上述电子设备和服务器仅为举例,其他现有的或今后可能出现的电子设备或服务器如可适用于本公开,也应包含在本公开保护范围以内,并在此以引用方式包含于此。

基于此,本公开的实施例提供了一种视频的播放方法、播放装置、电子设备、系统和计算机可读存储介质。

本公开实施例提供的视频的播放方法的执行主体可以为上述的电子设备或者服务器,也可以为该电子设备或者服务器中能够实现该视频的播放方法的功能模块和/或功能实体,具体的可以根据实际使用需求确定,本公开实施例不作限定。下面以执行主体为电子设备为例,对本公开实施例提供的视频的播放方法进行示例性的说明。

图2是根据一示例性实施例示出的一种视频的播放方法的流程图,如图2所示,该视频的播放方法可以用于服务器中,包括以下步骤。

在步骤S11中,获取多个源视频流数据;

在步骤S12中,横向拼接多个上述源视频流数据,得到拼接视频流数据,上述拼接视频流数据中,一帧的拼接图像包括多个子图像,上述多个子图像与上述多个源视频流数据中对应帧的图像对应;

在步骤S13中,发送上述拼接视频流数据至客户端,以使上述客户端可切换地播放上述拼接视频流数据中的多个上述源视频流数据。

本申请的上述视频的播放方法中,首先,获取多个源视频流数据;然后,对多个上述源视频流数据进行横向拼接,得到拼接视频流数据;最后,将上述拼接视频流数据发送至客户端,客户端可以根据上述拼接视频流数据,切换地播放多个上述源视频流数据。上述方法中,通过将多个源视频流数据进行横向拼接,得到上述拼接视频流数据,之后,再将拼接视频流数据发送给客户端,这样使得客户端只需拉一路源视频流数据,无需同时拉多路流,这样避免了客户端同时拉多路视频数据流,进而避免了客户端在拉多路流时不同的源视频流数据可能有时间延迟而导致的播放不同步的问题,保证了多个上述源视频流数据可以同步播放,保证了客户端的播放效果较好,保证了客户端的体验感较好。

需要说明的是,上述横向拼接就是指对预定数量的源视频流数据进行拼接,且使得拼接后的数据中的每一帧中有预定数量的子图像的拼接方式,其中,预定数量的子图像由预定数量的源视频流数据中对应帧的图像构成,且源视频流数据中对应帧的图像和子图像一一对应。

在实际的应用过程中,每个上述子图像均对应一个上述源视频流数据中对应帧的图像。

根据本申请的一种具体的实施例,在上述横向拼接多个上述源视频流数据,得到拼接视频流数据步骤之前,上述方法还包括:获取各源视频的属性信息,上述源视频的属性信息至少包括各上述源视频的分辨率,在上述横向拼接多个上述源视频流数据,得到拼接视频流数据步骤之后,上述方法还包括:至少根据各上述源视频的分辨率以及多个上述源视频流数据的拼接顺序,确定各帧的上述拼接图像中的各上述子图像的位置信息并发送至上述客户端,以使得上述客户端根据上述位置信息切换地播放上述拼接视频流数据中的多个上述源视频流数据。上述方法通过获取各源视频的属性信息,上述源视频的属性信息至少包括各上述源视频的分辨率,进一步地方便了后续多个上述源视频流数据的拼接,通过多个上述视频的属性信息,可以较为简单快捷地确定上述拼接视频流数据对应的拼接视频的属性信息。

当然,上述属性信息并不限于上述的获得方式,其还可以通过解析对应的上述源视频流数据来得到。

本申请的又一种具体的实施例中,上述至少根据各上述源视频的分辨率以及多个上述源视频流数据的拼接顺序,确定各帧的上述拼接图像中的各上述子图像的位置信息步骤包括:确定第一个上述源视频流数据对应的上述子图像在上述拼接图像中的第一起始像素值为0、第一终点像素值为上述第一个上述源视频流数据的分辨率中的像素值;根据上述拼接顺序、第N个上述源视频流数据拼接之前的(N-1)个上述源视频流数据的像素值以及上述第N个上述源视频流数据的像素值,确定第N个上述源视频流数据对应的上述子图像在上述拼接图像中的第N起始像素值和第N终点像素值,N为大于等于2的正整数,上述拼接顺序为第一拼接顺序或者第二拼接顺序,其中,上述第一拼接顺序为按照像素高度方向拼接的顺序,上述第二拼接顺序为按照像素宽度方向拼接的顺序,上述子图像的位置信息包括上述子图像在对应的上述拼接图像中的起始像素值和终点像素值,上述像素值为像素高度或者像素宽度。这样保证了较为简单且准确地确定各帧的上述拼接图像中的上述子图像的位置信息,并且,这样进一步地方便了后续根据上述位置信息切换地播放多个上述源视频流数据。

在实际的应用过程中,上述视频的属性信息还可以包括视频的亮度信息、颜色信息、大小信息以及像素值信息等信息。当然上述属性信息还可以包括视频其他的信息。

根据本申请的再一种具体的实施例,上述根据上述拼接顺序、第N个上述源视频流数据拼接之前的(N-1)个上述源视频流数据的像素值以及上述第N个上述源视频流数据的像素值,确定第N个上述源视频流数据对应的上述子图像在上述拼接图像中的第N起始像素值和第N终点像素值步骤包括:根据上述拼接顺序,确定在第N个上述源视频流数据拼接之前的(N-1)个上述源视频流数据;计算(N-1)个上述源视频流数据的分辨率中的像素值之和,得到第N起始像素值;计算(N-1)个上述源视频流数据的分辨率中的像素值与上述第N个上述源视频流数据的像素值之和,得到上述第N终点像素值;在上述拼接顺序为上述第一拼接顺序时,上述像素值为上述像素高度,在上述拼接顺序为上述第二拼接顺序时,上述像素值为上述像素宽度。上述方法中,根据拼接顺序,计算第N起始像素值和第N终点像素值,这样可以进一步地保证获取位置信息的高效且准确地获取。

一种具体的实施例中,如图3所示,假设当前的源视频流数据03(第N个上述源视频流数据)和在前源视频流数据04(第N个上述源视频流数据拼接之前的(N-1)个上述源视频流数据)的分辨率相同,均为720P,且当前的源视频流数据03(第N个上述源视频流数据)和在前源视频流数据04(第N个上述源视频流数据拼接之前的(N-1)个上述源视频流数据)在宽度方向上的像素数量均为1920,当前的源视频流数据03(第N个上述源视频流数据)在高度方向上的像素数量为1080,在前源视频流数据04(第N个上述源视频流数据拼接之前的(N-1)个上述源视频流数据)在高度方向上的像素数量为2160,那么,当前的上述源视频流数据的第一位置信息为3240,第二位置信息为2160。当然,上述分辨率以及上述像素数量还可以为其他的值。上述在前源视频流数据也不限于由两个源视频流数据拼接得到的源视频流数据,其还可以为由多个源视频流数据拼接得到的。

本申请的另一种具体的实施例中,在上述至少根据各上述源视频的分辨率以及多个上述源视频流数据的拼接顺序,确定各帧的上述拼接图像中的各上述子图像的位置信息步骤之后,上述方法还包括:将各帧的上述拼接图像中的各上述子图像的位置信息发送至上述客户端,以使得上述客户端确定当前播放的上述源视频流数据和待播放的目标源视频流数据之间的位置关系,从而根据上述位置关系将当前播放的上述源视频流数据切换为上述目标源视频流数据。这样进一步地保证了客户端可以根据上述位置信息灵活切换播放的源视频流数据,保证了该方法可以灵活适应不同客户端的需求,同时根据上述位置信息,可以进一步地保证客户端较为准确地切换播放想看的源视频流数据。

本申请的再一种具体的实施例中,上述源视频的属性信息包括各上述源视频的视角信息,上述方法还包括:将各上述源视频的视角信息发送至上述客户端,以使得上述客户端的显示界面上展示各上述视角信息对应的标识,上述视角信息为对应的拍摄视角的信息。这样可以更加方便用户进行不同视角的源视频的切换。

上述视频的属性信息至少包括各上述源视频流数据对应的视频的分辨率,在实际的应用过程中,多个上述源视频流数据对应的视频的分辨率可能不同,在这种情况下,为了便于对多个源视频流数据的横向拼接,本实施例中,在上述横向拼接多个上述源视频流数据,得到拼接视频流数据步骤之前,上述方法还包括:确定多个上述源视频流数据对应的视频的分辨率是否都相同;在多个上述源视频流数据对应的视频的分辨率不都相同的情况下,对至少一个上述源视频流数据对应的视频的分辨率进行调整,使得处理后的多个上述视频的分辨率相同。通过调整至少一个上述源视频流数据对应的视频的分辨率,使得处理后的多个上述视频的分辨率相同,这样进一步地保证了后续对多个上述源视频流数据的横向拼接过程较为简单,同时保证了拼接后的源视频流数据的播放效果较好。

根据本申请的又一种具体的实施例,上述视频的属性信息至少包括各上述源视频流数据对应的数据格式,在实际的应用过程中,多个上述源视频流数据对应的数据格式可能不同,在这种情况下,为了便于对多个源视频流数据的横向拼接,本实施例中,在上述横向拼接多个上述源视频流数据,得到拼接视频流数据步骤之前,上述方法还包括:确定多个上述源视频流数据的数据格式是否都相同;在多个上述源视频流数据的数据格式不都相同的情况下,对至少一个上述源视频流数据的数据格式进行转换,使得转换后的多个上述源视频流数据的数据格式相同。通过调整至少一个上述源视频流数据对应的数据格式,使得处理后的多个上述源视频流数据的数据格式相同,这样进一步地保证了后续对多个上述源视频流数据的横向拼接过程较为简单。

在实际的应用过程中,上述获取多个源视频流数据步骤包括:获取多个分辨率相同的上述源视频流数据。这样可以避免多个源视频流数据对应的视频的分辨率不同时,对分辨率进行调整的过程,从而进一步地保证了多个上述源视频流数据的拼接过程较为简单快捷。

在实际的应用过程中,上述获取多个源视频流数据步骤包括:获取多个数据格式相同的上述源视频流数据。这样可以避免多个源视频流数据对应的数据格式不同时,对数据格式进行转换的过程,从而进一步地保证了多个上述源视频流数据的拼接过程较为简单快捷。

当然,为了进一步地保证了上述方法的实现过程较为简单,在实际的应用过程中,还可以获取多个其他的属性信息相同的上述源视频流数据。

图4是根据另一示例性实施例示出的一种视频的播放方法的流程图,如图4所示,本实施例中的视频的播放方法可以用于客户端,包括以下步骤。

在步骤S21中,接收拼接视频流数据,其中,上述拼接视频流数据为多个源视频流数据横向拼接得到的,上述拼接视频流数据中,一帧的拼接图像包括多个子图像,上述多个子图像与上述多个源视频流数据中对应帧的图像对应;

在步骤S22中,响应于切换指令,将上述拼接视频流中当前播放的上述源视频流数据切换至目标源视频流数据,上述目标源视频流数据为上述切换指令对应的上述源视频流数据。

本申请的上述视频的播放方法中,首先,接收多个源视频流数据横向拼接得到的拼接视频流数据;然后响应于切换指令,将上述拼接视频流中当前播放的上述源视频流数据切换至目标源视频流数据。上述方法中,上述拼接视频流数据为多个源视频流数据横向拼接得到的,且响应于切换指令,可以将上述拼接视频流中当前播放的源视频流数据切换至目标源视频流数据,这样使得客户端只需拉一路源视频流数据,无需同时拉多路流,从而避免了客户端同时拉多路视频数据流,进而避免了客户端在拉多路流时不同的源视频流数据可能有时间延迟而导致的播放不同步的问题,保证了多个上述源视频流数据可以同步播放,保证了客户端的播放效果较好,保证了客户端的体验感较好。

需要说明的是,上述横向拼接就是指对预定数量的源视频流数据进行拼接,且使得拼接后的数据中的每一帧中有预定数量的子图像的拼接方式,其中,预定数量的子图像由预定数量的源视频流数据中对应帧的图像构成,且源视频流数据中对应帧的图像和子图像一一对应。

在实际的应用过程中,每个上述子图像均对应一个上述源视频流数据中对应帧的图像。

本申请的一种具体的实施例,多个上述视角信息可以同一个空间的不同视角的信息,也可以为不同空间的视角的信息。

本申请的另一种具体的实施例中,上述响应于切换指令,将上述拼接视频流当前播放的上述源视频流数据切换至与目标源视频流数据步骤之前,上述方法还包括:接收拼接视频对应的各帧的上述拼接图像中的各上述子图像的位置信息,上述位置信息为至少根据各上述源视频的分辨率以及多个上述源视频流数据的拼接顺序确定的。该方法中,根据位置信息可以进一步保证后续高效准确地将播放的源视频流数据切换为目标源视频流数据。

为了更加方便用户进行不同视角的源视频的切换,本申请的一种实施例中,上述响应于切换指令,将上述拼接视频流当前播放的上述源视频流数据切换至与目标源视频流数据步骤之前,上述方法还包括:接收各上述源视频的视角信息,上述视角信息为对应的拍摄视角的信息;在显示界面上展示上述视角信息对应的标识。

根据本申请的一种具体的实施例,上述响应于切换指令,将上述拼接视频流中当前播放的上述源视频流数据切换至目标源视频流数据步骤包括:响应于上述切换指令,确定待播放的上述目标源视频流数据;根据上述目标源视频流数据对应的上述子图像和当前播放的上述源视频流数据对应的上述子图像的位置信息,确定上述目标源视频流数据和当前播放的上述源视频流数据的位置关系;根据上述位置关系,将当前播放的上述源视频流数据切换至上述目标源视频流数据。上述方法根据上述目标源视频流数据和当前播放的上述源视频流数据的位置关系,可以高效准确地将上述拼接视频流中当前播放的上述源视频流数据切换至目标源视频流数据,保证了源视频流数据切换的灵活性以及准确性。

上述的上述目标源视频流数据对应的上述子图像和当前播放的上述源视频流数据对应的上述子图像的位置信息,可以根据上述内容中的“确定各帧的上述拼接图像中的上述子图像的位置信息”的具体过程来确定,具体内容不再赘述。

在实际的应用过程中,上述视频的属性信息还可以包括视频的亮度信息、颜色信息、大小信息以及像素值信息等信息。当然上述属性信息还可以包括视频其他的信息。

根据本申请的再一种具体的实施例,任意两个上述源视频流数据对应的两个视频的分辨率相同。这样保证了拼接形成上述拼接视频流数据的过程较为简单。

根据本申请的又一种具体的实施例,任意两个上述源视频流数据的数据格式相同。这样进一步地保证了拼接形成上述拼接视频流数据的过程较为简单。

在实际的应用过程中,为了进一步地简化上述拼接视频流数据的形成过程,任意两个上述源视频流数据的其他的属性信息相同。

图5示出了根据上述视频的播放方法进行源视频流数据切换的示意图。由图5可见,客户端可灵活地将上述拼接视频流中当前播放的上述源视频流数据切换至目标源视频流数据。

图6是根据一示例性实施例示出的一种播放装置框图。参照图6,该装置包括第一获取单元100、拼接单元101和第一发送单元102。

该第一获取单元100被配置为执行获取多个源视频流数据;

该拼接单元101被配置为执行横向拼接多个上述源视频流数据,得到拼接视频流数据,上述拼接视频流数据中,一帧的拼接图像包括多个子图像,上述多个子图像与上述多个源视频流数据中对应帧的图像对应;

该第一发送单元102被配置为执行发送上述拼接视频流数据至客户端,以使上述客户端可切换地播放上述拼接视频流数据中的多个上述源视频流数据。

本申请的上述播放装置中,通过上述第一获取单元获取多个源视频流数据;通过上述拼接单元对多个上述源视频流数据进行横向拼接,得到拼接视频流数据;通过上述第一发送单元将上述拼接视频流数据发送至客户端,客户端可以根据上述拼接视频流数据,切换地播放多个上述源视频流数据。上述装置中,通过将多个源视频流数据进行横向拼接,得到上述拼接视频流数据,之后,再将拼接视频流数据发送给客户端,这样使得客户端只需拉一路源视频流数据,无需同时拉多路流,这样避免了客户端同时拉多路视频数据流,进而避免了客户端在拉多路流时不同的源视频流数据可能有时间延迟而导致的播放不同步的问题,保证了多个上述源视频流数据可以同步播放,保证了客户端的播放效果较好,保证了客户端的体验感较好。

需要说明的是,上述横向拼接就是指对预定数量的源视频流数据进行拼接,且使得拼接后的数据中的每一帧中有预定数量的子图像的拼接方式,其中,预定数量的子图像由预定数量的源视频流数据中对应帧的图像构成,且源视频流数据中对应帧的图像和子图像一一对应。

在实际的应用过程中,每个上述子图像均对应一个上述源视频流数据中对应帧的图像。

根据本申请的一种具体的实施例,上述装置还包括第二获取单元,上述第二获取单元被配置为执行在上述横向拼接多个上述源视频流数据,得到拼接视频流数据步骤之前,获取各源视频的属性信息,上述源视频的属性信息至少包括各上述源视频的分辨率;第一确定单元,被配置为执行在上述横向拼接多个上述源视频流数据,得到拼接视频流数据步骤之后,至少根据各上述源视频的分辨率以及多个上述源视频流数据的拼接顺序,确定各帧的上述拼接图像中的各上述子图像的位置信息并发送至上述客户端,以使得上述客户端根据上述位置信息切换地播放上述拼接视频流数据中的多个上述源视频流数据。上述装置通过获取各源视频的属性信息,上述源视频的属性信息至少包括各上述源视频的分辨率,进一步地方便了后续多个上述源视频流数据的拼接,通过多个上述视频的属性信息,可以较为简单快捷地确定上述拼接视频流数据对应的拼接视频的属性信息。

当然,上述属性信息并不限于上述的获得方式,其还可以通过解析对应的上述源视频流数据来得到。

本申请的又一种具体的实施例中,上述第一确定单元包括:第一确定模块,被配置为执行确定第一个上述源视频流数据对应的上述子图像在上述拼接图像中的第一起始像素值为0、第一终点像素值为上述第一个上述源视频流数据的分辨率中的像素值;第二确定模块,被配置为执行根据上述拼接顺序、第N个上述源视频流数据拼接之前的(N-1)个上述源视频流数据的像素值以及上述第N个上述源视频流数据的像素值,确定第N个上述源视频流数据对应的上述子图像在上述拼接图像中的第N起始像素值和第N终点像素值,N为大于等于2的正整数,上述拼接顺序为第一拼接顺序或者第二拼接顺序,其中,上述第一拼接顺序为按照像素高度方向拼接的顺序,上述第二拼接顺序为按照像素宽度方向拼接的顺序,上述子图像的位置信息包括上述子图像在对应的上述拼接图像中的起始像素值和终点像素值,上述像素值为像素高度或者像素宽度。这样保证了较为简单且准确地确定各帧的上述拼接图像中的上述子图像的位置信息,并且,这样进一步地方便了后续根据上述位置信息切换地播放多个上述源视频流数据。

在实际的应用过程中,上述视频的属性信息还可以包括视频的亮度信息、颜色信息、大小信息以及像素值信息等信息。当然上述属性信息还可以包括视频其他的信息。

根据本申请的再一种具体的实施例,上述第二确定模块包括:确定子模块,被配置为执行根据上述拼接顺序,确定在第N个上述源视频流数据拼接之前的(N-1)个上述源视频流数据;第一计算子模块,被配置为执行计算(N-1)个上述源视频流数据的分辨率中的像素值之和,得到第N起始像素值;第二计算子模块,被配置为执行计算(N-1)个上述源视频流数据的分辨率中的像素值与上述第N个上述源视频流数据的像素值之和,得到上述第N终点像素值;其中,在上述拼接顺序为上述第一拼接顺序时,上述像素值为上述像素高度,在上述拼接顺序为上述第二拼接顺序时,上述像素值为上述像素宽度。上述装置中,根据拼接顺序,计算第N起始像素值和第N终点像素值,这样可以进一步地保证获取位置信息的高效且准确地获取。

一种具体的实施例中,如图3所示,假设当前的源视频流数据03和在前源视频流数据04的分辨率相同,均为720P,且当前的源视频流数据03和在前源视频流数据04在宽度方向上的像素数量均为1920,当前的源视频流数据03在高度方向上的像素数量为1080,在前源视频流数据04在高度方向上的像素数量为2160,那么,当前的上述源视频流数据的第一位置信息为3240,第二位置信息为2160。当然,上述分辨率以及上述像素数量还可以为其他的值。上述在前源视频流数据也不限于由两个源视频流数据拼接得到的源视频流数据,其还可以为由多个源视频流数据拼接得到的。

本申请的另一种具体的实施例中,上述装置还包括:第二发送单元,被配置为执行在上述至少根据各上述源视频的分辨率以及多个上述源视频流数据的拼接顺序,确定各帧的上述拼接图像中的各上述子图像的位置信息步骤之后,将各帧的上述拼接图像中的各上述子图像的位置信息发送至上述客户端,以使得上述客户端确定当前播放的上述源视频流数据和待播放的目标源视频流数据之间的位置关系,从而根据上述位置关系将当前播放的上述源视频流数据切换为上述目标源视频流数据。

本申请的再一种具体的实施例中,上述源视频的属性信息包括各上述源视频的视角信息,上述装置还包括:第三发送单元,被配置为执行将各上述源视频的视角信息发送至上述客户端,以使得上述客户端的显示界面上展示各上述视角信息对应的标识,上述视角信息为对应的拍摄视角的信息。这样可以更加方便用户进行不同视角的源视频的切换。

上述视频的属性信息至少包括各上述源视频流数据对应的视频的分辨率,在实际的应用过程中,多个上述源视频流数据对应的视频的分辨率可能不同,在这种情况下,为了便于对多个源视频流数据的横向拼接,本实施例中,上述装置还包括第二确定单元和调整单元,其中,上述第二确定单元被配置为执行在上述获取各源视频的属性信息,上述源视频的属性信息至少包括各上述源视频的分辨率,步骤之后,在上述横向拼接多个上述源视频流数据,得到包括拼接视频流数据步骤之前,确定多个上述源视频流数据对应的视频的分辨率是否都相同;上述调整单元被配置为执行在多个上述源视频流数据对应的视频的分辨率不都相同的情况下,对至少一个上述源视频流数据对应的视频的分辨率进行调整,使得处理后的多个上述视频的分辨率相同。通过调整至少一个上述源视频流数据对应的视频的分辨率,使得处理后的多个上述视频的分辨率相同,这样进一步地保证了后续对多个上述源视频流数据的横向拼接过程较为简单,同时保证了拼接后的源视频流数据的播放效果较好。

根据本申请的又一种具体的实施例,上述视频的属性信息至少包括各上述源视频流数据对应的数据格式,在实际的应用过程中,多个上述源视频流数据对应的数据格式可能不同,在这种情况下,为了便于对多个源视频流数据的横向拼接,本实施例中,上述装置还包括第三确定单元和转换单元,其中,上述第三确定单元被配置为执行在上述获取各源视频的属性信息,上述源视频的属性信息至少包括各上述源视频的分辨率,步骤之后,在上述横向拼接多个上述源视频流数据,得到包括拼接视频流数据步骤之前,确定多个上述源视频流数据的数据格式是否都相同;上述转换单元被配置为执行在多个上述源视频流数据的数据格式不都相同的情况下,对至少一个上述源视频流数据的数据格式进行转换,使得转换后的多个上述源视频流数据的数据格式相同。通过调整至少一个上述源视频流数据对应的数据格式,使得处理后的多个上述源视频流数据的数据格式相同,这样进一步地保证了后续对多个上述源视频流数据的横向拼接过程较为简单。

在实际的应用过程中,上述第一获取单元包括第一获取模块,上述第一获取模块被配置为执行获取多个分辨率相同的上述源视频流数据。这样可以避免多个源视频流数据对应的视频的分辨率不同时,对分辨率进行调整的过程,从而进一步地保证了多个上述源视频流数据的拼接过程较为简单快捷。

在实际的应用过程中,上述第一获取单元包括第二获取模块,上述第二获取模块被配置为执行获取多个数据格式相同的上述源视频流数据。这样可以避免多个源视频流数据对应的数据格式不同时,对数据格式进行转换的过程,从而进一步地保证了多个上述源视频流数据的拼接过程较为简单快捷。

当然,为了进一步地保证了上述装置的实现过程较为简单,在实际的应用过程中,还可以获取多个其他的属性信息相同的上述源视频流数据。

图5示出了根据上述视频的播放装置进行源视频流数据切换的示意图。由图5可见,客户端可灵活地将上述拼接视频流中当前播放的上述源视频流数据切换至目标源视频流数据。

图7是根据另一示例性实施例示出的一种播放装置框图。参照图7,该装置包括第一接收单元200和响应单元201。

该第一接收单元200被配置为执行接收拼接视频流数据,其中,上述拼接视频流数据为多个源视频流数据横向拼接得到的,上述拼接视频流数据中,一帧的拼接图像包括多个子图像,上述多个子图像与上述多个源视频流数据中对应帧的图像对应;

该响应单元201被配置为执行响应于切换指令,将上述拼接视频流中当前播放的上述源视频流数据切换至目标源视频流数据,上述目标源视频流数据为上述切换指令对应的上述源视频流数据。

本申请的上述播放装置中,通过上述第一接收单元接收多个源视频流数据横向拼接得到的拼接视频流数据;通过上述相应单元响应于切换指令,将上述拼接视频流中当前播放的上述源视频流数据切换至目标源视频流数据。上述装置中,上述拼接视频流数据为多个源视频流数据横向拼接得到的,且响应于切换指令,可以将上述拼接视频流中当前播放的源视频流数据切换至目标源视频流数据,这样使得客户端只需拉一路源视频流数据,无需同时拉多路流,从而避免了客户端同时拉多路视频数据流,进而避免了客户端在拉多路流时不同的源视频流数据可能有时间延迟而导致的播放不同步的问题,保证了多个上述源视频流数据可以同步播放,保证了客户端的播放效果较好,保证了客户端的体验感较好。

需要说明的是,上述横向拼接就是指对预定数量的源视频流数据进行拼接,且使得拼接后的数据中的每一帧中有预定数量的子图像的拼接方式,其中,预定数量的子图像由预定数量的源视频流数据中对应帧的图像构成,且源视频流数据中对应帧的图像和子图像一一对应。

在实际的应用过程中,每个上述子图像均对应一个上述源视频流数据中对应帧的图像。

本申请的一种具体的实施例,多个上述视角信息可以同一个空间的不同视角的信息,也可以为不同空间的视角的信息。

根据本申请的一种具体的实施例,上述装置还包括第二接收单元,上述第二接收单元被配置为执行上述响应于切换指令,将上述拼接视频流当前播放的上述源视频流数据切换至与目标源视频流数据步骤之前,接收拼接视频对应的各帧的上述拼接图像中的各上述子图像的位置信息,上述位置信息为至少根据各上述源视频的分辨率以及多个上述源视频流数据的拼接顺序确定的。上述装置,根据位置信息可以进一步保证后续高效准确地将播放的源视频流数据切换为目标源视频流数据。

本申请的另一种实施例中,上述装置包括第三接收单元,被配置为执行响应于切换指令,将上述拼接视频流当前播放的上述源视频流数据切换至与目标源视频流数据步骤之前,接收各上述源视频的视角信息,上述视角信息为对应的拍摄视角的信息;展示单元,被配置为执行在显示界面上展示上述视角信息对应的标识。这样可以更加方便用户进行不同视角的源视频的切换。

上述的上述目标源视频流数据对应的上述子图像和当前播放的上述源视频流数据对应的上述子图像的位置信息,可以根据上述内容中的“确定各帧的上述拼接图像中的上述子图像的位置信息”的具体过程来确定,具体内容不再赘述。

在实际的应用过程中,上述视频的属性信息还可以包括视频的亮度信息、颜色信息、大小信息以及像素值信息等信息。当然上述属性信息还可以包括视频其他的信息。

根据本申请的另一种具体的实施例,上述响应单元包括响应模块、第二确定模块和切换模块,其中,上述响应模块被配置为执行响应于上述切换指令,确定待播放的上述目标源视频流数据;上述第二确定模块被配置为执行根据上述目标源视频流数据的位置信息和当前播放的上述源视频流数据的位置信息,确定上述目标源视频流数据和当前播放的上述源视频流数据的位置关系;上述切换模块被配置为执行根据上述位置关系,将当前播放的上述源视频流数据切换至上述目标源视频流数据。这样进一步地保证了客户端可以简单且准确地将当前播放的上述源视频流数据切换至上述目标源视频流数据。

根据本申请的再一种具体的实施例,任意两个上述源视频流数据对应的两个视频的分辨率相同。这样保证了拼接形成上述拼接视频流数据的过程较为简单。

根据本申请的又一种具体的实施例,任意两个上述源视频流数据的数据格式相同。这样进一步地保证了拼接形成上述拼接视频流数据的过程较为简单。

在实际的应用过程中,为了进一步地简化上述拼接视频流数据的形成过程,任意两个上述源视频流数据的其他的属性信息相同。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

在示例性实施例中,还提供了一种电子设备,包括处理器和用于存储上述处理器可执行指令的存储器,其中,上述处理器被配置为执行上述指令,以实现任一种上述的视频的播放方法。

根据本申请的又一种示例性实施例,还提供了一种系统,包括服务器和客户端,其中,上述服务器被配置为执行任一种用于上述服务器中的上述视频的播放方法;上述客户端与上述服务器通信连接,上述客户端用于执行任一种用于上述客户端中的上述视频的播放方法。

本申请的上述系统中,包括服务器和客户端,上述服务器被配置为执行任一种用于上述服务器中的上述视频的播放方法;上述客户端与上述服务器通信连接,上述客户端用于执行任一种用于上述客户端中的上述视频的播放方法。上述系统中,通过将多个源视频流数据进行横向拼接,得到上述拼接视频流数据,之后,再将拼接视频流数据发送给客户端,这样使得客户端只需拉一路源视频流数据,无需同时拉多路流,这样避免了客户端同时拉多路视频数据流,进而避免了客户端在拉多路流时不同的源视频流数据可能有时间延迟而导致的播放不同步的问题,保证了多个上述源视频流数据可以同步播放,保证了客户端的播放效果较好,保证了客户端的体验感较好。

根据本申请的一种具体的实施例,上述系统还包括采集端,上述采集端与上述服务器通信连接,上述采集端用于采集多个源视频流数据,并将多个上述源视频流数据发送至上述服务器。

在实际的应用过程中,多个上述采集端的型号可以相同,也可以不同。

在示例性实施例中,还提供了一种计算机可读存储介质,当上述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行任一种上述的视频的播放方法或者任一种上述的视频的播放方法。

上述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。

在示例性实施例中,还提供一种计算机程序产品,包括计算机程序,上述计算机程序被处理器执行时实现任一种上述的视频的播放方法或者任一种上述的视频的播放方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

相关技术
  • 视频处理方法、用于视频播放的电子设备和视频播放系统
  • 视频播放方法、视频播放装置以及视频播放系统
技术分类

06120113207366