预制视频播放方法、服务器、终端、介质及系统
文献发布时间:2023-06-19 18:34:06
技术领域
本发明涉及网络信息技术领域,尤其涉及一种预制视频播放方法、云端服务器、云终端设备、计算机可读存储介质及预制视频播放系统。
背景技术
为了在云终端架构中实现预制视频流的图像显示,现有方案是,云端计算单元会先把预制视频流解码得到预制视频图像序列,然后将预制视频图像作为图像元素进行实时渲染并编码得到最终视频流。
现有方案的缺点是,对预制视频流进行解码、实时渲染和再编码的过程,会消耗大量运算资源,且所得到的新视频的质量低于原视频,降低了用户体验。
发明内容
本发明所要解决的技术问题是针对现有技术的上述不足,提供一种预制视频播放方法、云端服务器、云终端设备、计算机可读存储介质及预制视频播放系统,以解决现有技术在云终端架构中,实现预制视频流的图像显示,需要在云端对预制视频流进行解码、实时渲染和再编码,会消耗大量运算资源并降低视频质量的问题。
第一方面,本发明提供一种预制视频播放方法,应用于云端服务器,所述方法包括:
获取待播放的预制视频数据,并指定播放所述预制视频数据的显示位置和显示层级;
在确定云终端设备具有可以独立播放所述预制视频数据的第一视频播放通道后,将所述预制视频数据、所述显示位置和所述显示层级发送给所述云终端设备的所述第一视频播放通道,以使所述云终端设备通过所述第一视频播放通道按照所述显示位置和所述显示层级播放所述预制视频数据。
可选地,所述方法还包括:
获取与所述预制视频数据对应的待播放的预制音频数据;
如果没有检测到实时音频数据、且判断出所述云终端设备能够播放所述预制音频数据,则将所述预制音频数据发送给所述云终端设备,以使所述云终端设备播放所述预制音频数据。
可选地,所述获取与所述预制视频数据对应的待播放的预制音频数据之后,所述方法还包括:
如果检测到实时音频数据,则将所述预制音频数据与所述实时音频数据合成为所述云终端设备能够播放的第一音频数据;
如果没有检测到实时音频数据,进一步判断所述云终端设备是否能够播放所述预制音频数据,如果不能,则将所述预制音频数据转换为所述云终端设备能够播放的第二音频数据;
将所述第一音频数据或所述第二音频数据发送给所述云终端设备,以使所述云终端设备播放所述第一音频数据或所述第二音频数据。
可选地,所述获取待播放的预制视频数据,和所述获取与所述预制视频数据对应的待播放的预制音频数据,具体包括:
接收预制视频源发送的待播放的预制视频流,对所述预制视频流进行音视频分离,以获得待播放的预制视频数据和与所述预制视频数据对应的待播放的预制音频数据。
可选地,所述确定云终端设备具有可以独立播放所述预制视频数据的第一视频播放通道,具体包括:
如果判断出云终端设备能够播放所述预制视频数据、且所述预制视频数据的播放方式为全屏播放,则停止生成实时视频数据,并确定原来用于播放实时视频数据的视频播放通道为可以独立播放所述预制视频数据的第一视频播放通道;
如果判断出云终端设备能够播放所述预制视频数据、且所述预制视频数据的播放方式为非全屏播放,则进一步判断云终端设备当前是否具有空闲的视频播放通道,如果是,则确定至少一条空闲的视频播放通道为可以独立播放所述预制视频数据的第一视频播放通道。
可选地,所述确定至少一条空闲的视频播放通道为可以独立播放所述预制视频数据的第一视频播放通道之后,所述方法还包括:
获取待播放的实时视频数据;
将所述实时视频数据通过除所述第一视频播放通道之外的第二视频播放通道发送给所述云终端设备,以使所述云终端设备通过所述第二视频播放通道播放所述实时视频数据,并实现所述预制视频数据与所述实时视频数据叠加播放的效果。
可选地,所述获取待播放的预制视频数据,并指定播放所述预制视频数据的显示位置和显示层级之后,所述方法还包括:
如果判断出云终端设备不能够播放所述预制视频数据,则确定云终端设备没有可以独立播放所述预制视频数据的第一视频播放通道,并将所述预制视频数据转换为所述云终端设备能够播放的第一视频数据,和/或,
如果判断出所述预制视频数据的播放方式为非全屏播放、且云终端设备当前没有空闲的视频播放通道,则确定云终端设备没有可以独立播放所述预制视频数据的第一视频播放通道,并将所述预制视频数据与实时视频数据合成为所述云终端设备能够播放的第二视频数据;
将所述第一视频数据或所述第二视频数据发送给所述云终端设备,以使所述云终端设备播放所述第一视频数据或所述第二视频数据。
第二方面,本发明提供一种预制视频播放方法,应用于云终端设备,所述方法包括:
通过第一视频播放通道接收云端服务器发送的待播放的预制视频数据、以及指定播放所述预制视频数据的显示位置和显示层级,其中,所述预制视频数据、所述显示位置和所述显示层级是所述云端服务器在确定所述云终端设备具有可以独立播放所述预制视频数据的所述第一视频播放通道后发送的;
通过所述第一视频播放通道按照所述显示位置和所述显示层级播放所述预制视频数据。
可选地,所述方法还包括:
通过除所述第一视频播放通道之外的第二视频播放通道接收云端服务器发送的待播放的实时视频数据;
通过所述第二视频播放通道播放所述实时视频数据,并实现所述预制视频数据与所述实时视频数据叠加播放的效果。
可选地,所述方法还包括:
接收所述云端服务器发送的与所述预制视频数据对应的待播放的预制音频数据、与所述预制视频数据对应的待播放的预制音频数据与实时音频数据合成的第一音频数据、或与所述预制视频数据对应的待播放的预制音频数据转换的第二音频数据;
播放所述预制音频数据、所述第一音频数据或所述第二音频数据。
可选地,所述接收云端服务器发送的待播放的预制视频数据、以及指定播放所述预制视频数据的显示位置和显示层级之前,所述方法还包括:
向所述云端服务器提供所述云终端设备支持的视频编码算法列表,以使所述云端服务器根据所述视频编码算法列表,判断出所述云终端设备是否能够播放所述预制视频数据,进而确定所述云终端设备是否具有可以独立播放所述预制视频数据的第一视频播放通道;
向所述云端服务器提供所述云终端设备当前的多个视频播放通道状态,以使所述云端服务器根据所述多个视频播放通道状态,判断出所述云终端设备当前是否具有空闲的视频播放通道,进而确定所述云终端设备是否具有可以独立播放所述预制视频数据的第一视频播放通道。
可选地,所述方法还包括:
接收所述云端服务器发送的所述预制视频数据转换的第一视频数据、或所述预制视频数据与实时视频数据合成的第二视频数据;
播放所述第一视频数据或所述第二视频数据。
第三方面,本发明提供一种云端服务器,包括:
获取模块,用于获取待播放的预制视频数据,并指定播放所述预制视频数据的显示位置和显示层级;
发送模块,与所述获取模块连接,用于在确定云终端设备具有可以独立播放所述预制视频数据的第一视频播放通道后,将所述预制视频数据、所述显示位置和所述显示层级发送给所述云终端设备的所述第一视频播放通道,以使所述云终端设备通过所述第一视频播放通道按照所述显示位置和所述显示层级播放所述预制视频数据。
第四方面,本发明提供一种云终端设备,包括:
接收模块,用于通过第一视频播放通道接收云端服务器发送的待播放的预制视频数据、以及指定播放所述预制视频数据的显示位置和显示层级,其中,所述预制视频数据、所述显示位置和所述显示层级是所述云端服务器在确定所述云终端设备具有可以独立播放所述预制视频数据的所述第一视频播放通道后发送的;
播放模块,与所述接收模块连接,用于通过所述第一视频播放通道按照所述显示位置和所述显示层级播放所述预制视频数据。
第五方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序被处理器运行时,实现如上所述的预制视频播放方法。
第六方面,本发明提供一种预制视频播放系统,包括:
云端服务器,用于执行如上所述的预制视频播放方法;
云终端设备,与所述云端服务器连接,用于执行如上所述的预制视频播放方法。
本发明提供一种预制视频播放方法、云端服务器、云终端设备、计算机可读存储介质及预制视频播放系统,将待播放的预制视频数据以及指定播放所述预制视频数据的显示位置和显示层级,通过可以独立播放所述预制视频数据的第一视频播放通道发送给云终端设备,以使所述云终端设备通过所述第一视频播放通道按照所述显示位置和所述显示层级播放所述预制视频数据,在云终端设备具有可以独立播放所述预制视频数据的第一视频播放通道时,不需要对预制视频数据进行解码、实时渲染和再编码,可以节约运算资源、提高视频质量、提升用户体验。
附图说明
图1是本发明实施例的一种预制视频播放方法的流程图;
图2是本发明实施例的另一种预制视频播放方法的流程图;
图3是本发明实施例的一种云端服务器的结构示意图;
图4是本发明实施例的一种云终端设备的结构示意图;
图5是本发明实施例的一种预制视频播放系统的结构示意图。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面将结合附图对本发明实施方式作进一步地详细描述。
可以理解的是,此处描述的具体实施例和附图仅仅用于解释本发明,而非对本发明的限定。
可以理解的是,在不冲突的情况下,本发明中的各实施例及实施例中的各特征可相互组合。
可以理解的是,为便于描述,本发明的附图中仅示出了与本发明相关的部分,而与本发明无关的部分未在附图中示出。
可以理解的是,本发明的实施例中所涉及的每个单元、模块可仅对应一个实体结构,也可由多个实体结构组成,或者,多个单元、模块也可集成为一个实体结构。
可以理解的是,在不冲突的情况下,本发明的流程图和框图中所标注的功能、步骤可根据不同于附图中所标注的顺序发生。
可以理解的是,本发明的流程图和框图中,示出了根据本发明各实施例的系统、装置、设备、方法的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可代表一个单元、模块、程序段、代码,其包含用于实现规定的功能的可执行指令。而且,框图和流程图中的每个方框或方框的组合,可用实现规定的功能的基于硬件的系统实现,也可用硬件与计算机指令的组合来实现。
可以理解的是,本发明实施例中所涉及的单元、模块可通过软件的方式实现,也可通过硬件的方式来实现,例如单元、模块可位于处理器中。
为了便于理解本发明,首先介绍云终端架构。
随着社会的发展和技术的提升,云终端技术得到越来越多人的重视。基于云计算的“云终端”,将传统终端需要的大量计算能力从端侧设备硬件上转移出来,放到云端计算单元实现。云终端的出现让用户摆脱了对单一设备算力的依赖,通过任何一台普通的设备,都可以得到高性能、高画质、一致性的设备体验。
云终端的实现依赖于众多技术的支撑,其中最重要的技术之一是,图形化用户操作界面所需要的实时2D/3D图像的云端实时渲染。用户屏幕上显示的图像是由很多个图像叠加组成,并且是在用户与应用互动时实时产生,在传统终端中,图像实时渲染是终端的核心功能之一。而在云终端技术中,图像的实时渲染需要在云端计算单元中完成,云端计算单元将渲染得到的图像序列使用视频编码算法压缩,形成视频流传输到用户侧的硬件设备,由硬件设备解码播放,用户即可在屏幕上看到动态的实时图像。
在需要向用户显示的图像信息中,除了上述实时生成的图像序列之外,还有一种预先生成的图像序列,典型的就是预先制作好的视频。预制视频的显示有两种情况,一种是,单个视频流在屏幕上全屏显示;另一种是,一个或多个预制视频图像与实时生成的图像序列叠加显示。
在预制视频中,除了图像,还有音频。云端计算单元在完成图像渲染的同时,也会进行音频合成,将多个音频源的数据合成为一个音频流数据。在现有方案中,预制视频中的音频数据同样是在云端进行解码播放,解码后的数据与其它音频数据叠加合成之后,再编码为新的音频流。
对预制视频数据和预制音频数据进行解码,会消耗大量运算资源。尤其是在全屏播放预制视频图像时,不会显示实时生成的图像,这些计算量是白白浪费的,对预制视频数据和预制音频数据进行解码、重新采样和再编码,所得到的新视频和新音频的质量低于原视频和原音频的质量,影响用户体验。
因此,本发明为云终端提供一种分情况处理预制视频流的方法,避免在云端计算单元对预制视频数据和预制音频数据进行无必要的解码、重新采样和再编码,从而降低云端计算单元的资源消耗,并能提高在播放预制视频流时的质量,提升用户体验。
实施例1:
如图1所示,本发明提供一种预制视频播放方法,应用于云端服务器,所述方法包括:
S11、获取待播放的预制视频数据,并指定播放所述预制视频数据的显示位置和显示层级;
S12、在确定云终端设备具有可以独立播放所述预制视频数据的第一视频播放通道后,将所述预制视频数据、所述显示位置和所述显示层级发送给所述云终端设备的所述第一视频播放通道,以使所述云终端设备通过所述第一视频播放通道按照所述显示位置和所述显示层级播放所述预制视频数据。
具体而言,在本实施例中,首先提供预制视频流中的预制视频数据(即图像)不需要经过解码、实时渲染和再编码处理的播放方法,在确定云终端设备具有可以独立播放所述预制视频数据的第一视频播放通道后,通过第一视频播放通道按照指定的显示位置和显示层级独立播放所述预制视频数据,第一视频播放通道只负责所述预制视频数据在所述云终端设备上的播放,可以允许所述云终端设备的其它视频播放通道同时播放其它视频数据,每个视频播放通道只需负责播放自身的内容,至于所述云终端设备最终呈现的播放效果,则是所有视频播放通道播放内容之和。
可选地,所述方法还包括:
获取与所述预制视频数据对应的待播放的预制音频数据;
如果没有检测到实时音频数据、且判断出所述云终端设备能够播放所述预制音频数据,则将所述预制音频数据发送给所述云终端设备,以使所述云终端设备播放所述预制音频数据。
具体而言,在本实施例中,在播放预制视频数据时,如果预制视频数据存在对应的预制音频数据,则需要同步播放对应的预制音频数据,对预制音频数据的播放方法也可以优先采用不需要对其进行解码、重新采样和再编码的方法,具体是,如果当前没有需要与预制音频数据合成的实时音频数据,预制音频数据又可以被云终端设备直接播放(可以是云终端设备支持预制音频数据的编码格式),则可以将预制音频数据直接发送给云终端设备进行播放。
可选地,所述获取与所述预制视频数据对应的待播放的预制音频数据之后,所述方法还包括:
如果检测到实时音频数据,则将所述预制音频数据与所述实时音频数据合成为所述云终端设备能够播放的第一音频数据;
如果没有检测到实时音频数据,进一步判断所述云终端设备是否能够播放所述预制音频数据,如果不能,则将所述预制音频数据转换为所述云终端设备能够播放的第二音频数据;
将所述第一音频数据或所述第二音频数据发送给所述云终端设备,以使所述云终端设备播放所述第一音频数据或所述第二音频数据。
具体而言,在本实施例中,如果预制音频数据需要与实时音频数据进行合成,或者云终端设备不能播放预制音频数据,则需要在云端对预制音频数据进行解码、重新采样和再编码,并将经过上述处理后对应的音频数据发送给云终端设备进行播放。
可选地,所述获取待播放的预制视频数据,和所述获取与所述预制视频数据对应的待播放的预制音频数据,具体包括:
接收预制视频源发送的待播放的预制视频流,对所述预制视频流进行音视频分离,以获得待播放的预制视频数据和与所述预制视频数据对应的待播放的预制音频数据。
具体而言,在本实施例中,待播放的预制视频数据和与所述预制视频数据对应的待播放的预制音频数据通常来自于同一预制视频源发送的预制视频流,预制视频流中包含预制视频数据(图像)和预制音频数据(声音),先对其进行分离以获得预制视频数据和预制音频数据。
可选地,所述确定云终端设备具有可以独立播放所述预制视频数据的第一视频播放通道,具体包括:
如果判断出云终端设备能够播放所述预制视频数据、且所述预制视频数据的播放方式为全屏播放,则停止生成实时视频数据,并确定原来用于播放实时视频数据的视频播放通道为可以独立播放所述预制视频数据的第一视频播放通道;
如果判断出云终端设备能够播放所述预制视频数据、且所述预制视频数据的播放方式为非全屏播放,则进一步判断云终端设备当前是否具有空闲的视频播放通道,如果是,则确定至少一条空闲的视频播放通道为可以独立播放所述预制视频数据的第一视频播放通道。
具体而言,在本实施例中,根据显示位置判断所述预制视频数据的播放方式为全屏播放时,此时暂不需要生成实时视频数据,云终端设备仅播放预制视频数据,如果此时云终端设备支持所述预制视频数据的编码格式,则预制视频数据不需要经过解码、实时渲染和再编码处理,而是直接发送给云终端设备播放即可,此时即使云终端设备只有一条视频播放通道(原来用于播放实时视频数据),也可以直接播放预制视频数据(因为实时视频数据暂停播放);此时也可暂停生成实时音频数据,云终端设备也可仅播放预制音频数据。
可选地,所述确定至少一条空闲的视频播放通道为可以独立播放所述预制视频数据的第一视频播放通道之后,所述方法还包括:
获取待播放的实时视频数据;
将所述实时视频数据通过除所述第一视频播放通道之外的第二视频播放通道发送给所述云终端设备,以使所述云终端设备通过所述第二视频播放通道播放所述实时视频数据,并实现所述预制视频数据与所述实时视频数据叠加播放的效果。
具体而言,在本实施例中,根据显示位置判断所述预制视频数据的播放方式为非全屏播放时,则说明此时要求预制视频数据叠加在实时视频数据上进行播放,此时如果能够通过专门的视频播放通道将预制视频数据和实时视频数据分别发送给云终端设备播放,就可以实现叠加播放的效果,而不需要对预制视频数据在云端进行解码、与实时视频数据叠加后实时渲染和再编码的处理,同样实现叠加播放的效果,却节约了计算资源和提高了视频播放质量;在本实施例中,实时视频数据默认(可以与云终端设备预先约定)为最底层显示和全屏显示,因此,不需要向云终端设备发送指定的实时视频数据的显示位置和显示层级,通过所述第二视频播放通道按照最底层显示和全屏显示播放实时视频数据,即可实现预制视频数据与实时视频数据叠加播放效果,但可以理解的是,也可以指定实时视频数据相应的显示位置和显示层级,将实时视频数据与相应的显示位置和显示层级通过第二视频播放通道发送给云终端设备,通过所述第二视频播放通道按照相应的显示位置和显示层级播放实时视频数据,实现不同的叠加播放效果。
可选地,所述获取待播放的预制视频数据,并指定播放所述预制视频数据的显示位置和显示层级之后,所述方法还包括:
如果判断出云终端设备不能够播放所述预制视频数据,则确定云终端设备没有可以独立播放所述预制视频数据的第一视频播放通道,并将所述预制视频数据转换为所述云终端设备能够播放的第一视频数据,和/或,
如果判断出所述预制视频数据的播放方式为非全屏播放、且云终端设备当前没有空闲的视频播放通道,则确定云终端设备没有可以独立播放所述预制视频数据的第一视频播放通道,并将所述预制视频数据与实时视频数据合成为所述云终端设备能够播放的第二视频数据;
将所述第一视频数据或所述第二视频数据发送给所述云终端设备,以使所述云终端设备播放所述第一视频数据或所述第二视频数据。
具体而言,在本实施例中,如果判断出预制视频数据需要在云端进行解码、实时渲染和再编码处理,则根据具体情况执行相应的处理操作,然后发送处理后获得的视频数据。
实施例2:
如图2所示,本发明实施例2提供一种预制视频播放方法,应用于云终端设备,所述方法包括:
S21、通过第一视频播放通道接收云端服务器发送的待播放的预制视频数据、以及指定播放所述预制视频数据的显示位置和显示层级,其中,所述预制视频数据、所述显示位置和所述显示层级是所述云端服务器在确定所述云终端设备具有可以独立播放所述预制视频数据的所述第一视频播放通道后发送的;
S22、通过所述第一视频播放通道按照所述显示位置和所述显示层级播放所述预制视频数据。
具体而言,在本实施例中,所述方法与实施例1所述方法解决相对应的技术问题、实现相对应的技术效果,对于预制视频数据不需要进行解码、实时渲染和再编码处理的情况,云终端设备提供可以独立播放预制视频数据的第一视频播放通道,通过第一视频播放通道独立播放预制视频数据,实现预制视频在指定显示位置和指定显示层级显示图像的播放效果。
可选地,所述方法还包括:
通过除所述第一视频播放通道之外的第二视频播放通道接收云端服务器发送的待播放的实时视频数据;
通过所述第二视频播放通道播放所述实时视频数据,并实现所述预制视频数据与所述实时视频数据叠加播放的效果。
具体而言,在本实施例中,云终端设备通过除第一视频播放通道之外的第二视频播放通道独立接收和播放实时视频数据,由于预制视频数据由第一视频播放通道独立接收和播放,二者可以在云终端设备上实现叠加播放的效果。
可选地,所述方法还包括:
接收所述云端服务器发送的与所述预制视频数据对应的待播放的预制音频数据、与所述预制视频数据对应的待播放的预制音频数据与实时音频数据合成的第一音频数据、或与所述预制视频数据对应的待播放的预制音频数据转换的第二音频数据;
播放所述预制音频数据、所述第一音频数据或所述第二音频数据。
具体而言,在本实施例中,云终端设备还接收云端服务器发送的音频数据进行对应的播放。
可选地,所述接收云端服务器发送的待播放的预制视频数据、以及指定播放所述预制视频数据的显示位置和显示层级之前,所述方法还包括:
向所述云端服务器提供所述云终端设备支持的视频编码算法列表,以使所述云端服务器根据所述视频编码算法列表,判断出所述云终端设备是否能够播放所述预制视频数据,进而确定所述云终端设备是否具有可以独立播放所述预制视频数据的第一视频播放通道;
向所述云端服务器提供所述云终端设备当前的多个视频播放通道状态,以使所述云端服务器根据所述多个视频播放通道状态,判断出所述云终端设备当前是否具有空闲的视频播放通道,进而确定所述云终端设备是否具有可以独立播放所述预制视频数据的第一视频播放通道。
具体而言,在本实施例中,云终端设备向云端服务器提供自身支持的视频编码算法列表和当前的多个视频播放通道状态,以使云端服务器能够有效判断是否可以不在云端对预制视频数据进行解码、实时渲染和再编码,而直接将预制视频数据发送给云终端设备进行播放。
可选地,所述方法还包括:
接收所述云端服务器发送的所述预制视频数据转换的第一视频数据、或所述预制视频数据与实时视频数据合成的第二视频数据;
播放所述第一视频数据或所述第二视频数据。
具体而言,在本实施例中,在相应情况下,云终端设备还接收云端服务器在对预制视频数据进行解码、实时渲染和再编码后发送的视频数据进行对应的播放。
实施例3:
如图3所示,本发明实施例3提供一种云端服务器,包括:
获取模块11,用于获取待播放的预制视频数据,并指定播放所述预制视频数据的显示位置和显示层级;
发送模块12,与所述获取模块11连接,用于在确定云终端设备具有可以独立播放所述预制视频数据的第一视频播放通道后,将所述预制视频数据、所述显示位置和所述显示层级发送给所述云终端设备的所述第一视频播放通道,以使所述云终端设备通过所述第一视频播放通道按照所述显示位置和所述显示层级播放所述预制视频数据。
可选地,
获取模块11,还用于获取与所述预制视频数据对应的待播放的预制音频数据;
发送模块12,还用于如果没有检测到实时音频数据、且判断出所述云终端设备能够播放所述预制音频数据,则将所述预制音频数据发送给所述云终端设备,以使所述云终端设备播放所述预制音频数据。
可选地,发送模块12,还用于:
如果检测到实时音频数据,则将所述预制音频数据与所述实时音频数据合成为所述云终端设备能够播放的第一音频数据;
如果没有检测到实时音频数据,进一步判断所述云终端设备是否能够播放所述预制音频数据,如果不能,则将所述预制音频数据转换为所述云终端设备能够播放的第二音频数据;
将所述第一音频数据或所述第二音频数据发送给所述云终端设备,以使所述云终端设备播放所述第一音频数据或所述第二音频数据。
可选地,获取模块11,具体用于:
接收预制视频源发送的待播放的预制视频流,对所述预制视频流进行音视频分离,以获得待播放的预制视频数据和与所述预制视频数据对应的待播放的预制音频数据。
可选地,发送模块12,具体还用于:
如果判断出云终端设备能够播放所述预制视频数据、且所述预制视频数据的播放方式为全屏播放,则停止生成实时视频数据,并确定原来用于播放实时视频数据的视频播放通道为可以独立播放所述预制视频数据的第一视频播放通道;
如果判断出云终端设备能够播放所述预制视频数据、且所述预制视频数据的播放方式为非全屏播放,则进一步判断云终端设备当前是否具有空闲的视频播放通道,如果是,则确定至少一条空闲的视频播放通道为可以独立播放所述预制视频数据的第一视频播放通道。
可选地,
获取模块11,还用于获取待播放的实时视频数据;
发送模块12,还用于将所述实时视频数据通过除所述第一视频播放通道之外的第二视频播放通道发送给所述云终端设备,以使所述云终端设备通过所述第二视频播放通道播放所述实时视频数据,并实现所述预制视频数据与所述实时视频数据叠加播放的效果。
可选地,发送模块12,还用于:
如果判断出云终端设备不能够播放所述预制视频数据,则确定云终端设备没有可以独立播放所述预制视频数据的第一视频播放通道,并将所述预制视频数据转换为所述云终端设备能够播放的第一视频数据,和/或,
如果判断出所述预制视频数据的播放方式为非全屏播放、且云终端设备当前没有空闲的视频播放通道,则确定云终端设备没有可以独立播放所述预制视频数据的第一视频播放通道,并将所述预制视频数据与实时视频数据合成为所述云终端设备能够播放的第二视频数据;
将所述第一视频数据或所述第二视频数据发送给所述云终端设备,以使所述云终端设备播放所述第一视频数据或所述第二视频数据。
实施例4:
如图4所示,本发明实施例4提供一种云终端设备,包括:
接收模块21,用于通过第一视频播放通道接收云端服务器发送的待播放的预制视频数据、以及指定播放所述预制视频数据的显示位置和显示层级,其中,所述预制视频数据、所述显示位置和所述显示层级是所述云端服务器在确定所述云终端设备具有可以独立播放所述预制视频数据的所述第一视频播放通道后发送的;
播放模块22,与所述接收模块21连接,用于通过所述第一视频播放通道按照所述显示位置和所述显示层级播放所述预制视频数据。
可选地,
接收模块21,还用于通过除所述第一视频播放通道之外的第二视频播放通道接收云端服务器发送的待播放的实时视频数据;
播放模块22,还用于通过所述第二视频播放通道播放所述实时视频数据,并实现所述预制视频数据与所述实时视频数据叠加播放的效果。
可选地,
接收模块21,还用于接收所述云端服务器发送的与所述预制视频数据对应的待播放的预制音频数据、与所述预制视频数据对应的待播放的预制音频数据与实时音频数据合成的第一音频数据、或与所述预制视频数据对应的待播放的预制音频数据转换的第二音频数据;
播放模块22,还用于播放所述预制音频数据、所述第一音频数据或所述第二音频数据。
可选地,所述云终端设备还包括提供模块,用于:
向所述云端服务器提供所述云终端设备支持的视频编码算法列表,以使所述云端服务器根据所述视频编码算法列表,判断出所述云终端设备是否能够播放所述预制视频数据,进而确定所述云终端设备是否具有可以独立播放所述预制视频数据的第一视频播放通道;
向所述云端服务器提供所述云终端设备当前的多个视频播放通道状态,以使所述云端服务器根据所述多个视频播放通道状态,判断出所述云终端设备当前是否具有空闲的视频播放通道,进而确定所述云终端设备是否具有可以独立播放所述预制视频数据的第一视频播放通道。
可选地,
接收模块21,还用于接收所述云端服务器发送的所述预制视频数据转换的第一视频数据、或所述预制视频数据与实时视频数据合成的第二视频数据;
播放模块22,还用于播放所述第一视频数据或所述第二视频数据。
实施例5:
本发明实施例5提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序被处理器运行时,实现如实施例1或实施例2所述的预制视频播放方法。
所述计算机可读存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、计算机程序模块或其他数据)的任何方法或技术中实施的易失性或非易失性、可移除或不可移除的介质。计算机可读存储介质包括但不限于RAM(Random Access Memory,随机存取存储器),ROM(Read-Only Memory,只读存储器),EEPROM(Electrically ErasableProgrammable read only memory,带电可擦可编程只读存储器)、闪存或其他存储器技术、CD-ROM(Compact Disc Read-Only Memory,光盘只读存储器),数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。
实施例6:
如图5所示,本发明实施例6提供一种预制视频播放系统,包括:
云端服务器1,用于执行如实施例1所述的预制视频播放方法;
云终端设备2,与所述云端服务器1连接,用于执行如实施例2所述的预制视频播放方法。
具体而言,在本实施例中,云端服务器1具有接收预制视频流(包括图像和声音)、生成实时视频(图像)和实时音频(声音)、视频解码、音频解码、视频合成、音频合成、视频编码、音频编码、媒体流(包括视频流和音频流)发送的功能,云终端设备2具有接收媒体流和播放媒体流的功能;实施例1与实施例2的方法交互实现流程如下:
1)云端服务器1接收预制视频源发送的待播放的预制视频流,并选择合适的解封装方法对预制视频流中的预制视频数据和预制音频数据进行分离,云端服务器1支持的解封装格式包括MP4、AVI、MOV、MKV等等;
2)云端服务器1对预制视频数据和预制音频数据进行分开处理和发送:
2.1)云端服务器1对预制视频数据的处理和发送;
2.1.1)根据预制视频的播放要求指定播放所述预制视频数据的显示位置和显示层级;
2.1.2)云端服务器1获取云终端设备2支持的视频编码算法列表,与预制视频数据的编码算法进行对比,如果判断云终端设备不支持预制视频数据的编码算法,则不能直接播放预制视频数据,预制视频数据需要先在云端进行处理,此时进入步骤2.1.5,否则进入步骤2.1.3;
2.1.3)云端服务器1进一步根据显示位置判断预制视频数据在云终端设备2的屏幕上是否需要全屏显示,如果是,停止生成实时视频数据,同时将预制视频数据发送给云终端设备2原先发送实时视频数据的视频播放通道,否则进入步骤2.1.4;
2.1.4)云端服务器1进一步判断云终端设备2是否支持同时播放多个视频流(即是否具有多个视频播放通道),如果是,将预制视频数据发送给云终端设备2某个空闲的视频播放通道;
2.1.5)云端服务器1对没有发送的预制视频数据进行实时混合渲染,包括:将预制视频数据进行解码,根据显示位置将预制视频数据叠加到实时视频数据上,合成为实时图像序列,将实时图像序列编码为云终端设备2可以播放的格式后,发送给云终端设备2;
2.2)云端服务器1对预制音频数据的处理和发送;
2.2.1)云端服务器1判断自身是否正在生成实时音频,如果是,需要对预制音频数据与实时音频数据进行音频合成处理,合成处理的方法是,对预制音频数据进行解码后,与实时音频数据进行叠加,再编码为第一音频数据,将第一音频数据发送给云终端设备2;
2.2.2)如果云端服务器1此时没有生成实时音频,通过获取云终端设备2支持的音频编码算法列表,与预制音频数据的编码算法进行对比,判断云终端设备2是否能够播放预制音频数据,如果不能,需要对预制音频数据进行解码后,再编码为云终端设备2能够播放的第二音频数据,将第二音频数据发送给云终端设备2,否则可以将预制音频数据直接发送给云终端设备2;
3)云终端设备2播放接收到的视频数据和音频数据,如果存在不同视频播放通道接收的视频数据,则通过不同视频播放通道各自控制自身播放视频数据的显示位置和显示层级,实现叠加播放的效果。
本发明实施例1-6提供一种预制视频播放方法、云端服务器、云终端设备、计算机可读存储介质及预制视频播放系统,将待播放的预制视频数据以及指定播放所述预制视频数据的显示位置和显示层级,通过可以独立播放所述预制视频数据的第一视频播放通道发送给云终端设备,以使所述云终端设备通过所述第一视频播放通道按照所述显示位置和所述显示层级播放所述预制视频数据,在云终端设备具有可以独立播放所述预制视频数据的第一视频播放通道时,不需要对预制视频数据进行解码、实时渲染和再编码,可以节约运算资源、提高视频播放质量、提升用户体验。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
- 服务器系统、终端装置及它们的工作方法、存储介质
- 身份认证方法及系统、终端设备、服务器及存储介质
- 密钥生成方法、系统、移动终端、服务器及存储介质
- 验布方法、装置、终端设备、服务器、存储介质和系统
- 停车计费方法、终端、服务器、存储介质及系统
- 视频播放方法及其设备、系统、存储介质、终端、服务器
- 视频播放方法及其设备、系统、存储介质、终端、服务器