一种基于裸眼vr的视频播放方法、播放器和播放设备

文档序号:73109 发布日期:2021-10-01 浏览:27次 >En<

阅读说明:本技术 一种基于裸眼vr的视频播放方法、播放器和播放设备 (Video playing method, player and playing device based on naked eye VR ) 是由 许玲 于 2021-07-12 设计创作,主要内容包括:本发明提供一种基于裸眼VR的视频播放方法、播放器和播放设备,所述方法包括:解析视频地址,并基于所述视频地址从服务器中获取视频的二进制数据;调用解封装模块对所述二进制数据解封装以得到视频流数据;调用视频流解码器解码所述视频流数据,得到逐帧的原始画面;基于底层OpenGL对每一帧所述原始画面进行畸变变形和3D渲染,并将渲染后的画面在大屏端进行显示播放。本发明的用户可以实现裸眼观看VR视频,而无需佩戴专门的VR设备,提高用户体验。(The invention provides a video playing method, a player and playing equipment based on naked eye VR, wherein the method comprises the steps of analyzing a video address and acquiring binary data of a video from a server based on the video address; a decapsulation module is called to decapsulate the binary data to obtain video stream data; calling a video stream decoder to decode the video stream data to obtain an original frame by frame; and performing distortion and 3D rendering on each frame of the original picture based on the bottom layer OpenGL, and displaying and playing the rendered picture at a large screen end. According to the invention, the user can watch the VR video with naked eyes without wearing special VR equipment, so that the user experience is improved.)

一种基于裸眼VR的视频播放方法、播放器和播放设备

技术领域

本发明属于虚拟现实

技术领域

,具体涉及一种基于裸眼VR的视频播放方法、播放器和播放设备。

背景技术

虚拟现实(Virtual Reality),简称VR技术,具有“沉浸—交互—构想”三个基本要素,它强调在虚拟系统中的人的主导作用,是一种多源信息融合的、交互式的、三维动态视景与实体行为的系统仿真,使用户沉浸到该环境中。该技术集成了计算机图形(CG)技术、计算机仿真技术、人工智能、显示技术和网络并行处理等技术,是一种由计算机技术辅助生成的高技术模拟系统。

头戴类VR显示设备是虚拟现实的一种主要形式,通过例如VR沉浸式的头盔的体验,用户可以直接置身于虚拟世界之中。头盔式显示器将人的对外界的视觉、听觉封闭,引导用户产生一种身在虚拟环境中的感觉。其显示原理是左右眼屏幕分别显示左右眼的图像,人眼获取这种带有差异的信息后在脑海中产生立体感。

但是用户佩戴VR头盔在享受VR内容带来的前所未有的沉浸式体验的同时,也由于VR头盔具有的一些固有的缺点,比如笨重不轻便,佩戴时无法正常观看实际环境,长时间佩戴会给用户带来不适感等。

发明内容

本发明的目的是提供一种基于裸眼VR的视频播放方法、播放器和播放设备,用于解决现有技术中存在的至少一个问题。

为了实现上述目的,本发明采用以下技术方案:

第一方面,本发明提供一种基于裸眼VR的视频播放方法,包括:

解析视频地址,并基于所述视频地址从服务器中获取视频的二进制数据;

调用解封装模块对所述二进制数据解封装以得到视频流数据;

调用视频流解码器解码所述视频流数据,得到逐帧的原始画面;

基于底层OpenGL对每一帧所述原始画面进行畸变变形和3D渲染,并将渲染后的画面在大屏端进行显示播放。

在一种可能的设计中,还包括:

接收并响应外部指令,基于fov对所述大屏端中当前显示的画面进行切片渲染。

在一种可能的设计中,解析视频地址,并基于所述视频地址从服务器中获取视频的二进制数据,包括:

解析视频地址,并基于所述视频地址获取服务器的IP地址和端口号;

基于所述IP地址和所述端口号与服务器建立连接;

