CN111064985A - 一种实现视频串流的***、方法及装置 - Google Patents
一种实现视频串流的***、方法及装置 Download PDFInfo
- Publication number
- CN111064985A CN111064985A CN201811203090.9A CN201811203090A CN111064985A CN 111064985 A CN111064985 A CN 111064985A CN 201811203090 A CN201811203090 A CN 201811203090A CN 111064985 A CN111064985 A CN 111064985A
- Authority
- CN
- China
- Prior art keywords
- data
- streaming
- software
- application
- equipment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000009877 rendering Methods 0.000 claims abstract description 32
- 230000015654 memory Effects 0.000 claims description 27
- 238000012545 processing Methods 0.000 abstract description 9
- 238000005516 engineering process Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/4104—Peripherals receiving signals from specially adapted client devices
- H04N21/4122—Peripherals receiving signals from specially adapted client devices additional display device, e.g. video projector
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
- H04N21/4363—Adapting the video stream to a specific local network, e.g. a Bluetooth® network
- H04N21/43637—Adapting the video stream to a specific local network, e.g. a Bluetooth® network involving a wireless protocol, e.g. Bluetooth, RF or wireless LAN [IEEE 802.11]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/816—Monomedia components thereof involving special video data, e.g 3D video
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种实现视频串流的方法及***,其中,该方法包括如下步骤:获取姿态数据和定位数据;将获取的姿态数据和定位数据发送给VR应用进行画面渲染;获取渲染好的画面,发送给VR设备进行显示。该方法使得负责运行VR应用的是PC机,VR设备要负责的仅仅是画面显示,可利用PC的画面处理能力使VR设备上得到优质的画面。
Description
技术领域
本发明涉及一种实现视频串流的***;同时涉及该***实现的视频串流方法,属于虚拟现实技术领域。
背景技术
视频串流(video streaming)是指将一连串的视频数据压缩之后分段传送,在网络上即时传输影音以供观赏的视频播放技术。曾经流行的QuickTime Player、Real Player等播放器就采用了视频串流技术。目前,随着网络游戏、游戏直播等产业的深入发展,视频串流得到了越来越广的应用。
虚拟现实(Virtual Reality,简称VR)是指采用计算机技术为核心,利用现代高科技手段生成一种虚拟环境,用户借助特殊的输入/输出设备,通过视觉、听觉和触觉等获得与真实世界相同的感受。虚拟现实技术是一种综合应用计算机图形学、人机接口技术、传感器技术以及人工智能等技术,制造逼真的人工模拟环境,并能有效地模拟人在自然环境中的各种感知的高级的人机交互技术。
头戴式显示器(简称头显)是用于虚拟现实显示的核心设备之一,主要分为三类:第一类是PC头显,需要用数据线连接头显和PC,此种头显可以在PC上进行数据处理并显示头显上的画面;第二类是一体式头显,它本质上是一个具有运行存储能力、显示能力和定位能力的VR设备,无需外接设备,因此也称为VR一体机;第三类是移动式头显,通过一个VR盒子配合移动终端使用。
对于一体式头显和移动式头显通常用户只能使用头显配套的应用,这些应用通过预装的方式安装在头显和手机中,但是无法使用只能在PC头显上使用的应用,即不能使用在PC端进行数据处理的应用,限制了其应用范围。
发明内容
针对现有技术的不足,本发明所要解决的首要技术问题在于提供一种实现视频串流的***。
本发明所要解决的另一技术问题在于提供一种实现视频串流的方法。
为实现上述发明目的,本发明采用下述的技术方案:
根据本发明实施例的第一方面,提供一种实现视频串流的***,包括终端和VR设备;
其中,所述终端上安装有应用平台软件和串流软件的服务端;
所述VR设备上安装有串流软件的客户端,所述串流软件的客户端将姿态数据发送给所述终端上串流软件的服务端;所述串流软件的服务端将姿态数据发送给所述应用平台软件,由所述应用平台软件渲染出画面。
根据本发明实施例的第二方面,提供一种实现视频串流的***,包括终端、VR设备和定位追踪装置;
其中,所述终端上安装有应用平台软件和串流软件的服务端;
所述定位追踪装置用于采集定位数据并发送给VR设备;
所述VR设备上安装有串流软件的客户端,所述串流软件的客户端将姿态数据和所述定位数据发送给所述终端上串流软件的服务端;所述串流软件的服务端将姿态数据和所述定位数据发送给所述应用平台软件,由所述应用平台软件渲染出画面。
其中较优地,所述串流软件的服务端包括控制界面和server驱动,当所述应用平台软件在终端上启动时,加载所述server驱动。
其中较优地,所述串流软件的服务端获取渲染好的画面,发送给串流软件的客户端;所述串流软件的客户端将画面发送给所述VR设备进行显示。
其中较优地,所述串流软件的客户端通过无线方式将姿态数据和/或定位数据发送给串流软件的服务端,所述无线方式为5G。
根据本发明实施例的第三方面,提供一种实现视频串流的方法,包括如下步骤:
获取VR设备的姿态数据;
将获取的姿态数据发送给VR应用进行画面渲染;
获取渲染好的画面,发送给VR设备进行显示。
其中较优地,所述获取VR设备的姿态数据,包括如下步骤:
VR设备上的串流软件的客户端获取VR设备的姿态数据;
安装在终端上的串流软件服务端获取串流软件的客户端通过UDP采用5G无线传输的方式发送的所述姿态数据。
其中较优地,所述将获取的姿态数据发送给VR应用进行画面渲染,包括如下步骤:
将获取的姿态数据发送给OpenVR,经OpenVR传送给VR应用;
根据VR应用得到的姿态数据以及应用逻辑,通过应用引擎进行画面的渲染;
将应用引擎渲染好的数据存储在显卡的显存中。
根据本发明实施例的第四方面,提供一种实现视频串流的方法,包括如下步骤:
获取姿态数据和定位数据;
将获取的姿态数据和定位数据发送给VR应用进行画面渲染;
获取渲染好的画面,发送给VR设备进行显示。
其中较优地,所述获取姿态数据和定位数据,包括如下步骤:
通过定位追踪装置采集用户的定位数据和/或姿态数据;
将定位追踪装置采集的定位数据和/或姿态数据发送到VR设备上;
串流软件服务端获取VR设备通过UDP发送的定位数据和姿态数据。
其中较优地,所述将获取的姿态数据和定位数据发送给VR应用进行画面渲染,包括如下步骤:
将串流软件的服务端获取的姿态数据和定位数据发送给OpenVR,经OpenVR传送给VR应用;
根据VR应用得到的定位数据、姿态数据以及应用逻辑,通过应用引擎进行画面的渲染;
将应用引擎渲染好的数据存储在显卡的显存中。
其中较优地,所述获取渲染好的画面,发送给VR设备进行显示,包括如下步骤:
获取渲染好的画面对应的纹理数据,将一帧画面编码成多个数据包;
将编码的多个数据包发送给VR设备进行解码并显示。
其中较优地,还包括获取控制信息,将获取的控制信息发送给VR应用,进行画面渲染;
其中,所述控制信息来自于VR设备或者来自于定位追踪装置。
根据本发明实施例的第五方面,提供一种实现视频串流的装置,包括处理器及存储器,所述处理器用于执行存储器中存储的实现视频串流的程序,以实现如上所述的实现视频串流的方法。
本发明所提供的实现视频串流的方法,串流软件的服务获取定位数据和姿态数据;将获取的姿态数据和定位数据发送给VR应用,进行画面渲染;获取渲染好的画面,发送给VR设备进行显示。串流软件的服务端安装在PC终端,该方法使得负责运行VR应用的是PC机,VR设备要负责的仅仅是画面显示而已;因此即可通过PC的硬件进行画面处理,VR设备屏幕上就可以得到让人满意的画面。
附图说明
图1为本发明所提供的实施例一中,实现视频串流的***的结构示意图;
图2为本发明所提供的实施例一中,实现视频串流的方法的流程图;
图3为本发明所提供的实施例二中,实现视频串流的***的结构示意图;
图4为本发明所提供的实施例二中,实现视频串流的方法的流程图。
具体实施方式
下面结合附图和具体实施例对本发明的技术内容进行详细具体的说明。
实施例一
如图1所示,本发明所提供的实现视频串流的***,包括终端、VR设备。
其中,终端上安装有应用平台软件和串流软件的服务端;在本发明所提供的实施例中,终端以PC(personal computer)为例进行说明,也可以为平板电脑、智能电视、智能手机等类似具有数据处理能力的终端。其中,示例性地,PC机上安装的应用平台软件为SteamVR平台软件(在智能手机上为相应的APP)。当然也可以是其他应用平台例如VIVEPORT平台、HYPEREAL平台、蚁视VR应用平台、大朋助手、腾讯WEGAME、OGP应用平台等。应用平台软件中的VR应用使用了应用引擎(Unreal Engine 4,Universal 3D等),已经集成数据接口提供的SDK,例如Steam VR平台软件的数据接口OpenVR提供的SDK这样就可以在PC的显示器上看到应用的画面。串流软件的服务器端例如可以设置为NOLOHOME软件的A端。
串流软件的服务端包括两部分,一部分是控制界面,一部分是server驱动。其中,该server驱动优选为一个dll文件,但也可以是其它实现形式,例如SDK、API文件等等。应用平台软件,例如SteamVR平台软件在PC机上启动时,会相应加载上述的server驱动。
VR设备上安装有串流软件的客户端,例如可以设置为NOLOHOME软件的B端。VR设备安装有各类传感器,例如九轴传感器、惯性传感器等,可以感知姿态动作,即俯仰、横滚和偏航等。VR设备将其姿态数据通过串流软件的客户端发送给PC机上的串流软件的服务端;通过PC机上的串流软件的服务端发送给应用平台软件,从而让应用平台软件渲染出实时画面。VR设备可以为一体式VR设备,则串流软件的客户端安装在一体式VR设备的***中,画面也是在一体式VR设备的显示屏上显示,传感器固装在一体式VR设备。VR设备可以为移动式VR设备,则串流软件的客户端安装在移动式VR设备的智能手机中,画面可以在移动式VR设备的智能手机上显示,也可以在移动式VR设备的显示屏上显示,传感器可以固装在移动式VR设备的外壳中也可以借用安装在移动式VR设备中智能手机的传感器。
上述PC机和VR设备之间采用有线/无线方式进行连接,其中在采取无线方式时,优选在WLAN(无线局域网)或者5G通信环境下运行。由于5G通信具有高速率、低延迟等特点,在5G通信环境下PC与VR设备所产生的实际延迟基本可以忽略不计。
为了能够让VR应用的画面串流到VR设备中,按照图1所示串流架构中,需要实现的几个核心模块分别是:串流软件服务端的server驱动,VR设备、安装在VR设备里的串流软件的客户端。其中,VR设备用于获取自身的姿态数据;串流软件的客户端和server驱动用于进行数据传输和处理。
图2所示是本发明提供的实现视频串流的方法的流程图,本发明提供的实现视频串流的方法,包括如下步骤:启动VR设备上的串流软件的客户端,例如B端NOLOHOME软件,并启动位于PC上的串流软件的服务端,例如A端NOLOHOME软件。串流软件服务端的控制界面UI包括各种控制按键,通过控制按键启动串流软件,将A端和B端连接。VR设备可将姿态、控制信息等数据通过串流软件的客户端,发送给PC上串流软件服务端的server驱动,server驱动对接收到这些数据进行处理,发送给应用平台软件进行画面渲染,server驱动再将渲染后的画面发送给VR设备进行画面显示。具体包括如下步骤:
S1,获取VR设备的姿态数据。
其中,VR设备的姿态数据通过安装在VR设备上传感器获取,例如九轴传感器、惯性传感器、六轴传感器、陀螺仪、地磁计等。
VR设备的姿态数据传输给安装在VR设备上的串流软件的客户端,再通过串流软件的客户端,经UDP通过5G无线方式发送到串流软件服务端的server驱动。UDP(UserDatagram Protocol)是开放式***互联参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。经此步骤,串流软件的服务端获取到VR设备的姿态数据。
优选地,还可以获取VR设备的控制信息,VR设备的控制信息也可以通过串流软件的客户端,经UDP发送到串流软件服务端的server驱动。
S2,将获取的姿态数据发送给VR应用进行画面渲染。
具体包括如下步骤:
S21,将获取的VR设备的姿态数据发送给数据接口,经数据接口传送给VR应用。
将串流软件服务端的server驱动获取的姿态数据传给数据接口,对于应用平台软件SteamVR中的VR应用使用了应用引擎,已经集成数据接口OpenVR提供的SDK,OpenVR可将姿态数据传给VR应用。
优选地,串流软件服务端的server驱动获取的VR设备的控制信息也发送给VR应用,进行画面渲染。将串流软件的服务端获取的控制信息发送给数据接口,经数据接口传送给VR应用。
S22,根据VR应用得到的姿态数据以及应用逻辑,通过应用引擎进行画面的渲染。
VR应用根据得到的姿态数据以及应用逻辑,传输给应用引擎用以得到确切的渲染画面内容,并进行画面的渲染。应用引擎为Unreal Engine 4,Universal 3D等。
优选地,VR应用还根据得到的控制信息,传输给应用引擎用以得到确切的渲染画面内容,并进行画面的渲染。
S23,将应用引擎渲染好的数据存储在显卡的显存中。
在本发明所提供的实施例中,应用引擎渲染好的数据存放于显卡的显存中,例如Nvidia显卡的显存中,并且通知VR应用,画面已经渲染好了,VR应用通知数据接口OpenVR,数据接口OpenVR通知串流软件服务端的server驱动渲染完成的事件。
S3,获取渲染好的画面,发送给VR设备进行显示。
具体包括如下步骤:
S31,获取渲染好的画面对应的纹理数据,将一帧画面编码成多个数据包。
当串流软件服务端的server驱动得知画面渲染好的事件后,通过OpenVR传来的纹理地址,在显存中找到对应的纹理数据,即为一帧画面的数据,将一帧画面编码成多个数据包。
在本发明所提供的实施例中,采用英伟达提供的视频编解码的专用库,NvCodec库。
在进行初始化的时候,预先告知NvCodec库编码格式、画面格式。在本发明所提供的实施例中,使用H264对数据进行编码。关于画面格式,使用NV_ENC_BUFFER_FORMAT_ABGR格式的图像,在当前帧中,NvCodec库会按要求,将一帧画面编码成多个小的数据包。
S32,将编码的多个数据包发送给VR设备进行解码并显示。
完成编码后,串流软件服务端的server驱动将编码的多个数据包发送给VR设备上安装的串流软件客户端,串流软件客户端再传输给VR设备,VR设备在接收到一个完整的帧画面数据后,对接收的数据包进行解码,在VR设备上形成一幅完整的图像并显示。
VR设备进行画面显示的方法和相关硬件可使用现有的可实现的任何一种方法和硬件,在此不做具体要求。
综上所述,本发明所提供的实现视频串流的方法,串流软件的服务端获取VR设备的姿态数据和控制信息;将获取的姿态数据和控制信息发送给VR应用进行画面渲染;获取渲染好的画面,发送给VR一设备进行显示。串流软件的服务端安装在PC终端,该方法使得负责运行VR应用的是PC端,VR设备要负责的仅仅是画面显示而已;因此即可通过PC的硬件进行画面处理,VR设备屏幕上就可以得到让人满意的画面;而且,通过5G路由器无线连接PC机与VR设备,解决了困扰众多厂商的“VR无线化”的技术难题,通过5G路由器无线连接PC机与VR设备所产生的实际延迟基本可以忽略不计。
实施例二
如图3所示,本发明所提供的实现视频串流的***,包括终端、VR设备、定位追踪装置。
其中,终端上安装有应用平台软件和串流软件的服务端;在本发明所提供的实施例中,终端以PC(personal computer)为例进行说明,也可以为平板电脑、智能电视、智能手机等类似具有数据处理能力的终端。其中,示例性地,PC机上安装的应用平台软件为SteamVR平台软件(在智能手机上为相应的APP)。当然也可以是其他应用平台例如VIVEPORT平台、HYPEREAL平台、蚁视VR应用平台、大朋助手、腾讯WEGAME、OGP应用平台等。应用平台软件中的VR应用使用了应用引擎(UE4,U3D等),已经集成数据接口提供的SDK,例如Steam VR平台软件的数据接口OpenVR提供的SDK,这样就可以在PC的显示器上看到应用的画面。串流软件的服务器端例如可以设置为NOLOHOME软件的A端。
串流软件的服务端包括两部分,一部分是控制界面,一部分是server驱动。其中,该server驱动优选为一个dll文件,但也可以是其它实现形式,例如SDK、API文件等等。应用平台软件,例如Steam VR平台软件在PC机上启动时,会相应加载上述的server驱动。
VR设备上安装有串流软件的客户端,例如可以设置为NOLOHOME软件的B端。VR设备可以为一体式VR设备,则串流软件的客户端安装在一体式VR设备的***中,画面也是在一体式VR设备的显示屏上显示,传感器固装在一体式VR设备。VR设备可以为移动式VR设备,则串流软件的客户端安装在移动式VR设备的智能手机中,画面可以在移动式VR设备的智能手机上显示,也可以在移动式VR设备的显示屏上显示,传感器可以固装在移动式VR设备的外壳中也可以借用安装在移动式VR设备中智能手机的传感器。
上述PC机和VR设备之间采用有线/无线方式进行连接,其中在采取无线方式时,优选在WLAN(无线局域网)或者5G通信环境下运行。由于5G通信具有高速率、低延迟等特点,在5G通信环境下PC与VR设备所产生的实际延迟基本可以忽略不计。
优选地,现有的VR设备多数只能观看视频,即只有三自由度的姿态追踪(俯仰、横滚和偏航),如果需要进行六自由度的头手位置定位(包括俯仰、横滚、偏航和空间X、Y、Z坐标),则需要配备定位追踪装置。定位追踪装置用于追踪用户的位置,例如可以包括把持在用户手上的手柄,用以追踪用户手部的位置;内置或外设方式安装在VR设备上的***,用以追踪用户头部的位置。手柄可将定位数据传给***,***再将***的定位数据和手柄的定位数据传给VR设备,或者,手柄和***都将定位数据直接传给VR设备。
VR设备获取了定位追踪装置采集的定位数据,并获取定位追踪装置的姿态数据和自身的姿态数据,再利用串流软件的客户端将定位数据和姿态数据通过UDP发送给终端上的串流软件的服务端。终端上的串流软件的服务端将定位数据和姿态数据发送给应用平台软件,从而让应用平台软件渲染出实时画面。
为了能够让VR应用的画面串流到VR设备中,按照图3所示的架构来实现该需求,在图3所示的串流架构中,需要实现的几个核心模块分别是:串流软件服务端的server驱动,VR设备,安装在VR设备上的串流软件的客户端,定位追踪装置。其中,定位追踪装置用于采集用户身体的定位数据和姿态数据;VR设备用于获取定位数据和姿态数据,并将数据传输给server驱动;串流软件的客户端和server驱动用于进行数据传输和处理。
图4所示是本发明提供的实现视频串流的方法的流程图,本发明提供的实现视频串流的方法,包括如下步骤:启动VR设备上的串流软件的客户端,例如B端NOLOHOME软件,并启动位于PC机上的串流软件的服务端,例如A端NOLOHOME软件。串流软件服务端的控制界面UI包括各种控制按键,通过控制按键启动串流软件,将A端和B端连接。VR设备上串流软件的客户端可将姿态数据、控制信息、定位数据等发送给PC机的串流软件服务端的server驱动,server驱动对接收到这些数据进行处理,发送给应用平台软件进行画面渲染,server驱动再将渲染后的画面发送给VR设备进行画面显示。具体包括如下步骤:
S1,获取姿态数据和定位数据。
获取姿态数据和定位数据,具体包括如下步骤:
S11,通过定位追踪装置采集用户的定位数据和/或姿态数据。
定位追踪装置可以包括安装在VR设备上的***、把持在用户手上的手柄等,通过获得***和/或手柄的定位数据,即可获得用户头部和/或手部的定位数据。用户的定位数据可以通过专利申请号为201610917518.0的一种三维空间定位方法及***获得,也可以使用其他现有已知的三维空间定位方法及***获得。
用户头部的姿态数据可以通过安装在VR设备上传感器得到,也可以通过安装在VR设备上的***上的传感器得到,上述传感器例如为九轴传感器、惯性传感器、六轴传感器、陀螺仪、地磁计等。用户其他部位,例如手部的姿态数据通过安装在定位追踪装置手柄上的传感器得到。
S12,将采集的姿态数据和定位数据发送到VR设备上。
VR设备可以通过OTG数据线等有线的方式读取姿态数据和定位数据,也可以通过蓝牙、wifi等无线方式读取姿态数据和定位数据。对于一体式VR设备,则数据直接发送到一体式VR设备的***中;对于移动式VR设备,则数据可以发送到安装在移动式VR设备外壳中的智能手机上。
S13,将获取的姿态数据和定位数据发送到串流软件服务端。
VR设备将获取的姿态数据和定位数据传输给安装在VR设备上的串流软件的客户端,再经UDP通过5G无线方式发送到安装在终端上的串流软件服务端的server驱动。经此步骤,串流软件的服务端获取到定位数据和姿态数据。
优选地,串流软件的服务端还可以获取控制信息,控制信息也可以通过串流软件的客户端,经UDP发送到串流软件服务端的server驱动。控制信息可以是来自于VR设备,也可以是来自于定位追踪装置。
S2,将获取的姿态数据和定位数据发送给VR应用进行画面渲染,具体包括如下步骤:
S21,将获取的姿态数据和定位数据发送给数据接口,经数据接口传送给VR应用。
将串流软件服务端的server驱动获取的姿态数据和定位数据传给数据接口,对于应用平台软件SteamVR中的VR应用使用了应用引擎,已经集成数据接口OpenVR提供的SDK,数据接口OpenVR将姿态数据和定位数据传给VR应用。
优选地,串流软件服务端的server驱动获取的控制信息也发送给VR应用。将串流软件服务端的server驱动获取的控制信息发送给数据接口OpenVR,经数据接口OpenVR传送给VR应用。
S22,根据VR应用得到的定位数据、姿态数据以及应用逻辑,通过应用引擎进行画面的渲染。
这时候VR应用根据得到的定位数据、姿态数据以及应用逻辑,传输给应用引擎确切的渲染画面内容,进行画面的渲染。应用引擎为Unreal Engine 4,Universal 3D等。
优选地,VR应用将得到的控制信息也传输给应用引擎确切的渲染画面内容,进行画面的渲染。
S23,将应用引擎渲染好的数据存储在显卡的显存中。
在本发明所提供的实施例中,应用引擎渲染好的数据存放于显卡的显存中,并且通知VR应用画面已经渲染好了,VR应用通知数据接口,数据接口通知串流软件server驱动渲染完成的事件。
S3,获取渲染好的画面,发送给VR设备进行显示。
具体包括如下步骤:
S31,获取渲染好的画面对应的纹理数据,将一帧画面编码成多个数据包。
当串流软件server驱动得知画面渲染好的事件后,通过数据接口传来的纹理地址,在显存中找到对应的纹理数据,即为一帧画面的数据,将一帧画面编码成多个数据包。
在本发明所提供的实施例中,采用英伟达提供的视频编解码的专用库,NvCodec库。
在进行初始化的时候,预先告知NvCodec库编码格式、画面格式。在本发明所提供的实施例中,使用H264对数据进行编码。关于画面格式,使用NV_ENC_BUFFER_FORMAT_ABGR格式的图像,在当前帧中,NvCodec库会按要求,将一帧画面编码成多个小的数据包。
S32,将编码的多个数据包发送给VR设备进行解码并显示。
完成编码后,串流软件服务端的server驱动将编码的多个数据包发送给VR设备上安装的串流软件的客户端,串流软件的客户端再传输给VR设备,VR设备在接收到一个完整的帧画面数据后,对接收的数据包进行解码,在VR设备上形成一幅完整的图像并显示。VR设备进行画面显示的方法和相关硬件可使用现有的可实现的任何一种方法和硬件,在此不做具体要求。
综上所述,本发明所提供的实现视频串流的方法,串流软件的服务获取定位数据和姿态数据;将获取的姿态数据和定位数据发送给VR应用,进行画面渲染;获取渲染好的画面,发送给VR设备进行显示。串流软件的服务端安装在PC终端,该方法使得负责运行VR应用的是PC机,VR设备要负责的仅仅是画面显示而已;因此即可通过PC的硬件进行画面处理,VR设备屏幕上就可以得到让人满意的画面;而且,通过5G路由器无线连接PC机与VR设备,解决了困扰众多厂商的“VR无线化”的技术难题,通过5G路由器无线连接PC机与VR设备所产生的实际延迟基本可以忽略不计。
本发明实施例还提供了一种实现视频串流的装置,该装置包括处理器和存储器,所述处理器用于执行存储器中存储的实现视频串流的程序,以实现如上所述的实现视频串流的方法。这里的存储器存储有一个或者多个程序。其中,存储器可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。当存储器中所述一个或者多个程序可被一个或者多个处理器执行,以实现上述的用于实现上述方法实施例中实现视频串流的方法的部分步骤或者全部步骤。
上面对本发明所提供的实现视频串流的***及方法进行了详细的说明。对本领域的一般技术人员而言,在不背离本发明实质精神的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。
Claims (14)
1.一种实现视频串流的***,其特征在于包括终端和VR设备;
其中,所述终端上安装有应用平台软件和串流软件的服务端;
所述VR设备上安装有串流软件的客户端,所述串流软件的客户端将姿态数据发送给所述终端上串流软件的服务端;所述串流软件的服务端将所述姿态数据发送给所述应用平台软件,由所述应用平台软件渲染出画面。
2.一种实现视频串流的***,其特征在于包括终端、VR设备和定位追踪装置;
其中,所述终端上安装有应用平台软件和串流软件的服务端;
所述定位追踪装置用于采集定位数据并发送给VR设备;
所述VR设备上安装有串流软件的客户端,所述串流软件的客户端将姿态数据和所述定位数据发送给所述终端上串流软件的服务端;所述串流软件的服务端将所述姿态数据和所述定位数据发送给所述应用平台软件,由所述应用平台软件渲染出画面。
3.如权利要求1或2所述的实现视频串流的***,其特征在于:
所述串流软件的服务端包括控制界面和server驱动,当所述应用平台软件在终端上启动时,加载所述server驱动。
4.如权利要求1或2所述的实现视频串流的***,其特征在于:所述串流软件的服务端获取渲染好的画面,发送给串流软件的客户端;所述串流软件的客户端将画面发送给所述VR设备进行显示。
5.如权利要求1或2所述的实现视频串流的***,其特征在于:所述串流软件的客户端通过无线方式将姿态数据和/或定位数据发送给串流软件的服务端,所述无线方式为5G。
6.一种实现视频串流的方法,其特征在于包括如下步骤:
获取VR设备的姿态数据;
将获取的姿态数据发送给VR应用进行画面渲染;
获取渲染好的画面,发送给VR设备进行显示。
7.如权利要求6所述的实现视频串流的方法,其特征在于所述获取VR设备的姿态数据,包括如下步骤:
安装在VR设备上的串流软件的客户端获取VR设备的姿态数据;
安装在终端上的串流软件服务端获取所述串流软件的客户端发送的所述VR设备的姿态数据。
8.如权利要求6所述的实现视频串流的方法,其特征在于所述将获取的姿态数据发送给VR应用进行画面渲染,包括如下步骤:
将获取的姿态数据发送给数据接口,经数据接口传送给VR应用;
根据VR应用得到的姿态数据以及应用逻辑,通过应用引擎进行画面的渲染;
将应用引擎渲染好的数据存储在显卡的显存中。
9.一种实现视频串流的方法,其特征在于包括如下步骤:
获取姿态数据和定位数据;
将获取的姿态数据和定位数据发送给VR应用进行画面渲染;
获取渲染好的画面,发送给VR设备进行显示。
10.如权利要求9所述的实现视频串流的方法,其特征在于所述获取姿态数据和定位数据,包括如下步骤:
通过定位追踪装置采集用户的定位数据和/或姿态数据;
将定位追踪装置采集的定位数据和/或姿态数据发送到VR设备上;
串流软件服务端获取VR设备通过UDP发送的所述定位数据和姿态数据。
11.如权利要求9所述的实现视频串流的方法,其特征在于所述将获取的姿态数据和定位数据发送给VR应用进行画面渲染,包括如下步骤:
将串流软件的服务端获取的姿态数据和定位数据发送给数据接口,经数据接口传送给VR应用;
根据VR应用得到的定位数据、姿态数据以及应用逻辑,通过应用引擎进行画面的渲染;
将应用引擎渲染好的数据存储在显卡的显存中。
12.如权利要求6或9所述的实现视频串流的方法,其特征在于所述获取渲染好的画面,发送给VR设备进行显示,包括如下步骤:
获取渲染好的画面对应的纹理数据,将一帧画面编码成多个数据包;
将编码的多个数据包发送给VR设备进行解码并显示。
13.如权利要求6或9所述的实现视频串流的方法,其特征在于还包括获取控制信息,将获取的控制信息发送给VR应用进行画面渲染;
其中,所述控制信息来自于VR设备或者来自于定位追踪装置。
14.一种实现视频串流的装置,包括处理器及存储器,所述处理器用于执行存储器中存储的实现视频串流的程序,以实现如权利要求6或8所述的实现视频串流的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811203090.9A CN111064985A (zh) | 2018-10-16 | 2018-10-16 | 一种实现视频串流的***、方法及装置 |
PCT/CN2019/111315 WO2020078354A1 (zh) | 2018-10-16 | 2019-10-15 | 视频串流***、视频串流方法及装置 |
US17/286,387 US11500455B2 (en) | 2018-10-16 | 2019-10-15 | Video streaming system, video streaming method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811203090.9A CN111064985A (zh) | 2018-10-16 | 2018-10-16 | 一种实现视频串流的***、方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111064985A true CN111064985A (zh) | 2020-04-24 |
Family
ID=70296540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811203090.9A Pending CN111064985A (zh) | 2018-10-16 | 2018-10-16 | 一种实现视频串流的***、方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111064985A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111831353A (zh) * | 2020-07-09 | 2020-10-27 | 平行云科技(北京)有限公司 | 基于OpenXR标准的运行库、数据交互方法、设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104035760A (zh) * | 2014-03-04 | 2014-09-10 | 苏州天魂网络科技有限公司 | 跨移动平台实现沉浸式虚拟现实的*** |
US20170186231A1 (en) * | 2015-12-28 | 2017-06-29 | Oculus Vr, Llc | Increasing field of view of head-mounted display using a mirror |
CN106998409A (zh) * | 2017-03-21 | 2017-08-01 | 华为技术有限公司 | 一种图像处理方法、头戴显示器以及渲染设备 |
CN206541288U (zh) * | 2017-01-07 | 2017-10-03 | 北京国承万通信息科技有限公司 | 一种虚拟现实***、主机及头戴式显示设备 |
CN107315470A (zh) * | 2017-05-25 | 2017-11-03 | 腾讯科技(深圳)有限公司 | 图形处理方法、处理器和虚拟现实*** |
CN107979763A (zh) * | 2016-10-21 | 2018-05-01 | 阿里巴巴集团控股有限公司 | 一种虚拟现实设备生成视频、播放方法、装置及*** |
CN108111839A (zh) * | 2017-12-22 | 2018-06-01 | 北京轻威科技有限责任公司 | 一种串流式无线虚拟现实头盔 |
-
2018
- 2018-10-16 CN CN201811203090.9A patent/CN111064985A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104035760A (zh) * | 2014-03-04 | 2014-09-10 | 苏州天魂网络科技有限公司 | 跨移动平台实现沉浸式虚拟现实的*** |
US20170186231A1 (en) * | 2015-12-28 | 2017-06-29 | Oculus Vr, Llc | Increasing field of view of head-mounted display using a mirror |
CN107979763A (zh) * | 2016-10-21 | 2018-05-01 | 阿里巴巴集团控股有限公司 | 一种虚拟现实设备生成视频、播放方法、装置及*** |
CN206541288U (zh) * | 2017-01-07 | 2017-10-03 | 北京国承万通信息科技有限公司 | 一种虚拟现实***、主机及头戴式显示设备 |
CN106998409A (zh) * | 2017-03-21 | 2017-08-01 | 华为技术有限公司 | 一种图像处理方法、头戴显示器以及渲染设备 |
CN107315470A (zh) * | 2017-05-25 | 2017-11-03 | 腾讯科技(深圳)有限公司 | 图形处理方法、处理器和虚拟现实*** |
CN108111839A (zh) * | 2017-12-22 | 2018-06-01 | 北京轻威科技有限责任公司 | 一种串流式无线虚拟现实头盔 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111831353A (zh) * | 2020-07-09 | 2020-10-27 | 平行云科技(北京)有限公司 | 基于OpenXR标准的运行库、数据交互方法、设备及介质 |
CN111831353B (zh) * | 2020-07-09 | 2024-02-20 | 平行云科技(北京)有限公司 | 基于OpenXR标准的运行库、数据交互方法、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10229651B2 (en) | Variable refresh rate video capture and playback | |
EP3180911B1 (en) | Immersive video | |
US20200118343A1 (en) | Methods, systems and devices supporting real-time interactions in augmented reality environments | |
KR20210151114A (ko) | 하이브리드 렌더링 | |
CN108668168B (zh) | 基于Unity 3D的安卓VR视频播放器及其设计方法 | |
KR20160138908A (ko) | 햅틱 효과를 나타내는 데이터를 포함하는 패킷을 인코딩/디코딩하기 위한 방법 및 장치 | |
US20180336069A1 (en) | Systems and methods for a hardware agnostic virtual experience | |
US10437055B2 (en) | Master device, slave device, and control method therefor | |
US20220068001A1 (en) | Facial animation control by automatic generation of facial action units using text and speech | |
US20240098344A1 (en) | Video modification and transmission using tokens | |
KR102503337B1 (ko) | 이미지 디스플레이 방법, 장치 및 시스템 | |
US20190295324A1 (en) | Optimized content sharing interaction using a mixed reality environment | |
CN111064981B (zh) | 一种视频串流的***及方法 | |
WO2021196973A1 (zh) | 虚拟内容的显示方法、装置、电子设备及存储介质 | |
CN111064985A (zh) | 一种实现视频串流的***、方法及装置 | |
US20240062467A1 (en) | Distributed generation of virtual content | |
KR102261739B1 (ko) | 증강 현실 미디어 콘텐츠의 적응적 스트리밍 시스템 및 적응적 스트리밍 방법 | |
EP4156109A1 (en) | Apparatus and method for establishing a three-dimensional conversational service | |
US11500455B2 (en) | Video streaming system, video streaming method and apparatus | |
CN111065053B (zh) | 一种视频串流的***及方法 | |
KR20200116380A (ko) | 모바일을 이용한 vr 디바이스에 호환 가능한 스포츠 기기와 컨테츠 제공 방법 | |
US20240259529A1 (en) | Communication framework for virtual representation calls | |
US20230122666A1 (en) | Cloud xr-based program virtualizing method | |
US20220345678A1 (en) | Distributed Virtual Reality | |
JP2023092729A (ja) | 通信装置、通信システム、表示方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200424 |
|
RJ01 | Rejection of invention patent application after publication |