一种全景视频的播放方法、装置、终端及存储介质转让专利

申请号 : CN201811369291.6

文献号 : CN111200754B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 付宇豪

申请人 : 北京字节跳动网络技术有限公司

摘要 :

本公开实施例提供了一种全景视频的播放方法、装置、终端及存储介质,其中,所述方法包括:将全景视频中的视频帧映射为三维模型的表面纹理;确定与播放窗口对应的播放窗口视场的锁定方向;基于所述播放窗口视场的锁定方向,将所述播放窗口视场在所述三维模型的表面纹理中进行投影,得到处于所述播放窗口视场的纹理区域;在所述播放窗口中渲染处于所述播放窗口视场的纹理区域。

权利要求 :

1.一种全景视频的播放方法,其特征在于,所述方法包括:将全景视频中的视频帧映射为三维模型的表面纹理;

确定与播放窗口对应的播放窗口视场的锁定方向;

当所述全景视频的播放时间处于锁定时段时,根据所述锁定时段与所述锁定方向的对应关系,确定所述全景视频中处于所述锁定时段的视频帧所对应的锁定方向,并自动将所述播放窗口视场锁定在所述锁定方向;

基于所述播放窗口视场的锁定方向,将所述播放窗口视场在所述三维模型的表面纹理中进行投影,得到处于所述播放窗口视场的纹理区域;

在所述播放窗口中渲染处于所述播放窗口视场的纹理区域。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:当所述全景视频的播放时间未处于锁定时段时,根据接收到的操作,确定所述操作所指示的方向为所述播放窗口视场的方向。

3.根据权利要求2所述的方法,其特征在于,所述方法还包括:根据接收到的所述操作,确定所述操作所指示的放大倍数为所述播放窗口视场的放大倍数。

4.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据所述全景视频的封装格式,从所述全景视频中提取解码元数据;

从所述解码元数据中提取所述锁定时段与所述锁定方向的对应关系的数据,以及,提取所述锁定时段与放大倍数的对应关系的数据。

5.根据权利要求1至4任一项所述的方法,其特征在于,所述锁定时段包括以下至少之一:

由发布所述全景视频的用户设定的时间段;

所述全景视频中包括推广信息的时间段;

所述全景视频中包括符合用户偏好的内容的时间段。

6.根据权利要求1所述的方法,其特征在于,所述方法还包括:确定子窗口对应的子窗口视场的锁定方向;

基于所述子窗口视场的锁定方向,将所述子窗口视场在所述三维模型的表面纹理中进行投影,得到处于所述子窗口视场的纹理区域;

在所述子窗口中渲染处于所述子窗口视场的纹理区域。

7.一种全景视频的播放装置,其特征在于,所述装置包括:映射模块、确定模块、投影模块和渲染模块;其中,

所述映射模块,用于将全景视频中的视频帧映射为三维模型的表面纹理;

所述确定模块,用于确定与播放窗口对应的播放窗口视场的锁定方向;当所述全景视频的播放时间处于锁定时段时,根据所述锁定时段与所述锁定方向的对应关系,确定所述全景视频中处于所述锁定时段的视频帧所对应的锁定方向,并自动将所述播放窗口视场锁定在所述锁定方向;

所述投影模块,用于基于所述播放窗口视场的锁定方向,将所述播放窗口视场在所述三维模型的表面纹理中进行投影,得到处于所述播放窗口视场的纹理区域;

所述渲染模块,用于在所述播放窗口中渲染处于所述播放窗口视场的纹理区域。

8.根据权利要求7所述的装置,其特征在于,所述确定模块,还用于当所述全景视频的播放时间未处于锁定时段时,根据接收到的操作,确定所述操作所指示的方向为所述播放窗口视场的方向。

9.根据权利要求8所述的装置,其特征在于,所述确定模块,还用于根据接收到的所述操作,确定所述操作所指示的放大倍数为所述播放窗口视场的放大倍数。

10.根据权利要求7所述的装置,其特征在于,所述装置还包括:提取模块,用于根据所述全景视频的封装格式,从所述全景视频中提取解码元数据;从所述解码元数据中提取所述锁定时段与所述锁定方向的对应关系的数据,以及,提取所述锁定时段与放大倍数的对应关系的数据。

11.根据权利要求7所述的装置,其特征在于,所述确定模块,还用于确定子窗口对应的子窗口视场的锁定方向;

所述投影模块,还用于基于所述子窗口视场的锁定方向,将所述子窗口视场在所述三维模型的表面纹理中进行投影,得到处于所述子窗口视场的纹理区域;

所述渲染模块,还用于在所述子窗口中渲染处于所述子窗口视场的纹理区域。

12.一种终端,其特征在于,包括:存储器,用于存储可执行指令;

处理器,用于执行所述可执行指令时,实现如权利要求1至6任一项所述的全景视频的播放方法。

13.一种存储介质,其特征在于,存储有可执行指令,所述可执行指令被执行时,用于实现如权利要求1至6任一项所述的全景视频的播放方法。

说明书 :

一种全景视频的播放方法、装置、终端及存储介质

技术领域

[0001] 本公开涉及多媒体技术领域,尤其涉及一种全景视频的播放方法、装置、终端及存储介质。

背景技术

[0002] 随着通信基础设施的不断发展,网络通信的速率不断提升,使得各种形式的媒体特别是视频在网络中得到前所未有地广泛传播。全景视频是对用户感知视频方式的拓展,
且播放的视频中内容的展现可以呈现丰富多样的形式。
[0003] 在实施本公开的过程中,发明人发现相关技术中用户是被动接受全景视频播放的内容,播放内容的视角与用户需要内容的视角之间存在矛盾。为解决该问题,相关技术中提
出一种通过允许用户自由选择视角的方式,来避免播放内容的视角与用户需要内容的视角
之间的矛盾。然而,上述解决方案将额外消耗播放器的资源,从而导致播放器的资源消耗与
用户的自由视角需求之间存在矛盾。针对上述技术问题,目前相关技术尚未提出有效解决
方案。

发明内容