从服务器中获取视频的二进制数据。

在一种可能的设计中,调用解封装模块对所述二进制数据解封装以得到视频流数据之前,还包括:

解析所述二进制数据,并判断所述二进制数据的封装格式。

在一种可能的设计中,调用视频流解码器解码所述视频流数据,得到逐帧的原始画面之后,还包括:

将每一帧所述原始画面存储在视频帧队列中。

在一种可能的设计中,基于底层OpenGL对每一帧所述原始画面进行畸变变形和3D渲染之前,还包括:

从所述视频帧队列中逐帧取出所述原始画面。

在一种可能的设计中,基于底层OpenGL对每一帧所述原始画面进行畸变变形和3D渲染,包括:

根据所述视频流数据的不同类型,基于底层OpenGL对每一帧所述原始画面做不同类型的畸变变形,并进行3D渲染。

第二方面,本发明提供一种裸眼VR播放器,用于实现第一方面任意一种可能的设计中所述的基于裸眼VR的视频播放方法,所述裸眼VR播放器包括:

协议集成模块,用于集成和适配多种编解码器和网络协议;

第一渲染模块,用于基于OpenGL对视频流的每一帧原始画面进行畸变变形和3D渲染;

第二渲染模块,用于基于Fov对大屏端当前显示的画面进行切片渲染;

机顶盒适配模块,用于基于底层接口适配多种型号的机顶盒;

外接设备响应模块,用于接收并响应外接设备的操作指令。

第三方面,本发明提供一种裸眼VR播放设备,包括如第二方面所述的裸眼VR播放器,还包括依次通信相连的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如第一方面任意一种可能的设计中所述的基于裸眼VR的视频播放方法。

第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如第一方面任意一种可能的设计中所述的基于裸眼VR的视频播放方法。

第五方面,本发明提供一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如第一方面任意一种可能的设计中所述的基于裸眼VR的视频播放方法。

有益效果:

本发明提供的基于裸眼VR的视频播放方法中,通过获取视频流的每一帧原始画面,然后基于底层OpenGL对每一帧所述原始画面进行畸变变形和3D渲染,并将渲染后的画面在大屏端进行显示播放,其中,大屏端可以是智能电视,因此可利用智能电视来播放VR视频,用户可以实现裸眼观看VR视频,而无需佩戴专门的VR设备,提高用户体验;此外,用户可以通过外接设备发送指令,包括视角旋转以及视角拉远拉近等指令,系统可根据指令基于fov对大屏端当前显示的画面进行调整,为用户提供实时动态的三维立体逼真图像,使用户获得身临其境的体验,达到与佩戴VR设备同等的显示效果。

附图说明

图1为本发明提供的基于裸眼VR的视频播放方法的流程图;

图2为本发明提供的裸眼VR播放器的结构框图。

具体实施方式

为使本说明书实施例的目的、技术方案和优点更加清楚,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本说明书一部分实施例,而不是全部的实施例。

实施例

第一方面,如图1所示,本实施例提供一种基于裸眼VR的视频播放方法,包括但不限于由步骤S101~S104实现:

步骤S101.解析视频地址,并基于所述视频地址从服务器中获取视频的二进制数据;

在步骤S101中,所述视频地址解析方式包括本地SDK(Software DevelopmentKit,软件开发工具包)解析和WebAPI(Web应用程序编程接口)解析;其中,SDK解析出的地址是离用户最近的服务器节点的地址,相对更加快速和更加流畅;其中,WebAPI解析得到的地址是离服务器节点最近的地址,但是不一定是离用户最近的,此时服务器作为中间媒介,用户获得的解析地址有可能因为距离的问题可能出现卡顿等现象。

作为步骤S101的一种可选的实施方式,其中,解析视频地址,并基于所述视频地址从服务器中获取视频的二进制数据,包括:

步骤S101a.解析视频地址,并基于所述视频地址获取服务器的IP地址和端口号;

