虚拟现实的显示方法、装置、电子设备及存储介质与流程

文档序号:23704116发布日期:2021-01-23 12:23阅读:112来源:国知局
虚拟现实的显示方法、装置、电子设备及存储介质与流程

[0001]
本申请涉及虚拟现实技术领域,更具体地,涉及一种虚拟现实的显示方法、装置、电子设备及存储介质。


背景技术:

[0002]
随着科技水平和生活水平的快速进步,虚拟现实技术被广泛的应用于生活中的各个方面。在相关技术中,实现虚拟现实的显示的电子设备可以通过从服务器获取虚拟现实资源进行显示,但是电子设备与服务器之间进行虚拟现实数据的交互的实时性有待提升。


技术实现要素:

[0003]
有鉴于此,本申请提出了一种虚拟现实的显示方法、装置、电子设备及存储介质,以改善上述问题。
[0004]
第一方面,本申请实施例提供了一种虚拟现实的显示方法,应用于电子设备,所述方法包括:发送资源播放请求至管理虚拟现实资源的分配的中心服务器,所述资源播放请求用于请求所述中心服务器分配虚拟现实资源;接收所述中心服务器基于所述资源播放请求返回的房间信息,所述房间信息用于所述电子设备加入与资源服务器进行网络即时通信的服务房间;根据所述房间信息,并通过信令服务器建立与所述资源服务器之间的网络即时通信的通信连接;基于所述通信连接接收所述资源服务器返回的虚拟现实视频流,所述虚拟现实视频流包括所述资源服务器对虚拟现实画面进行渲染后生成的画面数据;基于所述虚拟现实视频流,显示所述虚拟现实画面。
[0005]
第二方面,本申请实施例提供了一种虚拟现实的显示方法,应用于中心服务器,所述方法包括:接收电子设备发送的资源播放请求,所述资源播放请求用于请求所述中心服务器分配虚拟现实资源;响应所述资源播放请求,分配用于所述电子设备与所述资源服务器进行网络即时通信的服务房间;基于所述服务房间生成房间信息,所述房间信息包括房间标识以及鉴权信息;将所述房间信息发送至所述电子设备以及资源服务器,所述房间信息用于所述电子设备以及所述资源服务器建立网络即时通信的通信连接,所述通信连接用于所述资源服务器传输虚拟现实视频流至所述电子设备进行显示。
[0006]
第三方方面,本申请实施例提供了一种虚拟现实的显示方法,应用于虚拟现实的显示系统,所述系统包括电子设备、资源服务器、中心服务器以及信令服务器,所述方法包括:所述电子设备发送资源播放请求至管理虚拟现实资源的分配的所述中心服务器,所述资源播放请求用于请求所述中心服务器分配虚拟现实资源;所述中心服务器基于所述资源播放请求,返回房间信息至所述电子设备以及所述资源服务器,所述房间信息用于所述电子设备加入与所述资源服务器进行网络即时通信的服务房间;所述电子设备以及所述资源服务器基于所述房间信息,并通过所述信令服务器建立所述电子设备与所述资源服务器的网络即时通信的通信连接;所述资源服务器基于所述通信连接,发送虚拟现实视频流至所述电子设备,所述虚拟现实视频流包括所述资源服务器对虚拟现实画面进行渲染后生成的
画面数据;所述电子设备接收所述虚拟现实视频流,并基于所述虚拟现实视频流,显示虚拟现实画面。
[0007]
第四方面,本申请实施例提供了一种虚拟现实的显示装置,应用于电子设备,所述装置包括:连接请求发送模块、信息接收模块、连接建立模块、数据接收模块及显示模块。连接请求发送模块,用于发送资源播放请求至管理虚拟现实资源的分配的中心服务器,所述资源播放请求用于请求所述中心服务器分配虚拟现实资源;信息接收模块,用于接收所述中心服务器基于所述资源播放请求返回的房间信息,所述房间信息用于所述电子设备加入与资源服务器进行网络即时通信的服务房间;连接建立模块,用于根据所述房间信息,并通过信令服务器建立与所述资源服务器之间的网络即时通信的通信连接;数据接收模块,用于基于所述通信连接接收所述资源服务器返回的虚拟现实视频流,所述虚拟现实视频流包括所述资源服务器对虚拟现实画面进行渲染后生成的画面数据;显示模块,用于基于所述虚拟现实视频流,显示所述虚拟现实画面。
[0008]
第五方面,本申请实施例提供了一种虚拟现实的显示装置,应用于中心服务器,所述装置包括:请求接收模块、房间分配模块、信息生成模块以及信息发送模块。请求接收模块,用于接收电子设备发送的资源播放请求,所述资源播放请求用于请求所述中心服务器分配虚拟现实资源;房间分配模块,用于响应所述资源播放请求,分配用于所述电子设备与所述资源服务器进行网络即时通信的服务房间;信息生成模块,用于基于所述服务房间生成房间信息,所述房间信息包括房间标识以及鉴权信息;信息发送模块,用于将所述房间信息发送至所述电子设备以及资源服务器,所述房间信息用于所述电子设备以及所述资源服务器建立网络即时通信的通信连接,所述通信连接用于所述资源服务器传输虚拟现实视频流至所述电子设备进行显示。
[0009]
第六方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;存储器;一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行第一方面提供的虚拟现实的显示方法。
[0010]
第七方面,本申请实施例提供了一种服务器,包括:一个或多个处理器;存储器;一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行第二方面提供的虚拟现实的显示方法。
[0011]
第八方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,所述程序代码可被处理器调用执行第一方面或第二方面提供的虚拟现实的显示方法。
[0012]
相对于现有技术,本申请提供的方案中,电子设备发送资源播放请求至管理虚拟现实资源的分配的中心服务器,资源播放请求用于请求所述中心服务器分配虚拟现实资源,然后接收所述中心服务器基于资源播放请求返回的房间信息,其中,房间信息用于电子设备加入与资源服务器进行网络即时通信的服务房间,根据该房间信息,电子设备通过信令服务器建立与资源服务器之间的网络即时通信的通信连接,并且基于通信连接接收资源服务器返回的虚拟现实视频流,该虚拟现实视频流包括资源服务器对虚拟现实画面进行渲染后生成的画面数据,再基于所述虚拟现实视频流,显示所述虚拟现实画面。如此,电子设
备通过网络即时通信的通信连接方式接收由资源服务器发送的进行渲染后的虚拟现实视频流,并显示该虚拟现实视频流对应的虚拟现实画面,从而提升了电子设备与资源服务器之间数据交互的及时性以及电子设备显示虚拟现实画面的实时性。
[0013]
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
[0014]
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0015]
图1示出了本申请实施例提供的应用场景的示意图。
[0016]
图2示出了本申请一个实施例提供的虚拟现实的显示方法的流程示意图。
[0017]
图3示出了本申请实施例提供的电子设备的webrtc的架构示意图。
[0018]
图4示出了本申请实施例提供的资源服务器的webrtc的架构示意图。
[0019]
图5示出了本申请另一个实施例提供的虚拟现实的显示方法的流程示意图。
[0020]
图6示出了图5所示步骤s450在一种实施方式中的子步骤流程示意图。
[0021]
图7示出了本申请又一个实施例提供的虚拟现实的显示方法的流程示意图。
[0022]
图8示出了本申请再一个实施例提供的虚拟现实的显示方法的流程示意图。
[0023]
图9示出了本申请另一个实施例提供的虚拟现实的显示方法的流程示意图。
[0024]
图10是根据本申请一个实施例提供的一种虚拟现实的显示装置的框图。
[0025]
图11是根据本申请另一个实施例提供的一种虚拟现实的显示装置的框图。
[0026]
图12是本申请实施例的用于执行根据本申请实施例的虚拟现实的显示方法的电子设备的框图。
[0027]
图13是本申请实施例的用于执行根据本申请实施例的虚拟现实的显示方法的中心服务器的框图。
[0028]
图14是本申请实施例的用于保存或者携带实现根据本申请实施例的路径生成方法的程序代码的存储单元。
具体实施方式
[0029]
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
[0030]
随着科技水平和生活水平的快速进步,vr(虚拟现实,virtual reality)技术被广泛的应用于生活中的各个方面。例如,vr教育、vr直播、vr游戏、vr电影等。
[0031]
目前,通常电子设备与服务器之间的数据交互通信采用的传统通信技术会存在实时性的问题,例如通过无线网络连接进行通信或通过tcp/ip协议进行通信,尤其是在涉及到虚拟现实音视频数据等数据量较大的传输时,会有较大的延迟,即,通过传统的通信技术进行通信的实时性还有待提升。
[0032]
针对上述问题,发明人提出了本申请实施例提供的虚拟现实的显示方法、装置、电子设备以及存储介质,可以实现电子设备与服务器之间通过建立网络即时通信的通信连
接,进行虚拟现实资源的传输,提升电子设备与服务器之间进行虚拟现实资源传输时的实时性,使电子设备能及时对虚拟现实资源进行显示。其中,具体的虚拟现实的显示方法在后续的实施例中进行详细的说明。
[0033]
下面对本申请实施例提供的虚拟现实的显示方法的应用环境进行介绍。
[0034]
请参阅图1,图1示出了为本申请实施例应用场景的一种网络结构图,应用场景可以包括虚拟现实的显示系统10,虚拟现实的显示系统10可以包括电子设备100、中心服务器200、资源服务器300以及信令服务器400,电子设备100可以与中心服务器200以及信令服务器400进行通信,完成数据交互。另外,中心服务器200可以与信令服务器400进行通信。电子设备100可以是虚拟现实头戴显示装置、智能手机、平板电脑、笔记本电脑、pc电脑等。中心服务器200可以对电子设备100和资源服务器300进行管理。信令服务器400可以用于建立电子设备100与资源服务器300之间的网络即时通信,以完成电子设备100与资源服务器300之间的数据交互。资源服务器300可以用于向电子设备100提供对应的资源。
[0035]
其中,网络即时通信即webrtc,webrtc是google公司力推的一个开源项目,旨在给浏览器与手机的web应用提供简单的javascript接口,使其具备rtc(real-time communications)实时通信能力。意味着开发者在支持webrtc浏览器上开发web应用仅需简单的javascript语句就可以实现复杂的多媒体rtc功能,极大降低了开发难度和开发成本,w3c等组织正在制定webrtc标准javascript api接口。webrtc整个项目技术架构中,webrtc底层提供了音视频多媒体的核心技术,包括音视频采集、编解码、网络传输、显示渲染等功能,同时提供native c++api接口,供外部应用调用。浏览器所提供的webrtc标准javascript api接口的最终也是通过内部调用webrtc native c++api接口实现。
[0036]
请参照图2,图2为本申请一个实施例提供的一种虚拟现实的显示方法的流程示意图。下面将结合图1对本申请实施例提供的虚拟现实的显示方法进行详细阐述。该虚拟现实的显示方法可以包括以下步骤:
[0037]
步骤s110:发送资源播放请求至管理虚拟现实资源的分配的中心服务器,所述资源播放请求用于请求所述中心服务器分配虚拟现实资源。
[0038]
在本申请实施例中,电子设备从资源服务器处需要获取虚拟现实资源时,可以向中心服务器发起资源播放请求,并建立与资源服务器之间的网络即时通信的通信连接,利用建立的通信连接发送请求虚拟现实资源播放的指令至资源服务器,使资源服务器基于该通信连接返回对应的虚拟现实资源,其中,虚拟现实资源可以为vr游戏流、通过摄像头采集的实时内容(如vr直播)或vr离线资源(如vr教育视频、vr电影)。
[0039]
其中,网络即时通信即webrtc。通常webrtc支持windows、linux、mac、android和ios这几个通用平台。目前windows、linux和android平台都提供支持webrtc的浏览器,开发者可以基于该浏览器进行rtc web开发。mac和ios虽然暂时没有提供支持webrtc的浏览器,但开发者可以通过webrtc native c++api接口进行rtc开发。而在电子设备中,电子设备大多为嵌入式系统,嵌入式系统受限于其设备的配置,通常不提供webrtc的浏览器,因此无法直接使用webrtc。
[0040]
在一些实施方式中,本申请实施例中的电子设备可以为vr设备,请参阅图3,图3示出了本申请实施例提供的电子设备的webrtc的架构示意图,webrtc的架构主要包括:硬件层、虚拟现实云系统层、webrtc中间件层以及应用层。其中,硬件层包括:处理器、摄像头、麦
克风、网卡等;虚拟现实云系统层包括虚拟现实云客户端系统(cloudvr client system)及虚拟现实云客户端硬件抽象层(cloudvr client hal);webrtc中间件层包括:视频引擎、音频引擎、数据通道、相机处理单元、vr控制指令处理单元以及实时传输协议(rtp/rtcp);应用层包括:虚拟现实云程序(cloudvr app)和虚拟现实云软件开发工具包(cloudvr sdk,virtual reality software development kit)。
[0041]
在以上webrtc的架构中,核心层为webrtc中间件层,该层为webrtc核心c++库移植到vr设备及vr云服务商之上,并基于vr全场景进行深度定制。另外,相关技术中,通常采用webrtc原生的js web sdk,但该sdk性能较低,而以上方式中,采用vr云系统相关的c/c++sdk,以供vr开发者进行实时通讯场景应用开发。并且,该实施方式中采用sdp协议进行信令握手,并且对sdp协议进行了扩展,可以在期间交换除了webrtc协议中定义的音视频数据外,还可以交换电子设备发送的控制指令,其中,控制指令可以为手柄、陀螺仪或vr头盔等控制设备发送的控制指令,采用rtp/rtcp协议进行数据传输,从而可以与传统互联网场景的webrtc实时通讯系统的服务器端兼容。
[0042]
请参阅图4,图4示出了本申请实施例提供的资源服务器的webrtc的架构示意图,webrtc的架构主要包括:硬件层、云系统层、webrtc中间件层以及云服务api(application programming interface,应用程序接口)层。其中,硬件层包括:处理器、摄像头、网卡等;云系统层包括虚拟现实云服务端系统(cloudvr server system);webrtc中间件层包括:视频引擎、音频引擎、数据通道、传感器处理单元、vr控制指令处理单元以及实时传输协议(rtp/rtcp);云服务api包括:开源内存管理(dockerruntime)和restful应用程序接口(restfulapi)。
[0043]
在以上webrtc的架构中,核心层为webrtc中间件层,该层为webrtc核心c++库移植到vr云服务器之上,并基于vr全场景进行深度定制。另外,相关技术中,通常采用webrtc原生的js web sdk,但该sdk性能交底,而以上方式中,采用vr云系统相关的c/c++sdk,以供vr开发者进行实时通讯场景应用开发。并且,该实施方式中采用sdp协议进行信令握手,并且对sdp协议进行了扩展,可以在期间交换除了webrtc协议中定义的音视频数据外,还可以交换电子设备发送的控制指令,其中,控制指令可以为手柄、陀螺仪或vr头盔等控制设备发送的控制指令,采用rtp/rtcp协议进行数据传输,从而可以与传统互联网场景的webrtc实时通讯系统的服务器端兼容。
[0044]
在本申请实施例中,电子设备和资源服务器均包括以上的webrtc架构,从而电子设备与资源服务器之间可以利用webrtc进行交互,以完成电子设备与资源服务器之间的控制。
[0045]
步骤s120:接收所述中心服务器基于所述资源播放请求返回的房间信息,所述房间信息用于所述电子设备加入与资源服务器进行网络即时通信的服务房间。
[0046]
在本申请实施例中,电子设备在发送资源播放请求至中心服务器之后,中心服务器可以响应该资源播放请求,对电子设备以及资源服务器之间的通信进行管控,为电子设备以及资源服务器分配webrtc的服务房间,以便电子设备以及资源服务器接入到webrtc的服务房间,建立两者之间的webrtc连接。具体地,中心服务器可以根据分配的房间,生成房间信息并将房间信息发送至电子设备以及资源服务器;相应地,电子设备以及资源服务器可以接收到中心服务器发送的房间信息。
[0047]
步骤s130:根据所述房间信息,并通过信令服务器建立与所述资源服务器之间的网络即时通信的通信连接。
[0048]
在本申请实施例中,电子设备以及资源服务器可以接收到中心服务器发送的房间信息,此后,电子设备以及资源服务器可以根据接收到的房间信息,并通过信令服务器建立起电子设备以及资源服务器之间的webrtc的通信连接。其中,信令服务器用于对电子设备以及资源服务器之间的sdp信息的互换,从而建立起电子设备以及资源服务器之间的握手连接,即建立起webrtc的通信连接。
[0049]
步骤s140:基于所述通信连接接收所述资源服务器返回的虚拟现实视频流,所述虚拟现实视频流包括所述资源服务器对虚拟现实画面进行渲染后生成的画面数据。
[0050]
在本申请实施例中,电子设备以及资源服务器建立起webrtc的通信连接之后,则可以利用该通信连接,电子设备接收由资源服务器返回的虚拟现实视频流,例如,虚拟现实视频流可以为实时vr游戏流,也可以为离线的vr资源(如vr教育视频资源、vr电影资源等),还可以为通过360
°
摄像头采集并上传的实时内容(如直播资源),在此不做限定。
[0051]
在一些实施方式中,资源服务器在发送虚拟现实画面之前,由于原始的虚拟现实画面的数据量较大,可能会导致传输的速率较慢,并且所占的存储空间也比较大,因此,会可以对该虚拟现实画面进行渲染重新编码,生成对应的虚拟现实视频流,使得虚拟现实画面数据量得以极大的压缩,有利于传输和存储。
[0052]
一种实施方式中,可以通过无损压缩算法对原始的虚拟现实画面进行压缩重新编码,如字符串行程编码、熵编码、哈夫曼编码、lempel-ziv压缩算法等算法,通过无损压缩算法对原始的虚拟现实画面进行重新编码基本不会导致信息损失,由于原始的虚拟现实画面存在空间冗余、时间冗余、结构冗余、信息熵冗余等,图像的各个像素之间存在着很强的相关性,因此,通过无损压缩算法消除这些冗余不会导致信息损失。
[0053]
另一种实施方式中,可以通过有损算法(如jpeg有损压缩法等)对原始的虚拟现实画面进行重新编码,可以理解,通过有损算法以一定的客观失真换取对虚拟现实画面的数据压缩,由于人眼的一些特性,例如亮度分辨阈值、视觉阈值、对亮度和色度的敏感度不同,在编码的时候引入适量的误差,也不会被察觉出来。即,利用人眼的这些特性,以一定客观失真换取数据压缩。
[0054]
本申请实施例中,可以通过变换编码、熵编码、运动估计和运动补偿、混合编码等方法对虚拟现实画面进行编码,在此不做限定。
[0055]
由于电子设备以及资源服务器建立的webrtc的通信连接为p2p(端到端,peer to peer lending)连接,因此保证了两者之间通信的实时性,为物联网设备之间的交互提供了实时的通信环境。
[0056]
在一些实施方式中,电子设备以及资源服务器建立webrtc的通信连接之后,也可以基于该通信连接,完成其他交互,例如音频数据的传输、vr设备控制指令的传输等,在此不做限定。
[0057]
步骤s150:基于所述虚拟现实视频流,显示所述虚拟现实画面。
[0058]
在本申请实施例中,电子设备在接收到的虚拟现实视频流后,对该虚拟现实视频流进行解码处理,以显示该虚拟现实视频流对应的虚拟现实画面。
[0059]
本申请实施例提供的虚拟现实的显示方法,电子设备通过发送资源播放请求至管
理虚拟现实资源的分配的中心服务器,该资源播放请求用于请求中心服务器分配虚拟现实资源,然后接收中心服务器基于该资源播放请求返回的房间信息,房间信息用于电子设备加入与资源服务器进行网络即时通信的服务房间,然后根据房间信息,并通过信令服务器建立与资源服务器之间的网络即时通信的通信连接,再基于通信连接接收资源服务器返回的虚拟现实视频流,该虚拟现实视频流包括资源服务器对虚拟现实画面进行渲染后生成的画面数据,最后基于虚拟现实视频流,显示虚拟现实画面,提升了电子设备与资源服务器之间数据交互的及时性以及电子设备显示虚拟现实画面的实时性。
[0060]
请参阅图5,图5示出了本申请另一个实施例提供的虚拟现实的显示方法的流程示意图。该虚拟现实的显示方法应用于上述电子设备,下面将针对图5所示的流程进行详细的阐述,所述虚拟现实的显示方法具体可以包括以下步骤:
[0061]
步骤s510:发送资源播放请求至管理虚拟现实资源的分配的中心服务器,所述资源播放请求用于请求所述中心服务器分配虚拟现实资源。
[0062]
在本申请实施例中,步骤s510可以参阅前述实施例的内容,在此不再赘述。
[0063]
步骤s520:接收所述中心服务器基于所述资源播放请求返回的房间信息,所述房间信息用于所述电子设备加入与资源服务器进行网络即时通信的服务房间,所述房间信息包括房间标识以及鉴权信息。
[0064]
在本申请实施例中,中心服务器在接收到电子设备发送的资源播放请求之后,可以为电子设备以及资源服务器分配rtc服务房间,并生成rtc服务房间的房间标识(例如,roomid)。作为一种方式,中心服务器可以与信令服务器进行交互,从rtc服务器获取空闲的rtc服务房间及其房间标识;作为另一种方式,中心服务器可以生成当前不存在的房间标识,然后与rtc服务器进行交互,以请求创建与该房间标识所对应的rtc服务房间。
[0065]
另外,中心服务器为避免其他设备加入到电子设备与资源服务器进行网络即时通信的服务房间,还可以生成鉴权信息(例如,鉴权token,即鉴权令牌),该鉴权信息可以与分配的房间对应,以便能够区分不同房间的鉴权信息,从而避免其他设备加入到以上分配的服务房间。中心服务器可以根据房间标识以及鉴权信息,生成房间信息发送至电子设备以及资源服务器,以便电子设备以及资源服务器加入相应的服务房间,其中,房间信息可以包括有生成的房间标识以及鉴权信息。相应的,电子设备以及资源服务器可以接收到房间信息。并且,中心服务器可以将房间信息发送至信令服务器,以与信令服务器同步房间信息,使得信令服务器可以控制电子设备以及资源服务器加入到以上分配的房间。
[0066]
步骤s530:生成携带有所述房间标识以及所述鉴权信息的房间加入请求,并将所述房间加入请求发送至所述信令服务器,所述房间加入请求用于请求加入与所述房间标识对应的网络即时通信的房间。
[0067]
在本申请实施例中,电子设备在接收到携带有房间标识以及鉴权信息的房间信息之后,可以根据房间信息生成房间加入请求,该房间信息可以携带有房间标识以及鉴权信息。在生成房间加入请求之后,可以将房间加入请求发送至信令服务器,以请求加入到与上述房间标识对应的网络即时通讯的服务房间,从而后续信令服务器可以对该服务房间中电子设备与资源服务器之间的webrtc的通信连接进行管理。
[0068]
另外,在建立电子设备与资源服务器之间的webrtc的通信连接的过程中,资源服务器也可以根据接收到的房间信息生成房间加入请求发送至信令服务器,以加入到以上服
务房间。
[0069]
信令服务器在接收到电子设备以及资源服务器发送的房间加入请求之后,可以根据房间加入请求中携带的房间标识以及鉴权信息,对电子设备以及资源服务器进行鉴权,以确定是否可以加入到该房间加入请求中携带的房间标识所对应的服务房间。在一些方式中,信令服务器根据接收到的电子设备发送的房间加入请求,可以判断房间加入请求中携带的鉴权信息,是否为该房间标识对应的鉴权信息;如果房间加入请求中携带的鉴权信息为该房间标识对应的鉴权信息,则信令服务器可以确认电子设备鉴权成功;如果房间加入请求中携带的鉴权信息不为该房间标识对应的鉴权信息,则信令服务器可以确认该电子设备鉴权失败。同理,信令服务器针对资源服务器发送的房间加入请求,也可以按照该方式进行鉴权。在鉴权成功的情况下,则信令服务器可以让电子设备以及资源服务器加入到相应的服务房间,并且后续建立webrtc的通信连接。
[0070]
在本申请实施例中,信令服务器在对发送房间加入请求的电子设备以及资源服务器进行鉴权之后,则可以根据鉴权的结果生成指示信息,并将指示信息发送至电子设备以及资源服务器,以指示电子设备以及资源服务器是否可以建立webrtc的通信连接。在一些实施方式中,当电子设备以及资源服务器鉴权成功时,则信令服务器可以生成与该电子设备以及资源服务器对应的第一指示信息,第一指示信息用于指示电子设备以及资源服务器鉴权成功;当电子设备以及资源服务器鉴权失败时,则信令服务器可以生成与该电子设备以及资源服务器对应的第三指示信息,第三指示信息用于指示电子设备以及资源服务器鉴权失败。
[0071]
步骤s540:接收所述信令服务器返回的第一指示信息,所述第一指示信息为所述信令服务器根据所述鉴权信息对所述电子设备鉴权成功时发送至所述电子设备的信息。
[0072]
在本申请实施例中,电子设备在接收到信令服务器返回的第一指示信息时,则表示电子设备以及资源服务器鉴权成功,可以与资源服务器建立webrtc的通信连接;电子设备在接收到信令服务器返回的第三指示信息时,则表示电子设备以及资源服务器鉴权失败,因此电子设备与资源服务器不可以建立webrtc的通信连接。
[0073]
步骤s550:响应所述第一指示信息,基于sdp协议与所述资源服务器建立网络即时通信的通信连接。
[0074]
在本申请实施例中,电子设备在接收到第一指示信息之后,表示电子设备鉴权成功,并已加入相应的rtc服务房间,因此可以响应第一指示信息,基于sdp协议与资源服务器建立网络即时通信的通信连接。
[0075]
同样的,资源服务器在发送房间加入请求至信令服务器之后,可以接收到返回的指示信息,并且根据指示信息,可以确定是否建立与电子设备之间的网络即时通信的通信连接。也就是说,当资源服务器也请求加入网络即时通信的服务房间之后,接收到第一指示信息时,也可以基于sdp协议建立与电子设备网络即时通信的通信连接。
[0076]
在一些实施方式中,请参阅图6,步骤s550可以包括:
[0077]
步骤s551:基于sdp协议生成第一sdp信息。
[0078]
步骤s552:将所述第一sdp信息发送至所述信令服务器,所述信令服务器用于将所述第一sdp信息发送至所述资源服务器。
[0079]
步骤s553:接收所述信令服务器返回的所述资源服务器发送的第二sdp信息,所述
第二sdp信息为所述资源服务器基于sdp协议生成。
[0080]
步骤s554:根据所述第二sdp信息建立与所述资源服务器网络即时通信的通信连接。
[0081]
在该实施方式中,电子设备与资源服务器建立webrtc的通信连接时,可以基于sdp协议交换sdp信息,从而建立起两者之间的握手连接,即建立起电子设备与资源服务器之间的webrtc的通信连接。其中,sdp信息可以包括媒体信息、传输协议、控制指令信息及媒体流传输信息,其中媒体信息包括要交换的媒体类型、媒体格式及采样率;媒体流传输信息包括网络地址及传输端口等。
[0082]
步骤s560:基于所述通信连接,向所述资源服务器发送控制指令。
[0083]
在本申请实施例中,电子设备可以基于网络即时通信向资源服务器发送控制指令,其中控制指令可以是用户对该电子设备发送的操作指令,例如,当电子设备为vr头戴显示装置时,佩戴该vr头戴显示装置的用户的头部转动一个幅度就相当于一个操作指令,可以在此场景下的操作指令理解为一个视角控制指令。
[0084]
步骤s570:接收所述资源服务器发送的新的虚拟显示视频流,其中,所述新的虚拟显示视频流包括所述资源服务器根据所述控制指令对所述虚拟现实画面进行调整以及重新渲染后生成的画面数据。
[0085]
仍以电子设备为vr头戴显示装置为例,例如,当佩戴该vr头戴显示装置的用户将头部顺时针转动90
°
时,相当于该vr头戴显示装置向资源服务器发送了一个视角控制指令,资源服务器可以根据该视角控制指令重新调整渲染新的画面数据。具体地,可以将虚拟现实视频流分为视角无关层和视角有关层进行传输,视角无关层可采用较大的间隔编码,可以得到更高的压缩效率。当用户视角变化时,用户已经具备了部分新视角的内容,即用户已经具备了视觉无关层的内容,而电子设备只需向资源服务器请求并缓存新视角所缺失的剩余部分内容,甚至所缺失的仅仅是新视角下的“视角有关层”数据,从而实现更低的带宽消耗和更快的视角切换延迟。
[0086]
步骤s580:对所述新的虚拟显示视频流,显示调整后的虚拟现实画面。
[0087]
在本实施例中,电子设备在接收到新的虚拟现实视频流后,对其进行解码,生成并显示对应的虚拟现实画面。
[0088]
请参阅图7,图7示出了本申请又一个实施例提供的虚拟现实的显示方法的流程示意图。该虚拟现实的显示方法应用于上述电子设备,下面将针对图7所示的流程进行详细的阐述,所述虚拟现实的显示方法具体可以包括以下步骤:
[0089]
步骤s710:发送资源播放请求至管理虚拟现实资源的分配的中心服务器,所述资源播放请求用于请求所述中心服务器分配虚拟现实资源。
[0090]
步骤s720:接收所述中心服务器基于所述资源播放请求返回的房间信息,所述房间信息用于所述电子设备加入与资源服务器进行网络即时通信的服务房间,所述房间信息包括房间标识以及鉴权信息。
[0091]
步骤s730:生成携带有所述房间标识以及所述鉴权信息的房间加入请求,并将所述房间加入请求发送至所述信令服务器,所述房间加入请求用于请求加入与所述房间标识对应的网络即时通信的房间。
[0092]
步骤s740:接收所述信令服务器返回的第一指示信息,所述第一指示信息为所述
信令服务器根据所述鉴权信息对所述电子设备鉴权成功时发送至所述电子设备的信息。
[0093]
步骤s750:响应所述第一指示信息,基于sdp协议与所述资源服务器建立网络即时通信的通信连接。
[0094]
在本申请实施例中,步骤s710至步骤s750可以参阅前述实施例步骤s510至步骤s550的内容,在此不再赘述。
[0095]
步骤s760:在接收到所述信令服务器返回的第二指示信息时,接入至中转服务器,所述第二指示信息为所述信令服务器在确定所述电子设备与所述资源服务器无法建立网络即时通信的通信连接时,发送至所述电子设备以及所述资源服务器。
[0096]
在本申请实施例中,电子设备与资源服务器也可能存在无法建立网络即时通信的通信连接的情况,即无法直连形成p2p连接的情况。此时,电子设备以及资源服务器可以接入到中转服务器,中转服务器可以实现电子设备与资源服务器之间的交互信息的中转。
[0097]
步骤s770:接收由所述中转服务器转发的所述虚拟现实视频流,所述中转服务器用于将所述资源服务器发送的所述虚拟现实视频流转发至所述电子设备。
[0098]
在本申请实施例中,在电子设备与资源服务器无法直连的情况下,电子设备可以接收由中转服务器转发的虚拟现实视频流。
[0099]
步骤s780:基于所述虚拟现实视频流,显示所述虚拟现实画面。
[0100]
在本申请实施例中,电子设备在接收到的由中转服务器转发的虚拟现实视频流后,对该虚拟现实视频流进行解码处理,以显示该虚拟现实视频流对应的虚拟现实画面。
[0101]
请参阅图8,图8示出了本申请又一个实施例提供的虚拟现实的显示方法的流程示意图。该虚拟现实的显示方法应用于上述中心服务器,下面将针对图8所示的流程进行详细的阐述,所述虚拟现实的显示方法具体可以包括以下步骤:
[0102]
步骤s810:接收电子设备发送的资源播放请求,所述资源播放请求用于请求所述中心服务器分配虚拟现实资源。
[0103]
步骤s820:响应所述资源播放请求,分配用于所述电子设备与所述资源服务器进行网络即时通信的服务房间。
[0104]
步骤s830:基于所述服务房间生成房间信息,所述房间信息包括房间标识以及鉴权信息。
[0105]
在本申请实施例中,中心服务器在接收到电子设备发送的资源播放请求之后,可以为电子设备以及资源服务器分配rtc服务房间,并生成房间信息。
[0106]
在一些实施方式中,rtc服务房间的房间标识(例如,roomid)。作为一种方式,中心服务器可以与信令服务器进行交互,从rtc服务器获取空闲的rtc服务房间及其房间标识;作为另一种方式,中心服务器可以生成当前不存在的房间标识,然后与rtc服务器进行交互,以请求创建与该房间标识所对应的rtc服务房间。
[0107]
另外,中心服务器为避免其他设备加入到电子设备与资源服务器进行网络即时通信的服务房间,还可以生成鉴权信息(例如,鉴权token,即鉴权令牌),该鉴权信息可以与分配的房间对应,以便能够区分不同房间的鉴权信息,从而避免其他设备加入到以上分配的服务房间。
[0108]
步骤s840:将所述房间信息发送至所述电子设备以及资源服务器,所述房间信息用于所述电子设备以及所述资源服务器建立网络即时通信的通信连接,所述通信连接用于
所述资源服务器传输虚拟现实视频流至所述电子设备进行显示。
[0109]
在一些实施方式中,管理服务器可以根据房间标识以及鉴权信息,生成房间分配信息发送至第一物联网设备以及第二物联网设备,以便第一物联网设备以及第二物联网设备加入相应的服务房间,其中,房间分配信息可以包括有生成的房间标识以及鉴权信息。相应的,第一物联网设备以及第二物联网设备可以接收到房间分配信息,后续可以根据房间分配信息并通过信令服务器建立网络实时通信的通信连接。
[0110]
请参阅图9,图9示出了本申请另一个实施例提供的虚拟现实的显示方法的流程示意图。该虚拟现实的显示方法应用于虚拟现实的显示系统,所述系统包括电子设备、资源服务器、中心服务器以及信令服务器。下面将针对图9所示的流程进行详细的阐述,所述虚拟现实的显示方法具体可以包括以下步骤:
[0111]
步骤s910:所述电子设备发送资源播放请求至管理虚拟现实资源的分配的所述中心服务器,所述资源播放请求用于请求所述中心服务器分配虚拟现实资源。
[0112]
步骤s920:所述中心服务器基于所述资源播放请求,返回房间信息至所述电子设备以及所述资源服务器,所述房间信息用于所述电子设备加入与所述资源服务器进行网络即时通信的服务房间。
[0113]
步骤s930:所述电子设备以及所述资源服务器基于所述房间信息,并通过所述信令服务器建立所述电子设备与所述资源服务器的网络即时通信的通信连接。
[0114]
步骤s940:所述资源服务器基于所述通信连接,发送虚拟现实视频流至所述电子设备,所述虚拟现实视频流包括所述资源服务器对虚拟现实画面进行渲染后生成的画面数据。
[0115]
步骤s950:所述电子设备接收所述虚拟现实视频流,并基于所述虚拟现实视频流,显示虚拟现实画面。
[0116]
在本申请实施例中,步骤s910至步骤s950可以参阅前述实施例的内容,在此不再赘述。
[0117]
请参阅图10,其示出了本申请一个实施例提供的一种虚拟现实的显示装置1000的结构框图。该虚拟现实的显示装置1000应用上述的电子设备,该虚拟现实的显示装置1000包括:连接请求发送模块1010、信息接收模块1020、连接建立模块1030、数据接收模块1040以及显示模块1050。
[0118]
连接请求发送模块1010用于发送资源播放请求至管理虚拟现实资源的分配的中心服务器,所述资源播放请求用于请求所述中心服务器分配虚拟现实资源。
[0119]
信息接收模块1020用于接收所述中心服务器基于所述资源播放请求返回的房间信息,所述房间信息用于所述电子设备加入与资源服务器进行网络即时通信的服务房间。
[0120]
连接建立模块1030用于根据所述房间信息,并通过信令服务器建立与所述资源服务器之间的网络即时通信的通信连接。
[0121]
数据接收模块1040用于基于所述通信连接接收所述资源服务器返回的虚拟现实视频流,所述虚拟现实视频流包括所述资源服务器对虚拟现实画面进行渲染后生成的画面数据。
[0122]
显示模块1050用于基于所述虚拟现实视频流,显示所述虚拟现实画面。
[0123]
在一些实施方式中,所述房间信息包括房间标识以及鉴权信息。连接建立模块
1030可以具体用于:生成携带有所述房间标识以及所述鉴权信息的房间加入请求,并将所述房间加入请求发送至所述信令服务器,所述房间加入请求用于请求加入与所述房间标识对应的网络即时通信的房间;接收所述信令服务器返回的第一指示信息,所述第一指示信息为所述信令服务器根据所述鉴权信息对所述电子设备鉴权成功时发送至所述电子设备的信息;响应所述第一指示信息,基于sdp协议与所述资源服务器建立网络即时通信的通信连接。
[0124]
在该实施方式中,连接建立模块1030基于sdp协议与所述资源服务器建立网络即时通信的通信连接,可以包括:基于sdp协议生成第一sdp信息;将所述第一sdp信息发送至所述信令服务器,所述信令服务器用于将所述第一sdp信息发送至所述资源服务器;接收所述信令服务器返回的所述资源服务器发送的第二sdp信息,所述第二sdp信息为所述资源服务器基于sdp协议生成;根据所述第二sdp信息建立与所述资源服务器网络即时通信的通信连接。
[0125]
在一些实施方式中,该虚拟现实的显示装置1000还可以包括:中转接入模块。中转接入模块用于在接收到所述信令服务器返回的第二指示信息时,接入至中转服务器,所述第二指示信息为所述信令服务器在确定所述电子设备与所述资源服务器无法建立网络即时通信的通信连接时,发送至所述电子设备以及所述资源服务器;接收由所述中转服务器转发的所述虚拟现实视频流,所述中转服务器用于将所述资源服务器发送的所述虚拟现实视频流转发至所述电子设备。
[0126]
在该实施方式中,显示模块1050用于基于所述虚拟现实视频流,显示所述虚拟现实画面。
[0127]
在一些实施方式中,该虚拟现实的显示装置1000还可以包括:控制指令发送模块。控制指令发送模块用于基于所述通信连接,向所述资源服务器发送控制指令。
[0128]
在该实施方式中,数据接收模块1040可以具体用于接收所述资源服务器发送的新的虚拟显示视频流,其中,所述新的虚拟显示视频流包括所述资源服务器根据所述控制指令对所述虚拟现实画面进行调整以及重新渲染后生成的画面数据。
[0129]
在该实施方式中,显示模块1050可以具体用于对所述新的虚拟显示视频流,显示调整后的虚拟现实画面。
[0130]
请参阅图11,其示出了本申请另一个实施例提供的一种虚拟现实的显示装置1100的结构框图。该虚拟现实的显示装置1100应用上述的中心服务器,该虚拟现实的显示装置1100包括:请求接收模块1110、房间分配模块1120、信息生成模块1130以及信息发送模块1140。
[0131]
请求接收模块1110用于接收电子设备发送的资源播放请求,所述资源播放请求用于请求所述中心服务器分配虚拟现实资源。
[0132]
房间分配模块1120用于响应所述资源播放请求,分配用于所述电子设备与所述资源服务器进行网络即时通信的服务房间。
[0133]
信息生成模块1130用于基于所述服务房间生成房间信息,所述房间信息包括房间标识以及鉴权信息。
[0134]
信息发送模块1140用于将所述房间信息发送至所述电子设备以及资源服务器,所述房间信息用于所述电子设备以及所述资源服务器建立网络即时通信的通信连接,所述通
信连接用于所述资源服务器传输虚拟现实视频流至所述电子设备进行显示。
[0135]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0136]
在本申请所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。
[0137]
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
[0138]
综上所述,本申请提供的方案,电子设备通过发送资源播放请求至管理虚拟现实资源的分配的中心服务器,该资源播放请求用于请求中心服务器分配虚拟现实资源,然后接收中心服务器基于该资源播放请求返回的房间信息,房间信息用于电子设备加入与资源服务器进行网络即时通信的服务房间,然后根据房间信息,并通过信令服务器建立与资源服务器之间的网络即时通信的通信连接,再基于通信连接接收资源服务器返回的虚拟现实视频流,该虚拟现实视频流包括资源服务器对虚拟现实画面进行渲染后生成的画面数据,最后基于虚拟现实视频流,显示虚拟现实画面,提升了电子设备与资源服务器之间数据交互的及时性以及电子设备显示虚拟现实画面的实时性。
[0139]
请参照图12,其示出了本申请实施例提供的一种电子设备的结构框图。该电子设备100可以是虚拟现实头戴显示装置、智能手机、平板电脑、笔记本电脑、pc电脑等能够运行应用程序的电子设备。本申请中的电子设备100可以包括一个或多个如下部件:处理器101、存储器102、以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器102中并被配置为由一个或多个处理器101执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
[0140]
处理器101可以包括一个或者多个处理核。处理器101利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器102内的指令、程序、代码集或指令集,以及调用存储在存储器102内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器101可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器101可集成中央处理器(central processing unit,cpu)、图像处理器(graphics processing unit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器101中,单独通过一块通信芯片进行实现。
[0141]
存储器102可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read-only memory)。存储器102可用于存储指令、程序、代码、代码集或指令集。存储器102可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
[0142]
请参考图13,其示出了本申请实施例提供的一种中心服务器的结构框图。该中心
服务器200可以是传统服务器、云服务器等能够运行应用程序的服务器。本申请中的中心服务器200可以包括一个或多个如下部件:处理器201、存储器202、以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器202中并被配置为由一个或多个处理器201执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
[0143]
处理器201可以包括一个或者多个处理核。处理器201利用各种接口和线路连接整个中心服务器200内的各个部分,通过运行或执行存储在存储器201内的指令、程序、代码集或指令集,以及调用存储在存储器201内的数据,执行中心服务器200的各种功能和处理数据。可选地,处理器201可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器201可集成中央处理器(central processing unit,cpu)、图像处理器(graphics processing unit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器201中,单独通过一块通信芯片进行实现。
[0144]
存储器202可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read-only memory)。存储器202可用于存储指令、程序、代码、代码集或指令集。存储器202可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储中心服务器200在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
[0145]
请参考图14,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质1400中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
[0146]
计算机可读存储介质1400可以是诸如闪存、eeprom(电可擦除可编程只读存储器)、eprom、硬盘或者rom之类的电子存储器。可选地,计算机可读存储介质1400包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质1400具有执行上述方法中的任何方法步骤的程序代码1410的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码1410可以例如以适当形式进行压缩。
[0147]
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1