发明内容
有鉴于此,本申请实施例提供一种全景视频的视场控制方法、装置、设备及存储介质。
本申请实施例提供了一种全景视频的视场控制方法,包括:
根据展示全景视频播放窗口的设备类型,监听方向转动事件;
根据所述方向转动事件,调整所述播放窗口对应的播放窗口视场;
将调整后的播放窗口视场在三维模型的表面纹理中进行投影,得到纹理区域;其中,所述表面纹理是将所述全景视频的视频帧的像素点对应的纹理坐标,映射到所述三维模型的表面的顶点坐标得到的;
在所述播放窗口中渲染所述纹理区域。
上述方案中,在所述根据展示全景视频播放窗口的设备类型,监听方向转动事件之前,所述方法还包括:
将所述全景视频的视频帧的像素点映射到纹理空间,得到所述像素点的纹理坐标;
将所述像素点的纹理坐标映射到所述三维模型的表面的顶点坐标,形成所述表面纹理。
上述方案中,所述根据所述方向转动事件,调整所述播放窗口对应的播放窗口视场,包括:
根据所述方向转动事件,确定所述全景视频对应的方向转动参数;
按照所述方向转动参数,转动所述播放窗口视场的角度。
上述方案中,所述根据展示全景视频播放窗口的设备类型,监听方向转动事件,包括:
当所述设备类型为触控终端类型时,监听触控操作触发的方向转动事件;
当所述设备类型为受实体控制终端类型时,监听实体操作触发的方向转动事件。
上述方案中,所述根据所述方向转动事件,确定所述全景视频对应的方向转动参数,包括:
当所述方向转动事件包含至少两种方向转动事件时,按照预设方向转动事件优先级,分别响应所述至少两种方向转动事件,确定所述全景视频对应的方向转动参数。
上述方案中,所述根据所述方向转动事件,调整所述播放窗口对应的播放窗口视场,还包括:
响应所述方向转动事件,按照预设的方向转动角度调整所述播放窗口对应的播放窗口视场;或者,
响应所述方向转动事件,按照预设的方向转动速度调整所述播放窗口对应的播放窗口视场。
上述方案中,所述根据所述方向转动事件,调整所述播放窗口对应的播放窗口视场,还包括:
根据所述方向转动事件,调整播放窗口中当前显示的视频帧处于所述全景视频的视频帧中的位置
本申请实施例提供了一种全景视频的视场控制装置,包括:
第一监听模块,用于根据展示全景视频播放窗口的设备类型,监听方向转动事件;
第一调整模块,用于根据所述方向转动事件,调整所述播放窗口对应的播放窗口视场;
第一投影模块,用于将调整后的播放窗口视场在三维模型的表面纹理中进行投影,得到纹理区域;其中,所述表面纹理是将所述全景视频的视频帧的像素点对应的纹理坐标,映射到所述三维模型的表面的顶点坐标得到的;
第一渲染模块,用于在所述播放窗口中渲染所述纹理区域。
上述方案中,所述装置还包括:
将所述全景视频的视频帧的像素点映射到纹理空间,得到所述像素点的纹理坐标;
将所述像素点的纹理坐标映射到所述三维模型的表面的顶点坐标,形成所述表面纹理。
上述方案中,所述第一调整模块,包括:
第一确定单元,用于根据所述方向转动事件,确定所述全景视频对应的方向转动参数;
第一转动单元,用于按照所述方向转动参数,转动所述播放窗口视场的角度。
上述方案中,所述第一监听模块,包括:
第一监听单元,用于当所述设备类型为触控终端类型时,监听触控操作触发的方向转动事件;
第二监听单元,用于当所述设备类型为受实体控制终端类型时,监听实体操作触发的方向转动事件。
上述方案中,所述第一确定单元,包括:
第一响应子单元,用于当所述方向转动事件包含至少两种方向转动事件时,按照预设方向转动事件优先级,分别响应所述至少两种方向转动事件,确定所述全景视频对应的方向转动参数。
上述方案中,所述第一调整模块,还包括:
第一调整单元,用于响应所述方向转动事件,按照预设的方向转动角度调整所述播放窗口对应的播放窗口视场;或者,
第二调整单元,用于响应所述方向转动事件,按照预设的方向转动速度调整所述播放窗口对应的播放窗口视场。
上述方案中,所述第一调整模块,还包括:
第三调整单元,用于根据所述方向转动事件,调整播放窗口中当前显示的视频帧处于所述全景视频的视频帧中的位置
本申请实施例提供了一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述可执行指令时,实现本申请实施例提供的全景视频的视场控制方法。
本申请实施例提供了一种存储介质,存储有可执行指令,所述可执行指令被执行时,用于实现本申请实施例提供的全景视频的视场控制方法。
本申请实施例提供一种全景视频的视场控制方法、装置、设备及存储介质,通过根据设备类型来监听相应的方向转动事件,从而解决了全景视频的视场方向转指令与终端的UI交互机制不兼容的问题,使得全景视频在不同的终端上完成全景视频的方向转动。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,除非另有定义,本申请实施例所使用的技术和科学术语与属于本申请实施例的技术领域的技术人员通常理解的含义相同。所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请实施例,本申请实施例中涉及的名词和术语适用于如下的解释。
1)全景视频,是指在各种电子设备中播放能够供用户裸眼观看的视频,且播放窗口的视场能够进行方向和放大倍数的调整。
2)三维模型,是模拟全景视频所表达的空间的模型,用于将全景视频的视频帧映射到三维模型的表面以形成表面纹理,三维模型的表面一般采用球面或圆柱面。
3)视场,在三维模型的中心的虚拟镜头感知三维模型的表面纹理的视线的集合,更一般地,是指通过一个窗口在全景视频的视频帧中能够观看的区域。
4)播放窗口,全景视频的客户端中默认用于播放全景视频的全屏或非全屏的窗口,至少包括全景视频的视频播放区域,还可以包括设置有相关操作的入口的操作区域。
5)播放窗口视场,即与播放窗口对应的视场,控制在播放窗口中能够感知到视频帧中处于相应视场的部分内容。
6)子窗口,全景视频的客户端中辅助用于播放的非全屏的窗口,小于播放存储,至少包括全景视频的视频播放区域,还可以包括设置有相关操作的入口的操作区域。
7)子窗口视场,即与子窗口对应的视场,控制在窗口中能够感知到的视频帧中处于相应视场的部分内容。
8)纹理,视频帧中的对象在颜色、几何上有规律的特性,以视频帧中各纹理像素的纹理坐标和对应的颜色值表示。
9)纹理区域,视场在三维模型的表面纹理的投影所包括的区域,是三维模型的表面纹理的一个子集,例如全景视频帧能够完整展示的区域的视角在垂直方向和水平方向可以覆盖0至180度,而视场对应的纹理区域覆盖的视角在垂直方向和水平方向可以覆盖0至30度。
下面参见图1,图1为实现本申请实施例的电子设备100的结构示意图。电子设备可以是各种终端,包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、个人数字助理(PDA,Personal Digital Assistant)、平板电脑(PAD)、便携式多媒体播放器(PMP,Portable Media Player)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字电视(TV)、台式计算机等等的固定终端。图1示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图1所示,电子设备100可以包括处理装置(例如中央处理器、图形处理器等)110,其可以根据存储在只读存储器(ROM,Read-Only Memory)120中的程序或者从存储装置180加载到随机访问存储器(RAM,Random Access Memory)130中的程序而执行各种适当的动作和处理。在RAM 130中,还存储有电子设备100操作所需的各种程序和数据。处理装置110、ROM 120以及RAM 130通过总线140彼此相连。输入/输出(I/O,Input/Output)接口150也连接至总线140。
通常,以下装置可以连接至I/O接口150:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置160;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置170;包括例如磁带、硬盘等的存储装置180;以及通信装置190。通信装置190可以允许电子设备100与其他设备进行无线或有线通信以交换数据。虽然图1示出了具有各种装置的电子设备100,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本申请的实施例,所提供的流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,计算机程序可以通过通信装置190从网络上被下载和安装,或者从存储装置180被安装,或者从ROM 120被安装。在计算机程序被处理装置110执行时,执行本申请实施例的方法中的功能。
需要说明的是,本申请实施例上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
在本申请实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,计算机可读信号介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、射频(RF,Radio Frequency)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备100中所包含的;也可以是单独存在,而未装配入电子设备100中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得电子设备100执行本申请实施例提供的方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN,Local Area Network)和广域网(WAN,Wide Area Network),以连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
描述于本申请实施例中所涉及到的单元和/或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。
对于硬件的方式来说,实现本申请实施例的电子设备的单元和/或模块可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,ComplexProgrammable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)或其他电子元件实现,用于执行实现本申请实施例提供的方法。
对于软件的方式来说,实现本申请实施例的全景视频的视场控制装置的单元和/或模块可以被两个或以上的单元实现,
下面以软件的方式为例,示例性说明实现本申请实施例的全景视频的视场控制装置的单元和/或模块。
参见图2,图2为实现本申请实施例的全景视频的视场控制装置的一个可选的结构示意图,示出了存储在存储装置180的如下软件模块:映射单元210、视场单元220、纹理单元230和渲染单元240,分别进行说明。
映射单元210,用于将全景视频中的视频帧映射为三维模型的表面纹理。
视场单元220,用于确定与播放窗口对应的播放窗口视场、以及与所述播放窗口的子窗口对应的子窗口视场。
纹理单元230,用于将所述播放窗口视场、以及子窗口视场分别在所述三维模型的表面纹理中进行投影,对应得到处于所述播放窗口视场的纹理区域、以及处于所述子窗口视场的纹理区域。
渲染单元240,用于在所述播放窗口中渲染处于所述播放窗口视场的纹理区域,并在所述子窗口中渲染处于所述子窗口视场的纹理区域。
在一些实施例中,所述映射单元210用于:将待渲染的所述视频帧的像素点映射到纹理空间,得到所述像素点的纹理坐标;将所述像素点的纹理坐标映射到所述三维模型表面的顶点坐标,以形成所述三维模型的表面纹理。
在一些实施例中,所述视场单元220用于:采用以下方式确定与播放窗口对应的播放窗口视场:解析所述全景视频的解码元数据,得到在所述播放窗口中渲染所述视频帧时,所述播放窗口视场的方向和放大倍数;或者,解析接收的用于设定方向和放大倍数的操作,确定所述播放窗口视场对应的方向和放大倍数。
在一些实施例中,所述视场单元220用于:根据接收到的表达相对位置关系的操作,确定与所述播放窗口视场的方向满足所述相对位置关系的所述子窗口视场的方向;或者,根据所述全景视频中的目标对象,确定包括所述目标对象的视场的方向为与所述子窗口视场的方向。
在一些实施例中,所述渲染单元,用于:对于按照先后时间顺序待渲染的每个视频帧执行以下操作:将所述播放窗口视场在所述待渲染的视频帧对应的三维模型的表面纹理中进行投影,得到处于所述播放窗口视场的纹理区域,以及,将与所述子窗口视场在所述待渲染的视频帧对应的三维模型的表面纹理中进行投影,得到处于所述子窗口视场的纹理区域。
在一些实施例中,所述渲染单元,用于:对于按照先后时间顺序待渲染的每个视频帧执行以下操作:将所述播放窗口视场在所述待渲染的视频帧对应的三维模型的表面纹理中进行投影,得到处于所述播放窗口视场的纹理区域;将所述子窗口视场在已渲染的视频帧对应的三维模型的表面纹理中进行投影,得到处于所述子窗口视场的纹理区域。
需要指出,上述单元的分类并不构成对电子设备本身的限定,例如一些单元可以拆分为两个或以上的子单元,或者,一些单元可以合并为一个新的单元。
还需要指出,上述单元的名称在某种情况下并不构成对单元本身的限定,例如,上述映射单元210也可以被描述为“将全景视频中的视频帧映射为三维模型的表面纹理”的单元。
基于同样的理由,电子设备中未详尽描述的单元和/或模块不代表相应的单元和/或模块的缺省,凡是电子设备所执行的操作都可以通过电子设备中的相应的单元和/或模块实现。
图3为实现本申请实施例的电子设备显示全景视频的一个可选的流程示意图,如图3所示,以处理装置801从只读存储器(ROM)102中的程序或者从存储装置180加载到随机访问存储器(RAM)103中的程序为用于全景视频播放的客户端为例,在全景视频播放的过程中,播放窗口用于展示视频帧的视场(也就是在播放窗口中显示视频帧所采用的视场,在本申请实施例中简称为播放窗口视场)会不断地发生变化,客户端将根据播放窗口视场的变化,通过纹理映射的方式,在播放窗口中显示顺序解码的视频帧中处于播放窗口视场的内容,并同步播放音频帧。
结合图3示出的步骤说明在电子设备中的客户端在播放窗口进行全景视频播放的过程,需要指出,在下文关于图3的相关说明中,为方便描述,关于图3的说明中,“视场”即是指代“播放窗口视场”。
步骤S301中,客户端从全景视频的服务器请求全景视频的文件,并加载到客户端的内存(RAM 130)中。
例如,在全景视频的在线播放场景中,客户端通过通信装置809向服务器请求当前的播放点(例如起始的播放点或根据用户操作而跳转的播放点)之后的预加载时长(例如1分钟)分段文件,并加载到RAM 803中。预加载时长可由客户端根据电子设备的网络接入类型、带宽等网络参数自动设定,也可以接收用户的设定。
全景视频的分段文件中包括封装了必要的解码元数据和媒体数据(包括音频帧和视频帧),客户端可以对分段文件进行及时地解码,分段文件的时长保证了在客户端中连续的播放效果且不会过分消耗电子设备的带宽。
在一些实施例中,作为步骤S301的替代步骤,客户端可以从服务器一次性请求全景视频的完整的文件,并加载到内存中;或者,从存储装置808中读取本地的全景视频的文件,并加载到内存中。
步骤S302,客户端对加载到内存中的全景视频的文件进行解码,以提取出解码元数据和媒体数据。
按照约定的封装格式例如FLV(Flash Video)、动态图像专家组-4(MPEG-4,MovingPictures Experts Group-4),全景视频的文件中封装了解码元数据和媒体数据,客户端根据封装格式中约定的位置(例如文件的二进制数据起始的若干字节)从文件中读出解码元数据,就解码元数据而言,指示了各音频帧/视频帧在文件中的存储位置、时间(解码时间/渲染时间)、长度、宽高和分辨率等信息。从而,客户端能够从文件中提取各视频帧和音频帧。
步骤S303,客户端将媒体数据中的待渲染的视频帧映射为三维模型的表面纹理。
对于在步骤S302中解码得到的视频帧,需要进行后续的渲染才能够在播放窗口中显示,因此解码得到的、且未在播放窗口中渲染的视频帧也称为待渲染的视频帧,例如从全景视频的分段文件中解码得到的视频帧,或者从全景视频的完整文件中解码得到的视频帧。
示例性说明待渲染的视频帧基于视频帧在三维模型表面的贴图的实现过程。
首先,客户端将视频帧映射到纹理空间。
视频帧在纹理空间中的纹理以视频帧中各像素的纹理坐标以及对应的颜色值表示,视频帧的像素在纹理空间中的纹理坐标(u,v)上是一个存放视频帧中像素在纹理空间的x轴/y轴的位置的二维数组,从而在纹理空间中可以离散地分离出视频帧中每个像素点的颜色值。
其次,将视频帧在纹理空间的纹理坐标映射到三维模型的表面的顶点坐标,以形成三维模型的表面纹理。
例如,可以采用的这样的方式:将视频帧的像素在纹理空间的纹理坐标映射到三维模型的顶点的坐标(x,y,z),三维模型的表面的顶点是将三维模型的表面分割成一系列的图形(例如三角形)的顶点,从而使得无论三维模型如何发生变化,顶点之间的像素点是稳定的。
例如,参见图4A,图4A为实现本申请实施例的电子设备显示全景视频的一个可选的纹理映射示意图,客户端解码媒体数据中的视频帧,以解码得到的视频帧41为例,将视频帧41中各像素点的纹理坐标映射到球面模型42(当然,不局限于球面模型,还可以采用柱面模型等三维模型)的三角形的顶点(三角形将使得球面模型42的表面的纹理稳定,不容易使视频帧中展示的对象发生形变;当然不限于三角形),形成以视频帧41的为表面纹理的球面模型43。
步骤S304,客户端确定播放窗口中展示全景视频的各视频帧时所使用的视场,即播放窗口视场。
步骤S305A中,客户端将以待渲染的视频帧为贴图的三维模型的表面纹理中,与待渲染的视频帧的视场相对应的纹理渲染到输出装置170中的显示器显示的播放窗口。
在一些实施例中,客户端根据视场朝向三维模型的方向,确定三维模型的表面纹理中处于视场的纹理区域,根据区域中的顶点从纹理空间提取与纹理区域相应的纹理,包括顶点在纹理空间中对应的纹理像素、以及顶点之间的区域在纹理空间中对应的纹理像素;采用透视投影的方式(即近大远小的原则),将纹理区域对应的纹理渲染到输出装置170中的显示器显示的播放窗口。
可以理解,由于视场的方向转动,对三维模型处于视场的纹理区域提取的纹理像素在整体上可以进行相应的旋转处理。
步骤S305B,与步骤S305A同步地,客户端播放与步骤S305A中待渲染视频帧在时间上同步的已解码音频帧。
步骤S306,客户端判断是否已经渲染完毕内存中的全部待渲染的视频帧。
这里,如果是则结束播放;否则,进入步骤S304,继续下一视频帧,直至渲染完毕内存中的全部待渲染的视频帧。
至此,已经说明了客户端在播放窗口中显示全景视频的过程,客户端能够在播放过程中播放符合用户意愿的视场中的对象,使得用户能够灵活进行视场的方向转动,以关注全景视频中感兴趣的内容,并给用户如同身临其境的感知效果。
本申请实施例提供一种全景视频的视场控制方法,图5为本申请实施例实现全景视频的视场控制方法流程示意图,如图5所示,所述方法包括以下步骤:
步骤S501,根据展示全景视频播放窗口的设备类型,监听方向转动事件。
这里,设备类型包括触控终端类型和受实体控制终端,比如,手机和电脑等。所述步骤S501,可以理解为,当设备类型是手机时,监听由于触控或者滑动手机触发的方向转动事件或者陀螺仪转动事件;当设备类型是电脑时,监听点击鼠标、敲击键盘触发的方向转动事件。
步骤S502,根据所述方向转动事件,调整所述播放窗口对应的播放窗口视场。
这里,响应方向转动事件,确定方向转动参数,根据该参数对播放窗口对应的播放窗口视场的方向进行调整。
步骤S503,将调整后的播放窗口视场在三维模型的表面纹理中进行投影,得到纹理区域。
这里,所述表面纹理是将所述全景视频的视频帧的像素点对应的纹理坐标,映射到所述三维模型的表面的顶点坐标得到的,即首先将所述全景视频的视频帧的像素点映射到纹理空间,得到所述像素点的纹理坐标;然后,将所述像素点的纹理坐标映射到所述三维模型的表面的顶点坐标,形成所述表面纹理。
步骤S504,在所述播放窗口中渲染所述纹理区域。
这里,对播放窗口对应的播放窗口视场的方向进行调整之后,为用户显示视场方向改变之后的视频帧,以符合用户的观看需求。
在本实施例中,通过根据设备类型来监听相应的方向转动事件,从而使得全景视频在不同的终端上完成全景视频的方向转动。
在其他实施例中,所述步骤S502,即“根据所述方向转动事件,调整所述播放窗口对应的播放窗口视场”,包括:
根据所述方向转动事件,调整播放窗口中当前显示的视频帧处于所述全景视频的视频帧中的位置。
这里,如图4C所示,方向转动是表示视场的方向的变化,而播放窗口视场46的方向(即视场朝向球面模型43的表面纹理的方向)影响客户端在播放窗口中显示的部分内容(即视频帧的部分内容)处于视频帧中的位置。例如,假设播放窗口视场46相对于图4C示出的朝向球面模型43的方向进行方向转动时,那么,区别于纹理区域49的另一纹理区域的纹理将被渲染到播放窗口中,从而使用户观看到视频帧41中的另一区域的内容。
本实施例提供一种全景视频的视场控制方法,图6为本申请实施例又一实现全景视频的视场控制方法的流程示意图,如图6所示,所述方法包括以下步骤:
步骤S601,当所述设备类型为触控终端类型时,监听触控操作触发的方向转动事件。
这里,触控终端可以是手机、平板电脑等,触控操控可以是包括移动端的触控拖拽交互、陀螺仪事件;如果设备类型为触控终端类型,监听作用于该触控终端的触控操作触发的方向转动事件之后,进入步骤S603。
步骤S602,当所述设备类型为受实体控制终端类型时,监听实体操作触发的方向转动事件。
这里,受实体控制终端可以是电脑等,实体操作可以是电脑端的鼠标拖拽交互、转动控件和键盘事件等。此外,方向转动的操作的类型不局限于上述类型,例如还可以包括向输入装置160的摄像头实施的面部动作和眼部动作。从而,客户端可以根据用户意愿而显示全景视频处于不同视场的内容,符合用户针对全景视频的个性化的需求;如果设备类型为受实体控制终端类型,监听作用于该受实体控制终端的实体操作触发的方向转动事件之后,进入步骤S603。
步骤S603,根据所述方向转动事件,确定所述全景视频对应的方向转动参数。
这里,当所述方向转动事件包含至少两种方向转动事件时,按照预设方向转动事件优先级,分别响应所述至少两种方向转动事件,确定所述全景视频对应的方向转动参数。也就是说,对方向转动事件设置优先级,比如,先向左转。
步骤S604,按照所述方向转动参数,转动所述播放窗口视场的角度。
这里,所述步骤S603和步骤S604可以通过多种方式实现,这里列举两种方式:
一是,响应所述方向转动事件,按照预设的方向转动角度调整所述播放窗口对应的播放窗口视场,比如,按照固定角度对播放窗口对应的播放窗口视场进行转动。
二是,响应所述方向转动事件,按照预设的方向转动速度调整所述播放窗口对应的播放窗口视场,即,设置方向转动速度,使得播放窗口对应的播放窗口视场按照预设的方向转动速度呈惯性变化,比如,设置方向转动速度的变化符合贝塞尔曲线,以符合贝塞尔曲线走势的方向转动速度调整播放窗口对应的播放窗口视场的方向,从而改变播放窗口中显示的部分内容处于视频帧中的位置。而且在本实施例中,当没有检测到用户指示参数的操作时,采用客户端中的针对播放效果而优化的参数的默认值,以保证全景视频的最佳播放效果。视场的方向转动参数可以为客户端中根据全景视频的特点而设置的保证观看体验的经验值;或者,可以是从全景视频的文件中读取的参数(由拍摄或发布全景视频的用户设定,可以针对全景视频中对应部分或者全部的时间轴的视频帧而设定),又或者,可以是服务器跟随全景视频而向客户端所下发的参数。
步骤S605,将调整后的播放窗口视场在三维模型的表面纹理中进行投影,得到纹理区域。
步骤S606,在所述播放窗口中渲染所述纹理区域。
在本实施例中,客户端根据全景视频的解码元数据对应各视频帧的时间,确定已解码的各视频帧的渲染时间的先后顺序,并顺序确定渲染各视频帧时对应的播放窗口视场,客户端通过视角(决定视场的尺寸)、方向(决定视频帧处于视场的内容在视频帧中的位置)等来确定视场,下面进行说明。
参见图4B,图4B为实现本申请实施例的电子设备显示全景视频的一个可选的视场示意图,播放窗口视场46模拟了人眼47通过输出装置170的显示器显示的播放窗口能够观看到的区域,播放窗口视场46的尺寸取决于播放窗口视场46的水平视角44和垂直视角45,角度越大则播放窗口视场46中能够观看到的视频帧的内容越多(在播放窗口视场46的放大倍数一定的情况下)。
例如,参见图4C,图4C为实现本申请实施例的电子设备显示全景视频的一个可选的投影示意图,在球面模型43的中心模拟一个如图4B示出的人眼47的虚拟镜头48,镜头48与播放窗口具有相同的视场,播放窗口视场46在球面模型43的表面纹理中的投影区域即纹理区域49,即是通过播放窗口能够在视频帧中观看到的内容。视场的水平视角和垂直视角取决于输出装置170中的显示器(例如显示器的宽高)。
在本实施例中,通过多种方式改变播放窗口的市场方向,以满足用户能够看到不同位置的视频帧,且监听与设备类型相对应的方向转动事件,保证了不同终端类型与全景视频的播放控制的兼容性。
本申请实施例再提供一种全景视频的视场控制装置,该装置包括所包括的各模块、以及各模块所包括的各子模块和各单元,可以通过电子设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等。
本实施例提供一种全景视频的视场控制装置,图7为本申请实施例全景视频的视场控制装置的组成结构示意图,如图7所示,所述装置700包括:第一监听模块701、第一调整模块702、第一投影模块703和第一渲染模块704,其中:
所述第一监听模块701,用于根据展示全景视频播放窗口的设备类型,监听方向转动事件;
所述第一调整模块702,用于根据所述方向转动事件,调整所述播放窗口对应的播放窗口视场;
所述第一投影模块703,用于将调整后的播放窗口视场在三维模型的表面纹理中进行投影,得到纹理区域;其中,所述表面纹理是将所述全景视频的视频帧的像素点对应的纹理坐标,映射到所述三维模型的表面的顶点坐标得到的;
第一渲染模块704,用于在所述播放窗口中渲染所述纹理区域。
需要说明的是,以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的全景视频的视场控制方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台全景视频的视场控制设备(可以是终端、服务器等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ReadOnly Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
相应地,本申请实施例再提供一种可读存储介质,所述可读存储介质上存储有全景视频的视场控制程序,所述全景视频的视场控制程序被处理器执行时实现上述的全景视频的视场控制方法的步骤。
本申请实施例再提供一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述全景视频的视场控制方法中的步骤。
以上电子设备和存储介质实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请全景视频的视场控制设备和存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。