步骤S101b.基于所述IP地址和所述端口号与服务器建立连接;

其中,可选的,可以基于TCP协议与所述服务器建立TCP长连接,也可以基于IP协议与所述服务器建立IP长连接,此处不做限定。

步骤S101c.从服务器中获取视频的二进制数据。

当然,可以理解的是,在获取原始视频文件时,该视频文件中除了视频流数据外,通常还包括音频流数据、字幕数据以及其他辅助性的数据等;因此,在获取原始视频文件时,同时能够获取到音频流等数据。

步骤S102.调用解封装模块对所述二进制数据解封装以得到视频流数据;

其中,在调用解封装模块对所述二进制数据解封装以得到视频流数据之前,还包括:解析所述二进制数据,并判断所述二进制数据的封装格式;其中,所述封装格式包括mp4、avi、rmvb、flv和mkv等格式,具体不做限定。

其中,调用所述解封装模块对所述二进制数据解封装获得视频流数据的同时,也能够获得音频流数据、字幕数据以及其他辅助性数据,此处不再赘述。

步骤S103.调用视频流解码器解码所述视频流数据,得到逐帧的原始画面;

其中,需要说明的是,在对所述视频流数据进行解码时,需要首先判断所述视频流数据的编码格式,包括但不限于h264和h265等格式,然后调用所述视频流解码器针对不同编码格式的视频流数据进行解码,得到逐帧的原始画面。

其中,需要说明的是,在对视频流数据进行解码的同时,也可以对包含的音频流数据进行解码,同样需要首先判断音频流数据的编码格式,包括但不限于aac等编码格式,然后调用相应的音频流编码器对音频流数据进行解码。

在步骤S103一个可选的实施方式中,调用视频流解码器解码所述视频流数据,得到逐帧的原始画面之后,还包括:将每一帧所述原始画面存储在视频帧队列中。

同理,在对音频流数据进行解码后,可以将音频数据按照时间节点存储在音频队列中。

步骤S104.基于底层OpenGL(Open Graphics Library,开放图形库)对每一帧所述原始画面进行畸变变形和3D渲染,并将渲染后的画面在大屏端进行显示播放。

步骤S104一个可选的实施方式中,基于底层OpenGL对每一帧所述原始画面进行畸变变形和3D渲染之前,还包括:

从所述视频帧队列中逐帧取出所述原始画面。

其中,需要说明的是,OpenGL定义了跨编程语言和跨平台的编程接口的标准,通过重新编写OpenGL对每一帧所述原始画面进行畸变变形和3D渲染,具体的,对整个原始画面帧先做畸变变形,然后再渲染到屏幕,且当前视角不在屏幕内也进行渲染。因此,可以根据所述视频流数据的不同类型,包括:2D-180、2D-360、3D-180、3d-230和3d-360数据,基于底层OpenGL对每一帧所述原始画面做不同类型的畸变变形,例如:对于2D-360类型的视频流数据做桶形畸变,对于3D-180类型的视频流数据将画面分割成两个画面来实现双眼效果。

其中,需要说明的是,所述大屏端包括但不限于智能电视的播放屏幕以及投影设备的显示屏幕等,具体不做限定。

作为一种可选的实施方式,所述方法还包括:

步骤S105.接收并响应外部指令,基于fov对所述大屏端中当前显示的画面进行切片渲染。

其中,需要说明的是,所述外部指令是指用户通过外接设备发送的指令,所述外接设备包括但不限于遥控器、平板电脑、智能手机以及语音工具等;所述外接设备通过内设驱动的操作可发送操作系统规定的键值,系统接收到该键值后,能够做出响应。为具体说明,以下示出其中一种键值表:

基于上述公开的内容,通过获取视频流的每一帧原始画面,然后基于底层OpenGL对每一帧所述原始画面进行畸变变形和3D渲染,并将渲染后的画面在大屏端进行显示播放,其中,大屏端可以是智能电视,因此可利用智能电视来播放VR视频,用户可以实现裸眼观看VR视频,而无需佩戴专门的VR设备,提高用户体验;此外,用户可以通过外接设备发送指令,包括视角旋转以及视角拉远拉近等指令,系统可根据指令基于fov对大屏端当前显示的画面进行调整,为用户提供实时动态的三维立体逼真图像,使用户获得身临其境的体验,达到与佩戴VR设备同等的显示效果。

第二方面,如图2所示,本实施例提供一种裸眼VR播放器,用于实现如第一方面任意一种可能的设计中所述的基于裸眼VR的视频播放方法,所述裸眼VR播放器包括:

协议集成模块,用于集成和适配多种编解码器和网络协议;

其中,需要说明的是,所述编解码器包括但不限于FLV编解码器、MPEG-1编解码器、MPEG-1编解码器、MPEG-4编解码器、AVS编解码器、Divx、XviD和3ivx编解码器、WMV编解码器、RealVideo编解码器和Cinepal编解码器等。其中,网络协议包括但不限于TCP/IP协议、NetBEUI协议和IPX/SPX协议等。

第一渲染模块,用于基于OpenGL对视频流的每一帧原始画面进行畸变变形和3D渲染;

第二渲染模块,用于基于Fov对大屏端当前显示的画面进行切片渲染;

机顶盒适配模块,用于基于底层接口适配多种型号的机顶盒;

其中,所述机顶盒适配模块通过底层接口获取机顶盒型号,然后对照播放器自身所携带的机顶盒列表参数做相应的功能调整;例如,一款型号的机顶盒本身不支持3D-180,对该类型视频底层会自动转为2D-180渲染。

外接设备响应模块,用于接收并响应外接设备的操作指令。

其中,需要说明的是,所述操作指令是指用户通过外接设备发送的指令,所述外接设备包括但不限于遥控器、平板电脑、智能手机以及语音工具等;所述外接设备通过内设驱动的操作可发送操作系统规定的键值,系统接收到该键值后,能够做出响应。

本实施例第二方面提供的装置的工作过程、工作细节和技术效果,可以参见实施例第一方面,于此不再赘述

第三方面,本发明提供一种裸眼VR播放设备,包括如第二方面所述的裸眼VR播放器,还包括依次通信相连的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如第一方面任意一种可能的设计中所述的基于裸眼VR的视频播放方法。

具体举例的,所述存储器可以但不限于包括随机存取存储器(Random-AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、闪存(Flash Memory)、先进先出存储器(First Input First Output,FIFO)和/或先进后出存储器(First Input Last Output,FILO)等等;所述收发器可以但不限于为WiFi(无线保真)无线收发器、蓝牙无线收发器、GPRS(General Packet Radio Service,通用分组无线服务技术)无线收发器和/或ZigBee(紫蜂协议,基于IEEE802.15.4标准的低功耗局域网协议)无线收发器等;所述处理器可以不限于采用型号为STM32F105系列的微处理器。

本实施例第三方面提供的装置的工作过程、工作细节和技术效果,可以参见实施例第一方面,于此不再赘述。

第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如第一方面任意一种可能的设计中所述的基于裸眼VR的视频播放方法。其中,所述可读存储介质是指存储数据的载体,可以但不限于包括软盘、光盘、硬盘、闪存、优盘和/或记忆棒(Memory Stick)等,所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。

本实施例第四方面提供的装置的工作过程、工作细节和技术效果,可以参见实施例第一方面,于此不再赘述。

第五方面,本发明提供一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如第一方面任意一种可能的设计中所述的基于裸眼VR的视频播放方法。其中,所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。

本实施例第五方面提供的装置的工作过程、工作细节和技术效果,可以参见实施例第一方面,于此不再赘述

最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

9页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:图像同步方法、图像显示及处理设备、及图像同步系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类