[0004] 为解决上述技术问题,本公开实施例提供一种全景视频的播放方法、装置、终端及存储介质。
[0005] 为达到上述目的,本公开实施例的技术方案是这样实现的:
[0006] 第一方面,本公开实施例提供了一种全景视频的播放方法,所述方法包括:
[0007] 将全景视频中的视频帧映射为三维模型的表面纹理;
[0008] 确定与播放窗口对应的播放窗口视场的锁定方向;
[0009] 基于所述播放窗口视场的锁定方向,将所述播放窗口视场在所述三维模型的表面纹理中进行投影,得到处于所述播放窗口视场的纹理区域;
[0010] 在所述播放窗口中渲染处于所述播放窗口视场的纹理区域。
[0011] 上述方案中,所述确定与播放窗口对应的播放窗口视场的锁定方向,包括:
[0012] 当所述全景视频的播放时间处于锁定时段时,
[0013] 根据所述锁定时段与所述锁定方向的对应关系,确定所述全景视频中处于所述锁定时段的视频帧所对应的锁定方向,并作为与所述播放窗口对应的播放窗口视场的锁定方
向。
[0014] 上述方案中,所述方法还包括:当所述全景视频的播放时间未处于锁定时段时,
[0015] 根据接收到的操作,确定所述操作所指示的方向为所述播放窗口视场的方向。
[0016] 上述方案中,所述方法还包括:根据接收到的所述操作,确定所述操作所指示的放大倍数为所述播放窗口视场的放大倍数。
[0017] 上述方案中,所述方法还包括:根据所述全景视频的封装格式,从所述全景视频中提取解码元数据;从所述解码元数据中提取所述锁定时段与所述锁定方向的对应关系的数
据,以及,提取所述锁定时段与放大倍数的对应关系的数据。
[0018] 上述方案中,所述锁定时段包括以下至少之一:
[0019] 由发布所述全景视频的用户设定的时间段;
[0020] 所述全景视频中包括推广信息的时间段;
[0021] 所述全景视频中包括符合用户偏好的内容的时间段。
[0022] 上述方案中,所述方法还包括:
[0023] 确定子窗口对应的子窗口视场的锁定方向;
[0024] 基于所述子窗口视场的锁定方向,将所述子窗口视场在所述三维模型的表面纹理中进行投影,得到处于所述子窗口视场的纹理区域;
[0025] 在所述子窗口中渲染处于所述子窗口视场的纹理区域。
[0026] 第二方面,本公开实施例还提供了一种全景视频的播放装置,所述装置包括:映射模块、确定模块、投影模块和渲染模块;其中,
[0027] 所述映射模块,用于将全景视频中的视频帧映射为三维模型的表面纹理;
[0028] 所述确定模块,用于确定与播放窗口对应的播放窗口视场的锁定方向;
[0029] 所述投影模块,用于基于所述播放窗口视场的锁定方向,将所述播放窗口视场在所述三维模型的表面纹理中进行投影,得到处于所述播放窗口视场的纹理区域;
[0030] 所述渲染模块,用于在所述播放窗口中渲染处于所述播放窗口视场的纹理区域。
[0031] 上述方案中,所述确定模块,具体用于:
[0032] 当所述全景视频的播放时间处于锁定时段时,
[0033] 根据所述锁定时段与所述锁定方向的对应关系,确定所述全景视频中处于所述锁定时段的视频帧所对应的锁定方向,并作为与所述播放窗口对应的播放窗口视场的锁定方
向。
[0034] 上述方案中,所述确定模块,还用于当所述全景视频的播放时间未处于锁定时段时,根据接收到的操作,确定所述操作所指示的方向为所述播放窗口视场的方向。
[0035] 上述方案中,所述确定模块,还用于根据接收到的所述操作,确定所述操作所指示的放大倍数为所述播放窗口视场的放大倍数。
[0036] 上述方案中,所述装置还包括:
[0037] 提取模块,用于根据所述全景视频的封装格式,从所述全景视频中提取解码元数据;从所述解码元数据中提取所述锁定时段与所述锁定方向的对应关系的数据,以及,提取
所述锁定时段与放大倍数的对应关系的数据。
[0038] 上述方案中,所述确定模块,还用于确定子窗口对应的子窗口视场的锁定方向;
[0039] 所述投影模块,还用于基于所述子窗口视场的锁定方向,将所述子窗口视场在所述三维模型的表面纹理中进行投影,得到处于所述子窗口视场的纹理区域;
[0040] 所述渲染模块,还用于在所述子窗口中渲染处于所述子窗口视场的纹理区域。
[0041] 第三方面,本公开实施例还提供了一种终端,包括:
[0042] 存储器,用于存储可执行指令;
[0043] 处理器,用于执行所述可执行指令时,实现本公开实施例提供的全景视频的播放方法。
[0044] 第四方面,本公开实施例还提供了一种存储介质,存储有可执行指令,所述可执行指令被执行时,用于实现本公开实施例提供的全景视频的播放方法。
[0045] 本公开实施例所提供的全景视频的播放方法、装置、终端及存储介质,将全景视频中的视频帧映射为三维模型的表面纹理;确定与播放窗口对应的播放窗口视场的锁定方
向;基于播放窗口视场的锁定方向,将播放窗口视场在三维模型的表面纹理中进行投影,得
到处于播放窗口视场的纹理区域;在播放窗口中渲染处于播放窗口视场的纹理区域。如此,
将播放窗口对应的播放窗口视场的方向在特定时间段内进行锁定,基于锁定的方向,在全
景视频的播放窗口中渲染对应视场的内容,使得在观看全景视频时,播放窗口视场的方向
满足用户对观看内容的视角的需求,避免播放器的资源消耗与用户的自由视角需求之间存
在矛盾,有效提升用户的观看体验。

附图说明

[0046] 图1为本公开实施例提供的终端的一个可选的硬件结构示意图;
[0047] 图2为本公开实施例提供的全景视频的播放装置的一个可选的功能结构示意图;
[0048] 图3为本公开实施例提供的全景视频的播放装置的另一个可选的功能结构示意图;
[0049] 图4为本公开实施例提供的终端显示全景视频的过程的一个可选的流程示意图;
[0050] 图5为本公开实施例提供的待渲染的视频帧基于三维模型的表面的贴图形成表面纹理的过程的一个可选的流程示意图;
[0051] 图6A为本公开实施例提供的终端显示全景视频的一个可选的纹理映射示意图;
[0052] 图6B为本公开实施例提供的终端显示全景视频的一个可选的视场示意图;
[0053] 图6C为本公开实施例提供的终端显示全景视频的一个可选的投影示意图;
[0054] 图7为本公开实施例提供的全景视频的播放方法的一个可选的实现流程示意图;
[0055] 图8为本公开实施例提供的全景视频的播放方法的另一个可选的实现流程示意图;
[0056] 图9为本公开实施例提供的采用多个窗口播放全景视频的一个界面示意图。

具体实施方式

[0057] 为了使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开作进一步地详细描述,所描述的实施例不应视为对本公开的限制,本领域普通技术人员在没有
做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
[0058] 需要说明的是,在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且
可以在不冲突的情况下相互结合。
[0059] 在对本公开实施例进行进一步详细说明之前,先对本公开实施例中涉及的名词和术语进行说明,除非另有定义,本公开实施例所使用的所有的技术和科学术语与属于本公
开实施例的技术领域的技术人员通常理解的含义相同。本公开中所使用的术语只是为了描
述具体的实施例的目的,不是旨在限制本公开,本公开实施例中涉及的名词和术语适用于
如下的解释。
[0060] 1)全景视频,是指在各种电子设备中播放能够供用户裸眼观看的视频,且播放窗口的视场能够进行方向和放大倍数的调整。
[0061] 2)三维模型,是模拟全景视频所表达的空间的模型,用于将全景视频的视频帧映射到三维模型的表面以形成表面纹理,三维模型的表面一般采用球面或圆柱面。
[0062] 3)视场,在三维模型的中心的虚拟镜头感知三维模型的表面纹理的视线的集合,更一般地,是指通过一个窗口在全景视频的视频帧中能够观看的区域。
[0063] 4)播放窗口,全景视频的客户端中默认用于播放全景视频的全屏或非全屏的窗口,至少包括全景视频的视频播放区域,还可以包括设置有相关操作的入口的操作区域。
[0064] 5)播放窗口视场,即与播放窗口对应的视场,控制在播放窗口中能够感知到视频帧中处于相应视场的部分内容。
[0065] 6)子窗口,全景视频的客户端中辅助用于播放的非全屏的窗口,小于播放存储,至少包括全景视频的视频播放区域,还可以包括设置有相关操作的入口的操作区域。
[0066] 7)子窗口视场,即与子窗口对应的视场,控制在窗口中能够感知到的视频帧中处于相应视场的部分内容。
[0067] 8)纹理,视频帧中的对象在颜色、几何上有规律的特性,以视频帧中各纹理像素的纹理坐标和对应的颜色值表示。
[0068] 9)纹理区域,视场在三维模型的表面纹理的投影所包括的区域,是三维模型的表面纹理的一个子集,例如全景视频帧能够完整展示的区域的视角在垂直方向和水平方向可
以覆盖0至180度,而视场对应的纹理区域覆盖的视角在垂直方向和水平方向可以覆盖0至
30度。
[0069] 10)封装格式,也可称为容器,是将已经编码压缩好的视频轨和音频轨按照一定的格式放到一个文件中,可以理解为一个存放视频轨和音频轨的文件夹。
[0070] 下面说明实现本公开实施例的装置的示例性应用,本公开实施例提供的装置可以实施为智能手机、平板电脑、笔记本电脑等各种类型的用户终端。
[0071] 首先说明实现本公开实施例的终端,本公开实施例提供的终端可以实施为硬件或者软硬件结合的方式。下面说明本公开实施例提供的终端的各种示例性实施。
[0072] 下面先说明终端的软硬件结合的实施。具体地,现在将参考附图描述实现本公开实施例的终端的硬件结构,下面参考图1,图1为本公开实施例提供的终端100的一个可选的
硬件结构示意图。终端100可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、
个人数字助理(PDA,Personal Digital Assistant)、平板电脑(PAD,Portable Android 
Device)、便携式多媒体播放器(PMP,Portable Media Player)、车载终端(例如车载导航终
端)等等的移动终端以及诸如数字电视(TV,Television)、台式计算机等等的固定终端。图1
示出的终端100仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0073] 如图1所示,终端100可以包括处理装置(例如中央处理器、图形处理器等)101,其可以根据存储在只读存储器(ROM,Read Only Memory)102中的程序或者从存储装置108加
载到随机访问存储器(RAM,Random Access Memory)103中的程序而执行各种适当的动作和
处理。在RAM 103中,还存储有终端100操作所需的各种程序和数据。处理装置101、ROM102以
及RAM103通过总线104彼此相连。输入/输出(I/O,Input/Output)接口105也连接至总线
104。
[0074] 通常,以下装置可以连接至I/O接口105:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置106;包括例如液晶显示器(LCD,Liquid 
Crystal Display)、扬声器、振动器等的输出装置107;包括例如磁带、硬盘等的存储装置
108;以及通信装置109。通信装置109可以允许终端100与其他设备进行无线或有线通信以
交换数据。虽然图1示出了具有各种装置的终端100,但是应理解的是,并不要求实施或具备
所有示出的装置。可以替代地实施或具备更多或更少的装置。
[0075] 特别地,根据本公开的实施例,所提供的流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质
上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实
施例中,该计算机程序可以通过通信装置109从网络上被下载和安装,或者从存储装置108
被安装,或者从ROM 102被安装。在计算机程序被处理装置101执行时,执行本公开实施例的
方法中限定的上述功能。
[0076] 需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于
电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读
存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算
机磁盘、硬盘、RAM、ROM、可擦式可编程只读存储器(EPROM,Erasable Programmable Read‑
Only Memory或闪存)、光纤、便携式紧凑磁盘只读存储器(CD‑ROM,Compact Disc Read‑
Only Memory)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0077] 在本公开实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开实施例
中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承
载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁
信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介
质以外的任何计算机可读介质,计算机可读信号介质可以发送、传播或者传输用于由指令
执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代
码可以用任何适当的介质传输,包括但不限于:电线、光缆、射频(RF,Radio Frequency)等
等,或者上述的任意合适的组合。
[0078] 上述计算机可读介质可以是上述终端100中所包含的;也可以是单独存在,而未装配入终端100中。
[0079] 上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被终端100执行时,使得终端100执行本公开实施例提供的全景视频的播放方法。
[0080] 可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,
还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完
全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分
在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉
及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN,Local 
Area Network)和广域网(WAN,Wide Area Network),以连接到用户计算机,或者,可以连接
到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0081] 本公开实施例提供的附图中的流程图和框图,图示了按照本公开实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的
每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包
含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实
现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表
示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的
功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框
的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用
硬件与计算机指令的组合来实现。
[0082] 描述于本公开实施例中所涉及到的单元和/或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。
[0083] 对于硬件的方式来说,实现本公开实施例的终端100的单元和/或模块可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、数字信号
处理器(DSP,Digital Signal Processor)、可编程逻辑器件(PLD,Programmable Logic 
Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程
门阵列(FPGA,Field‑Programmable Gate Array)或其他电子元件实现,用于执行实现本公
开实施例提供的全景视频的播放方法。
[0084] 对于软件的方式来说,实现本公开实施例的全景视频的播放装置的单元和/或模块可以被两个或以上的单元和/或模块实现。
[0085] 下面以软件的方式为例,示例性说明实现本公开实施例的全景视频的播放装置的单元和/或模块。
[0086] 参见图2,图2为本公开实施例提供的全景视频的播放装置的一个可选的功能结构示意图,示出了存储在存储装置108中的如下功能模块:映射模块210、确定模块220、投影模
块230和渲染模块240,下面分别进行说明。
[0087] 映射模块210,用于将全景视频中的视频帧映射为三维模型的表面纹理。
[0088] 确定模块220,用于确定与播放窗口对应的播放窗口视场的锁定方向。
[0089] 投影模块230,用于基于所述播放窗口视场的锁定方向,将所述播放窗口视场在所述三维模型的表面纹理中进行投影,得到处于所述播放窗口视场的纹理区域。
[0090] 渲染模块240,用于在所述播放窗口中渲染处于所述播放窗口视场的纹理区域。
[0091] 在一些实施例中,所述确定模块220,具体用于:当所述全景视频的播放时间处于锁定时段时,根据所述锁定时段与所述锁定方向的对应关系,确定所述全景视频中处于所
述锁定时段的视频帧所对应的锁定方向,并作为与所述播放窗口对应的播放窗口视场的锁
定方向。
[0092] 这里,所述锁定时段包括以下至少之一:由发布所述全景视频的用户设定的时间段;所述全景视频中包括推广信息的时间段;所述全景视频中包括符合用户偏好的内容的
时间段。
[0093] 在一些实施例中,所述确定模块220,还用于当所述全景视频的播放时间未处于锁定时段时,根据接收到的操作,确定所述操作所指示的方向为所述播放窗口视场的方向。
[0094] 在一些实施例中,所述确定模块220,还用于根据接收到的所述操作,确定所述操作所指示的放大倍数为所述播放窗口视场的放大倍数。
[0095] 在一些实施例中,所述确定模块220,还用于确定子窗口对应的子窗口视场的锁定方向;
[0096] 所述投影模块230,还用于基于所述子窗口视场的锁定方向,将所述子窗口视场在所述三维模型的表面纹理中进行投影,得到处于所述子窗口视场的纹理区域;
[0097] 所述渲染模块240,还用于在所述子窗口中渲染处于所述子窗口视场的纹理区域。
[0098] 在一些实施例中,参见图3,图3为本公开实施例提供的全景视频的播放装置的另一个可选的功能结构示意图,所述装置还包括:提取模块250,用于根据所述全景视频的封
装格式,从所述全景视频中提取解码元数据;从所述解码元数据中提取所述锁定时段与所
述锁定方向的对应关系的数据,以及,提取所述锁定时段与放大倍数的对应关系的数据。
[0099] 需要指出的是,上述模块的分类并不构成对终端本身的限定,例如一些模块可以拆分为两个或以上的子模块,或者,一些模块可以合并为一个新的模块。
[0100] 还需要指出的是,上述模块的名称在某种情况下并不构成对模块本身的限定,例如,上述映射模块210也可以被描述为“将全景视频中的视频帧映射为三维模型的表面纹
理”的模块。
[0101] 基于同样的理由,终端中未详尽描述的单元和/或模块不代表相应的单元和/或模块的缺省,凡是终端所执行的操作都可以通过终端中的相应的单元和/或模块实现。
[0102] 至此,已经按照其功能描述了本公开实施例中涉及的全景视频的播放装置,基于上述终端的可选硬件结构以及全景视频的播放装置的可选功能结构,下面继续结合附图对
实现本公开实施例中的终端显示全景视频的过程进行说明。
[0103] 参见图4,图4为本公开实施例提供的终端显示全景视频的过程的一个可选的流程示意图,以处理装置101从ROM102中的程序或者从存储装置108加载到RAM103中的程序为用
于全景视频播放的客户端为例,在全景视频播放的过程中,播放窗口用于展示全景视频中
的视频帧的视场(即在播放窗口中显示全景视频中的视频帧所采用的视场,下文简称为播
放窗口视场)能够依据用户的操作或自身的播放策略不断地发生变化,客户端将根据播放
窗口视场的变化,通过纹理映射的方式,在播放窗口中显示顺序解码的视频帧中处于播放
窗口视场的内容,并同步播放音频帧。下面将结合图4所示出的步骤,说明处于终端中的客
户端在播放窗口中进行全景视频播放的具体过程。
[0104] 步骤401,客户端从全景视频的服务器中请求获取全景视频的文件,并将全景视频的文件加载到内存中。
[0105] 在一些实施例中,在全景视频的在线播放场景中,客户端可以通过通信装置109向服务器请求获取当前的播放点(例如起始的播放点或根据用户操作而跳转的播放点)之后
的预加载时长(如1分钟)的分段文件,并将获取到的分段文件加载到RAM 103中。其中,预加
载时长可由客户端根据终端的网络接入类型、带宽等网络参数进行自动设定,也可以接收
用户的自定义设定。
[0106] 这里,在全景视频的分段文件中封装了必要的解码元数据和媒体数据(包括音频帧和视频帧),客户端可以对分段文件进行及时地解码,分段文件的时长保证了在客户端中
连续的播放效果且不会过分消耗终端的网络带宽。
[0107] 在一些实施例中,作为步骤401的替代步骤,客户端可以从服务器一次性的请求获取全景视频的完整文件,并将全景视频的完整文件加载到内存中;或者,从存储装置108中
读取本地的全景视频的文件,并将读取到的全景视频的文件加载到内存中。
[0108] 步骤402,客户端对全景视频的文件进行解码,以提取出解码元数据和媒体数据。
[0109] 在一些实施例中,按照约定的封装格式例如FLV(Flash Video)、动态图像专家组‑4(MPEG‑4,Moving Pictures Experts Group‑4),全景视频的文件中封装了解码元数据和
媒体数据,客户端根据封装格式中约定的位置(例如文件的二进制数据起始的若干字节),
从全景视频的文件中提取出解码元数据和媒体数据,就媒体数据而言,指示了各音频帧/视
频帧在全景视频的文件中对应的存储位置、时间(解码时间/渲染时间)、长度、宽高和分辨
率等信息,从而客户端能够从全景视频的文件中提取各视频帧和音频帧。
[0110] 步骤403,客户端将媒体数据中待渲染的视频帧映射为三维模型的表面纹理。
[0111] 在一些实施例中,对于步骤403中解码得到的媒体数据中的视频帧而言,需要进行后续的渲染才能够在播放窗口中进行显示,因此解码得到的、且未在播放窗口中渲染的视
频帧称为待渲染的视频帧,例如从全景视频的分段文件中解码得到的视频帧,或者从全景
视频的完整文件中解码得到的视频帧。
[0112] 下面示例性说明待渲染的视频帧基于三维模型的表面的贴图形成表面纹理的实现过程。参见图5,图5为本公开实施例提供的待渲染的视频帧基于三维模型的表面的贴图
形成表面纹理的过程的一个可选的流程示意图,包括以下步骤:
[0113] 步骤501,客户端将全景视频中的视频帧映射到纹理空间。
[0114] 在一些实施例中,视频帧在纹理空间中的纹理可以以视频帧中的各像素的纹理坐标以及对应的颜色值表示,其中,视频帧的像素在纹理空间中的纹理坐标(u,v)实际上是一
个存放视频帧中像素在纹理空间的x轴或y轴的位置的二维数组,从而在纹理空间中可以离
散地分离出视频帧中每个像素点的颜色值。
[0115] 步骤502,客户端将视频帧在纹理空间的纹理坐标映射到三维模型的表面,以形成三维模型的表面纹理。
[0116] 在一些实施例中,步骤502具体可以采用这样的方式:将视频帧的像素在纹理空间的纹理坐标映射到三维模型的顶点的坐标(x,y,z),这里,三维模型的顶点是将三维模型的
表面分割成一系列的图形(例如三角形)的顶点,从而使得无论三维模型如何发生变化,三
维模型的顶点之间的像素点是稳定的。
[0117] 参见图6A,图6A为本公开实施例提供的终端显示全景视频的一个可选的纹理映射示意图,客户端对媒体数据进行解码,以得到媒体数据中的视频帧,以解码得到的视频帧61
为例,将视频帧61中各像素点的纹理坐标映射到球面模型62(当然,并不局限于球面模型,
还可以采用柱面模型如圆柱模型等三维模型)中的三角形的顶点(三角形将使得球面模型
62的表面的纹理稳定,不容易使视频帧中展示的对象发生形变;当然不限于三角形),形成
以视频帧61为表面纹理的球面模型63。
[0118] 步骤404,客户端确定全景视频中当前待渲染的视频帧的播放窗口视场。
[0119] 在一些实施例中,播放窗口视场是在播放窗口中展示全景视频的各视频帧时所使用的视场。具体地,客户端根据全景视频的解码元数据对应各视频帧的时间,确定已解码的
各视频帧的渲染时间的先后顺序,并顺序确定渲染各视频帧时对应的播放窗口视场,客户
端可以通过视角(决定视场的尺寸)、方向(决定视频帧处于视场的内容在视频帧中的位置)
和放大倍数(决定视频帧的内容在视场中成像的尺寸)来确定视场,下面进行说明。
[0120] 参见图6B,图6B为本公开实施例提供的终端显示全景视频的一个可选的视场示意图,播放窗口视场66模拟了人眼67通过终端100中的输出装置107的显示器显示的播放窗口
能够观看到的区域,播放窗口视场66的尺寸取决于播放窗口视场66的水平视角64和垂直视
角65,角度越大则表明在播放窗口视场66中能够观看到的视频帧中的内容越多(在播放窗
口视场66的放大倍数一定的情况下)。
[0121] 参见图6C,图6C为本公开实施例提供的终端显示全景视频的一个可选的投影示意图,在球面模型63的中心模拟一个如图6B示出的人眼67的虚拟镜头68,虚拟镜头68与播放
窗口具有相同的视场,播放窗口视场66在球面模型63的表面纹理中的投影区域即纹理区域
69,即是通过播放窗口能够在视频帧中观看到的内容。
[0122] 这里,播放窗口视场66的水平视角64和垂直视角65的尺寸取决于输出装置107中的显示器(例如显示器的宽高),因此,一般地,播放窗口视场66可以使用方向转动参数和镜
头缩放参数进行表示,下面分别进行说明。
[0123] 采用方向转动参数表示播放窗口视场66的方向的变化,而播放窗口视场66的方向(即视场朝向球面模型63的表面纹理的方向)能够影响客户端在播放窗口中显示的部分内
容(即视频帧的部分内容)处于视频帧中的位置。例如,假设播放窗口视场66相对于图6C示
出的朝向球面模型63的方向进行方向转动时,那么,区别于纹理区域69的另一纹理区域的
纹理将被渲染到播放窗口中,从而使用户观看到视频帧61中的另一区域的内容。
[0124] 采用镜头缩放参数表示播放窗口视场66的放大倍数,从而使客户端在播放窗口显示视频帧的内容还受到镜头缩放的约束,在水平视角64和垂直视角65一定(也就是视场的
尺寸一定)的情况下,镜头缩放所实现的放大倍数(以大于1表示放大,以小于1表示缩小)与
播放窗口视场66在球面模型63对应的纹理区域69(即视场在球面模型63的表面纹理的投影
区域)中纹理的成像尺寸成反比,即放大倍数越小,则成像的尺寸越小,从而播放窗口中能
够显示的视频帧61的内容越多,同时能够看到的视频帧61的内容的细节也越少。
[0125] 在一些实施例中,播放窗口视场的方向转动和放大倍数可以通过输入装置106接收用户的各种操作来确定,输入装置106中可以设置如陀螺仪、鼠标、键盘、触摸板、操作条
和鼠标等支持实施相应的操作。
[0126] 以方向转动的操作为例,包括移动端的触控拖拽交互、陀螺仪事件,还可以包括电脑(PC)端的鼠标拖拽交互、转动控件和键盘事件。
[0127] 以镜头缩放的操作为例,包括移动端的双击(或多击)触控操作、双指(或多指)触控操作,还可以包括PC端的触摸板事件、操作条滑动和鼠标滚轮事件。特别地,针对不同类
型的事件,客户端可以按照一定的优先级进行响应,例如针对鼠标滚轮的时间兼容性差于
触摸板事件和操作条滑动的情况,鼠标滚轮事件的响应优先级可以设置为低于触摸板事件
和操作条滑动。
[0128] 此外,方向转动和镜头缩放的操作的类型不局限于上述类型,例如还可以包括向输入装置106的摄像头实施的面部动作和眼部动作,从而客户端可以根据用户的意愿而显
示全景视频处于不同视场的内容,符合用户针对全景视频的个性化的需求。
[0129] 在另一些实施例中,播放窗口视场的方向和放大倍数两个参数可以由客户端设置,具体可以为客户端中根据全景视频的特点而设置的保证观看体验的经验值;或者,可以
是从全景视频的文件中读取的参数(由拍摄或发布全景视频的用户设定,可以针对全景视
频中对应部分或者全部的时间轴的视频帧而设定),又或者,可以是服务器跟随全景视频而
向客户端所下发的参数。
[0130] 可以理解地,上述确定播放窗口视场的参数的方式可以择一使用或者结合使用,例如,设置不同来源的参数的优先级,按照优先级的降序使用不同来源的参数,特别地,当
没有检测到用户指示参数的操作时,采用客户端中的针对播放效果而优化的参数的默认
值,以保证全景视频的最佳播放效果。
[0131] 步骤405,客户端在以待渲染的视频帧为贴图的三维模型的表面纹理中,与待渲染的视频帧的播放窗口视场对应的纹理渲染到播放窗口。
[0132] 在一些实施例中,客户端根据播放窗口视场朝向三维模型的方向,确定三维模型的表面纹理中处于播放窗口视场的纹理区域,根据纹理区域中的顶点从纹理空间中提取与
纹理区域相应的纹理,包括顶点在纹理空间中对应的纹理像素、以及顶点之间的区域在纹
理空间中对应的纹理像素;采用透视投影的方式(即近大远小的原则),将纹理区域对应的
纹理渲染到输出装置107中的显示器显示的播放窗口中。
[0133] 可以理解,由于播放窗口视场的方向转动/缩放,对三维模型处于播放窗口视场的纹理区域提取的纹理像素在整体上可以进行相应的旋转/缩放(例如在放大时进行像素插
值)处理。
[0134] 步骤406,与步骤405可同步地进行,客户端播放与待渲染的视频帧在时间上同步的已解码的音频帧。
[0135] 步骤407,客户端判断是否已经渲染完毕内存中的全部待渲染的视频帧,如果是,则结束播放;否则,返回步骤404以继续处理下一个视频帧,直至渲染完毕内存中的全部待
渲染的视频帧。
[0136] 至此,已经说明了客户端在播放窗口中显示全景视频的过程,客户端能够在播放过程中播放符合用户意愿的视场中的对象,使得用户能够灵活进行视场的方向转动和镜头
缩放的调整,以关注全景视频中感兴趣的内容,并给用户如同身临其境的感知效果。然而,
在播放过程中,为了避免由于允许用户自由选择视角而带来的播放器的资源消耗与用户的
自由视角需求之间的矛盾,本公开实施例提供了一种全新的全景视频的播放方法。
[0137] 结合上述对客户端在播放窗口中显示全景视频的过程的说明,接下来对本公开实施例提供的全景视频的播放方法进行说明。图7为本公开实施例提供的全景视频的播放方
法的一个可选的实现流程示意图,实现本公开实施例的终端设备可通过运行各种类型的客
户端来实现全景视频的播放方法,就终端设备而言,可以是台式机电脑或笔记本电脑等各
种终端设备。
[0138] 如图7所示,对于本公开实施例中的全景视频的播放方法的实现流程,将结合图7示出的步骤进行说明。
[0139] 步骤701,将全景视频中的视频帧映射为三维模型的表面纹理。
[0140] 这里,在实际实施时,终端可一次性的将全景视频中的多个视频帧映射为三维模型的表面纹理,或者,每播放一帧全景视频的视频帧时,即完成一次视频帧的渲染后,再执
行下一帧视频帧的处理。
[0141] 步骤702,确定与播放窗口对应的播放窗口视场的锁定方向。
[0142] 在一些实施例中,对于本步骤702中的确定与播放窗口对应的播放窗口视场的锁定方向来说,可以采用以下方式来实现:当所述全景视频的播放时间处于锁定时段时,根据
所述锁定时段与所述锁定方向的对应关系,确定所述全景视频中处于所述锁定时段的视频
帧所对应的锁定方向,并作为与所述播放窗口对应的播放窗口视场的锁定方向。
[0143] 步骤703,基于所述播放窗口视场的锁定方向,将所述播放窗口视场在所述三维模型的表面纹理中进行投影,得到处于所述播放窗口视场的纹理区域。
[0144] 步骤704,在所述播放窗口中渲染处于所述播放窗口视场的纹理区域。
[0145] 下面结合图8对图7所示的全景视频的播放方法的实现步骤进行详细说明。参见图8,图8为本公开实施例提供的全景视频的播放方法的另一个可选的实现流程示意图,下面
结合图8对本公开实施例中提供的全景视频的播放方法的具体实现步骤进行说明。
[0146] 步骤801,客户端初始化播放窗口。
[0147] 在一些实施例中,当客户端被启动时,或客户端在后台运行并当接收播放全景视频的操作时,将默认初始化播放窗口。
[0148] 步骤802,客户端从全景视频的服务器中请求获取全景视频的文件,并将全景视频的文件加载到内存中。
[0149] 步骤803,客户端对全景视频的文件进行解码,以提取出解码元数据和媒体数据。
[0150] 需要指出的是,对于步骤802和步骤803的具体实现过程而言,步骤802可以根据前述步骤401的说明进行实施,步骤803可以根据前述步骤402的说明进行实施,这里不再赘
述。
[0151] 步骤804,客户端将媒体数据中的视频帧映射为三维模型的表面纹理。
[0152] 这里,对于本步骤804中的媒体数据中的视频帧而言,需要进行后续的渲染才能够在播放窗口中进行显示,因此解码得到的、且未在播放窗口中渲染的视频帧称为待渲染的
视频帧,例如从全景视频的分段文件中解码得到的视频帧,或者从全景视频的完整文件中
解码得到的视频帧。
[0153] 在一些实施例中,对于本步骤804中的将媒体数据中的视频帧映射为三维模型的表面纹理来说,可以采用以下方式来实现:将媒体数据中的视频帧的像素点映射到纹理空
间,得到所述像素点的纹理坐标;将所述像素点的纹理坐标映射到所述三维模型的表面的
顶点坐标,以形成所述三维模型的表面纹理。
[0154] 需要指出的是,对于本步骤804的具体实现过程可以根据前述步骤403的说明进行实施,例如,可以将媒体数据中的全部视频帧分别映射到多个相同的三维模型,以形成相应
的表面纹理,或者,按照视频帧的渲染顺序,当一个视频帧被渲染完毕时,才将下一个视频
帧映射为三维模型的表面纹理,这里不做限定。
[0155] 步骤805,对于已经解码的各个视频帧,客户端确定在播放窗口中渲染待渲染的视频帧时,播放窗口所对应的播放窗口视场。
[0156] 在一些实施例中,对于本步骤805中的确定播放窗口所对应的播放窗口视场来说,可以采用以下方式来实现:当所述全景视频的播放时间未处于锁定时段时,根据接收到的
操作,确定所述操作所指示的方向为所述播放窗口视场的方向,以通过所述播放窗口视场
的方向确定播放窗口所对应的播放窗口视场。
[0157] 在另一些实施例中,对于本步骤805中的确定播放窗口所对应的播放窗口视场来说,还可以采用以下方式来实现:根据接收到的所述操作,确定所述操作所指示的放大倍数
为所述播放窗口视场的放大倍数,以通过所述放大倍数确定播放窗口所对应的播放窗口视
场;其中,所述操作为用于表达用户意愿的操作。
[0158] 通过上述描述可见,播放窗口所对应的播放窗口视场,可以通过播放窗口视场的方向和放大倍数这两个参数分别进行确定。具体来说,确定播放窗口视场的上述两个参数
可通过解析用户操作的方式来确定,即,客户端通过接收用于设定方向和放大倍数的操作
来确定播放窗口视场的方向和放大倍数。下面进行说明。
[0159] 对于播放窗口视场的方向来说,根据在客户端中接收到的用于表达方向转动的操作(例如包括前述的触控拖拽交互、操作条滑动等),解析触发虚拟镜头实现的方向转动,其
表示基于基准方向变化的角度,进而对实现播放窗口视场的虚拟镜头朝向三维模型的表面
纹理的方向进行更新,以得到播放窗口视场的更新的方向。
[0160] 对于播放窗口视场的放大倍数来说,根据在客户端中接收到的用于表达虚拟镜头缩放的操作(例如包括前述的触摸板事件、鼠标滚轮事件等),解析触发虚拟镜头实现的镜
头缩放,进而根据镜头缩放与放大倍数的对应关系,来确定播放窗口视场的更新的放大倍
数。
[0161] 步骤806,客户端确定与播放窗口对应的播放窗口视场的锁定方向。
[0162] 在一些实施例中,对于本步骤806中的确定与播放窗口对应的播放窗口视场的锁定方向来说,可以采用以下方式来实现:当所述全景视频的播放时间处于锁定时段时,根据
所述锁定时段与所述锁定方向的对应关系,确定所述全景视频中处于所述锁定时段的视频
帧所对应的锁定方向,并作为与所述播放窗口对应的播放窗口视场的锁定方向。
[0163] 这里,所述方法还包括:根据所述全景视频的封装格式,从所述全景视频中提取解码元数据;从所述解码元数据中提取所述锁定时段与所述锁定方向的对应关系的数据,以
及,提取所述锁定时段与放大倍数的对应关系的数据。
[0164] 在一些实施例中,播放窗口视场采用预先设定的方式,客户端通过解析全景视频文件的解码元数据而得到在播放窗口视场中渲染各视频帧时所对应的方向和放大倍数,以
确定对应的播放窗口视场。
[0165] 例如,拍摄或发布全景视频的用户,在全景视频的文件中封装了解码元数据,其中设定了播放窗口视场中渲染各视频帧的方向和放大倍数。从而一旦客户端根据约定的封装
格式从视频文件中提取出解码元数据,即可确定实现播放窗口视场的更新的方向和放大倍
数。
[0166] 根据上述示例,可以理解地,播放窗口视场的方向和放大倍数也可以是独立于全景视频的播放视场数据,当客户端向服务器请求全景视频的过程中,由服务器向客户端下
发,以控制播放窗口视场中渲染全景视频的部分或者全部视频时所使用的方向和放大倍
数。
[0167] 这里,所述锁定时段包括以下至少之一:由发布所述全景视频的用户设定的时间段;所述全景视频中包括推广信息的时间段;所述全景视频中包括符合用户偏好的内容的
时间段。
[0168] 需要说明的是,所述全景视频中包括推广信息的时间段,例如可以是在全景视频中植入广告的时间段;对于所述全景视频中包括符合用户偏好的内容的时间段来说,符合
用户偏好的内容,例如当前播放的视频是用户根据关键字搜索到的,那么,符合用户偏好的
内容的时间段,即为当前播放的时间段中含有与用户搜索的关键字相匹配的元素的时间
段。
[0169] 步骤807,基于播放窗口视场的锁定方向,客户端将播放窗口视场在三维模型的表面纹理中进行投影,得到处于播放窗口视场的纹理区域。
[0170] 在一些实施例中,对于本步骤807中的将播放窗口视场在三维模型的表面纹理中进行投影,得到处于播放窗口视场的纹理区域来说,可以采用以下方式来实现:对于按照先
后时间顺序待渲染的每个视频帧执行以下操作:将所述播放窗口视场在根据所述待渲染的
视频帧映射形成的表面纹理中进行投影,得到处于所述播放窗口视场的纹理区域。
[0171] 在一些实施例中,为了在播放全景视频的一些时段中强调一些需要突出显示的目标内容,例如高潮情节或者植入广告,需要在全景视频中显示这些内容的时段(锁定播放窗
口视场的方向的时段即为锁定时段),将播放窗口视场锁定在特定的方向(即锁定方向),并
设置合适的放大倍数。其中,锁定时段和对应的锁定方向称为播放窗口视场的锁定数据。当
然,播放窗口视场的锁定数据还可以包括锁定时段和对应的放大倍数,可以理解,锁定方向
和放大倍数都是针对锁定时段内的各个视频帧分别设定,或者统一设置的。
[0172] 作为示例,锁定数据可以封装在全景视频的解码元数据中,在全景视频的解码阶段,由客户端根据约定的封装格式解析全景视频的文件获得解码元数据,并从解码元数据
中提取出锁定数据,并判断当前待渲染的视频帧是否处于锁定时段内,以及处于锁定时段
时播放窗口需要使用的播放窗口视场。
[0173] 例如,客户端在解码或在向服务器请求全景视频的文件时,判断是否存在播放窗口视场的锁定数据。具体地,如果存在锁定数据,则根据锁定数据指示的锁定时段,将处于
相应锁定时段的视频帧对应的锁定方向,作为在播放窗口中渲染相应视频帧时的播放窗口
视场的方向,并将处于相应锁定时段的视频帧对应的放大倍数,作为在播放窗口中渲染相
应视频帧时播放窗口视场的放大倍数。如果不存在锁定数据,则客户端可以自动确定播放
窗口视场的方向和放大倍数,或者,根据在客户端的操作区域接收的操作,来确定播放窗口
视场的方向和放大倍数。
[0174] 步骤808,客户端将确定的处于播放窗口视场的纹理区域渲染到显示器显示的播放窗口中。
[0175] 需要说明的是,对于步骤808的实现过程来说,步骤808可以根据前述步骤405的说明进行实施,这里不再赘述。
[0176] 步骤809,客户端播放与步骤808中待渲染的视频帧在时间上同步的已解码的音频帧。
[0177] 步骤810,客户端判断是否已经渲染完毕内存中的全部待渲染的视频帧,如果是,则结束播放;否则,返回步骤805以继续处理下一个视频帧,直至渲染完毕内存中的全部待
渲染的视频帧。
[0178] 为了进一步提升在全景视频的播放窗口展现的信息量,除了在客户端的播放窗口中展示全景视频的内容,本公开实施例还提供了在播放窗口的子窗口中展示同一全景视频
的内容的方案,图9为本公开实施例提供的采用多个窗口播放全景视频的一个界面示意图,
参见图9,在同一个时间点,子窗口中所播放的全景视频的内容,与播放窗口中所播放的全
景视频的内容可以相同或不同,拓展了用户从全景视频中获取信息的途径,从而使用户在
观看全景视频的过程中能够更加高效地获取所需要的信息。相应的,基于本公开的上述实
施例,对子窗口播放全景视频进行说明。
[0179] 在一些实施例中,客户端在初始化播放窗口时,还可以初始化播放窗口的子窗口,并确定子窗口对应的子窗口视场、以及子窗口视场的锁定方向,然后,基于所述子窗口视场
的锁定方向,将所述子窗口视场在所述三维模型的表面纹理中进行投影,得到处于所述子
窗口视场的纹理区域,从而在子窗口中渲染处于所述子窗口视场的纹理区域。
[0180] 这里,在默认初始化播放窗口时,根据需求可以选择不默认初始化子窗口,或者,在默认初始化播放窗口时,选择默认初始化播放窗口的一个或一个以上的子窗口。具体地,
在播放窗口中播放全景视频的过程中,当接收到开启子窗口的操作时才初始化一个或一个
以上的子窗口。
[0181] 可以理解的是,播放窗口的视频播放区域大于子窗口的视频播放区域。需要指出的是,上文中提到的开启子窗口的操作的方式可以有多种,下面进行示例性说明。
[0182] 例如,客户端通过接收子窗口的方向和放大倍数中的至少一个参数的方式(如果没有接收到参数则可以采用默认值),来确定与子窗口对应的视场,即子窗口视场,并初始
化具有相应子窗口视场的子窗口;在客户端解码全景视频的后续视频帧时,将在子窗口中
渲染处于子窗口视场的视频帧。
[0183] 又例如,客户端在播放窗口自动识别目标对象(例如,目标对象可以为人、动物、某具体的物品等)时,或接收到用户标识目标对象的操作时,将识别目标对象的图像特征(例
如灰度、轮廓等特征),并与子窗口绑定,识别当前视频帧中包括的目标对象的视场,并通过
如图6A示出的纹理映射的方式,在子窗口中显示视频帧中处于子窗口视场的内容;当然,后
续解码的视频帧将根据子窗口绑定的图形特征继续类似的处理。
[0184] 就这里的目标对象而言,可以是在全景视频的播放过程中,客户端从播放窗口或子窗口中自动识别的对象(例如人脸、景物或其他任意用户需要跟踪的对象等),或者,目标
对象可以是用户在播放窗口或子窗口中标识的对象,这里不做限制。
[0185] 此外,为了方便在客户端中实施开启子窗口的操作,客户端的播放窗口除了包括视频播放区域以供显示视频帧中处于播放窗口视场的内容,播放窗口中还可以包括操作区
域,其中,操作区域包括用于初始化子窗口的上述各种形式的入口。
[0186] 接下来对进行全景视频播放展现时,播放窗口与子窗口的相对位置关系进行说明。在实际应用中,播放窗口与子窗口的相对位置关系是多样化的。例如,播放窗口与子窗
口可以在客户端的不同区域进行显示。再例如,子窗口可以位于播放窗口的内部,并覆盖播
放窗口的部分视频播放区域,如图9所示的采用多个窗口播放全景视频的界面示意图中,播
放窗口91的视频播放区域中的部分区域被子窗口92所覆盖;或者,子窗口可以位于播放窗
口的内部,并由播放窗口的视频播放区域避让子窗口。在实际实施时,子窗口的的数量可以
为一个或多个,具体可依据实际需要进行设定。
[0187] 特别地,当子窗口位于播放窗口的内部时,子窗口在播放窗口的位置还可以反映与子窗口显示的内容、与播放窗口中显示的内容在视频帧中的相对位置关系,从而当用户
需要在播放窗口中显示与子窗口相同的内容时,可以根据相对位置关系快速调整播放窗口
的视场的方向,以在播放窗口中观看与子窗口相同的内容,由于播放窗口的视频播放区域
是大于子窗口的视频播放区域的,从而通过播放窗口能够看到子窗口中无法看到的更多细
节。
[0188] 需要指出的是,对于子窗口视场的锁定方向的确定过程来说,可以根据前述步骤806的说明进行实施,这里不再赘述。
[0189] 特别地,子窗口视场可以采用与播放窗口视场不同的方向,当然两者的放大倍数也可以有所差异,从而使用户能够观看全景视频的不同区域的内容,扩展了用户从全景视
频获取信息的途径。
[0190] 需要说明的是,播放窗口视场的方向与子窗口视场的方向可相对固定,如播放窗口视场的方向与子窗口视场的方向相差180度。
[0191] 采用在客户端中实现播放窗口的子窗口展示内容的方案,能够拓展用户从全景视频中获取信息的途径,使得用户在观看全景视频的过程中不再受到单一视场的约束,能够
更加高效地获取所需要的信息。
[0192] 在一些实施例中,在确定播放窗口视场和子窗口视场的方向后,所述方法还可以包括:根据在客户端中接收到的针对播放窗口与子窗口的切换操作,交换播放窗口视场与
子窗口视场的方向。
[0193] 当然,由于播放窗口与子窗口的大小存在差异,因此,播放窗口与子窗口的放大倍数可以保持不变,以便于利用相对子窗口更大的播放窗口关注之前在子窗口显示的内容,
在必要时可以再次切换还原播放窗口视场与子窗口视场的方向,例如在计时时间到达(例
如20秒)后再次切换还原播放窗口视场与子窗口视场的方向,或者,根据用户的操作而切换
还原播放窗口视场与子窗口视场的方向。
[0194] 综上所述,本公开实施例具有以下有益效果:
[0195] 将播放窗口对应的播放窗口视场的方向在特定时间段内进行锁定,基于锁定的方向,在全景视频的播放窗口中渲染对应视场的内容,使得在观看全景视频时,播放窗口视场
的方向满足用户对观看内容的视角的需求,避免播放器的资源消耗与用户的自由视角需求
之间存在矛盾,有效提升用户的观看体验。
[0196] 以上描述仅为本公开的实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开实施例中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技
术方案,同时也应涵盖在不脱离上述公开实施例构思的情况下,由上述技术特征或其等同
特征进行任意组合而形成的其它技术方案。例如上述特征与本公开实施例中公开的(但不
限于)具有类似功能的技术特征进行互相替换而形成的技术方案。