1.本发明属于全景视频播放技术领域,更具体地,涉及一种基于多视角的全景播放方法与装置。
背景技术:2.随着视频领域的发展、视频采集和传输能力的增强,用户对于观看“身临其境”视频的需要也越来越强烈,为了满足用户的需求,视频采集端采用了多视角的采集方式来实现360度全方位的视频录制。
3.多视角视频是指通过多个摄像机在多个角度同时拍摄,可给用户同时提供不同视角下拍摄的视频。传统的多视角视频业务常见于多个摄像机的视角以画中画或马赛克视频方式向用户提供多个角度的视频。近年来,出现了称为“自由视角”的新一代多视角业务,自由视角是指在节目播出时,直播方利用多机位或环绕机位向用户提供环绕整个场地的任意角度视频信息,供用户以旋转切换的方式找到自己希望的视角和最佳追随观看位置。自由视角可让视频内容无死角,用户观看视频内容时可以随时选择要观看的“位置”,让用户可时刻体验场馆各个位置带来的视觉和听觉效果,更加逼真呈现场馆现场效果。
4.目前终端播放多视角视频的方法是:视频服务器将多视角视频内容通过一定方式合成为2d全景视频传给终端,再由终端实现3d球形建模,将接收到的2d全景视频贴图到3d球形模型上,完成多视角视频内容的播放。这种将多视角视频由服务端合成后再转发给终端的方式,往往会存在以下问题:1)终端播放视频有延时,实时性低,特别是对于直播节目,大大影响用户观看体验;2)由于服务端传给终端的是360度的全景视频,传输数据量大,占用带宽多;3)终端接收视频并缓存,占用的资源过多。
技术实现要素:5.针对现有技术的以上缺陷或改进需求,本发明提供了一种基于多视角的全景播放方法与装置,其目的在于通过球面映射,由终端根据用户需求实时合成各路摄像头拍摄的视频并进行播放,由此解决传统由服务端合成再转发所带来的实时性低、传输数据量大、占用资源过多等技术问题。
6.为实现上述目的,按照本发明的一个方面,提供了一种基于多视角的全景播放方法,包括:
7.建立球形模型,并根据经纬线在球形模型上创建多个渲染单元;
8.获取视频的索引信息后,根据索引信息计算球形模型上每个渲染单元与摄像头间的映射关系,并保存每个渲染单元对应包含的视频路径;
9.根据当前用户视角在球形模型上确定可视渲染单元,并根据可视渲染单元对应包含的视频路径确定播放路径,进行视频播放。
10.优选地,所述建立球形模型,并根据经纬线在球形模型上创建多个渲染单元,具体为:
11.建立球形模型并确定球形模型上的经纬线数量,将球面上每相邻的两条经线和两条纬线相交形成的一个四边形作为一个渲染单元,并创建与每个渲染单元对应的结构体。
12.优选地,所述获取视频的索引信息后,根据索引信息计算球形模型上每个渲染单元与摄像头间的映射关系,并保存每个渲染单元对应包含的视频路径,具体为:
13.获取服务端下发的用户选择播放的视频的索引信息;其中,所述索引信息包括摄像头个数、摄像头排列方式、摄像头视角以及各摄像头拍摄的视频路径;
14.根据摄像头排列方式计算每个摄像头映射到球形模型上的位置,并根据摄像头位置和摄像头视角计算球形模型上每个渲染单元要显示的视频内容是由哪个摄像头拍摄,以确定每个渲染单元与摄像头的映射关系;
15.对于每个渲染单元,根据映射关系将对应的摄像头位置、视频路径以及该渲染单元的位置信息一起存入对应的结构体。
16.优选地,所述根据摄像头排列方式计算每个摄像头映射到球形模型上的位置,具体为:
17.将摄像头和球心间的连线与球面的交点作为摄像头映射到球形模型上的点,并将该点的经纬度坐标作为摄像头映射到球形模型上的位置。
18.优选地,所述根据摄像头位置和摄像头视角计算球形模型上每个渲染单元要显示的视频内容是由哪个摄像头拍摄,具体为:
19.以摄像头位置与球心间的连线为轴线,以摄像头视角为圆锥角绘制圆锥体,确定该圆锥体的侧面与球面相交所形成的区域;
20.计算该区域所包含的渲染单元,进而确定每个渲染单元要显示的视频内容是由哪个摄像头拍摄。
21.优选地,所述根据当前用户视角在球形模型上确定可视渲染单元,并根据可视渲染单元对应包含的视频路径确定播放路径,进行视频播放,具体为:
22.根据当前用户视角确定用户观看的可视区域,并在球形模型上确定该可视区域所包含的一个或多个渲染单元,作为可视渲染单元;
23.查找每个可视渲染单元的结构体中所包含的视频路径,并根据视频路径个数确定播放路径,以便终端基于播放路径进行视频播放。
24.优选地,对于每个可视渲染单元,如果可视渲染单元的结构体中只包含一个视频路径,则将该视频路径作为播放路径,以便终端基于该播放路径进行视频播放。
25.优选地,对于每个可视渲染单元,如果可视渲染单元的结构体中包含多个视频路径,则根据可视区域的中心点的经纬度坐标,按照纬度优先原则选择对应结构体中的其中一个视频路径作为播放路径,以便终端基于该播放路径进行视频播放。
26.优选地,所述按照纬度优先原则选择对应结构体中的其中一个视频路径作为播放路径,具体为:
27.优先寻找纬度与所述可视区域的中心点纬度最接近的摄像头,将该摄像头对应的视频路径作为播放路径;在纬度相同的情况下,则进一步选择经度与所述可视区域的中心点经度最接近的摄像头,将该摄像头对应的视频路径作为播放路径。
28.按照本发明的另一方面,提供了一种基于多视角的全景播放装置,包括至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储
有可被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于完成第一方面所述的基于多视角的全景播放方法。
29.总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:本发明提供的全景播放方法中,终端建立球形模型并创建渲染单元,在获取视频的索引信息后计算每个渲染单元与摄像头的映射关系,最后根据当前用户视角确定可视渲染单元,选择请求多视角视频中能覆盖用户可视区域的摄像头拍摄的视频内容,在终端合成播放。在上述方案中,服务端无需提前合成视频,终端可实时合成各路摄像头拍摄的视频,实时性好,用户观看体验佳;可在保证终端当前视角清晰度的前提下减少网络传输负担;能提前缓存有用视频,减少无用视频的资源消耗。
附图说明
30.图1是本发明实施例提供的一种基于多视角的全景播放方法的流程图;
31.图2是本发明实施例提供的一种基于多视角的全景播放方法的具体实施流程图;
32.图3是本发明实施例提供的一种球形模型的经纬线划分示意图;
33.图4是本发明实施例提供的一种用户可视区域在球形模型上的示意图;
34.图5是本发明实施例提供的一种基于多视角的全景播放装置架构图。
具体实施方式
35.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
36.实施例1
37.为解决传统由服务端合成再转发所带来的实时性低、传输数据量大、占用资源过多等问题,本发明实施例提供了一种基于多视角的全景播放方法,如图1所示,主要包括:
38.步骤101,终端建立球形模型,并根据经纬线在球形模型上创建多个渲染单元。具体过程如下:
39.终端建立球形模型并确定球形模型上的经纬线数量,然后将球面上每相邻的两条经线和两条纬线相交形成的一个四边形作为一个渲染单元,从而得到多个渲染单元,并创建与每个渲染单元对应的结构体,以便后续进行映射信息的保存。
40.步骤102,终端获取视频的索引信息后,根据索引信息计算球形模型上每个渲染单元与摄像头间的映射关系,并保存每个渲染单元对应包含的视频路径。具体过程如下:
41.首先,终端获取服务端下发的用户选择播放的视频的索引信息。当用户选择播放的视频后,服务端将视频的索引信息下发至终端,使终端获取到索引信息;其中,所述索引信息包括摄像头个数、摄像头排列方式、摄像头视角以及各摄像头拍摄的视频路径。
42.然后,终端根据摄像头排列方式计算每个摄像头映射到球形模型上的位置,再根据摄像头位置和摄像头视角计算球形模型上每个渲染单元要显示的视频内容是由哪个摄像头拍摄,以确定每个渲染单元与摄像头的映射关系。其中,摄像头位置就是指摄像头映射到球形模型上的位置(即坐标),用球形模型上对应的经纬度表示。
43.最后,对于每个渲染单元,根据确定好的映射关系将对应的摄像头位置、视频路径以及该渲染单元的位置信息一起存入对应的结构体。其中,渲染单元的位置信息包括该渲染单元对应的两个经度和两个维度。
44.步骤103,终端根据当前用户视角在球形模型上确定可视渲染单元,并根据可视渲染单元对应包含的视频路径确定播放路径,进行视频播放。具体过程如下:
45.首先,根据当前用户视角确定用户观看的可视区域,并在球形模型上确定该可视区域所包含的一个或多个渲染单元,作为可视渲染单元。
46.然后,查找每个可视渲染单元的结构体中所包含的视频路径,并根据视频路径个数确定播放路径,以便终端基于播放路径进行视频播放。其中,对于每个可视渲染单元来说,如果可视渲染单元的结构体中只包含一个视频路径,则将该视频路径作为播放路径;如果可视渲染单元的结构体中包含多个视频路径,则根据可视区域的中心点的经纬度坐标,按照纬度优先原则选择对应结构体中的其中一个视频路径作为播放路径。
47.其中,所述纬度优先原则是指:优先寻找纬度与所述可视区域的中心点纬度最接近的摄像头;在纬度相同的情况下,则进一步选择经度与所述可视区域的中心点经度最接近的摄像头。之所以按照纬度优先原则是考虑到常规视线的水平方向是跟纬线平行,纬度优先是出于人眼视觉舒适角度的选择。
48.本发明提供的上述全景播放方法中,终端建立球形模型并创建渲染单元,在获取视频的索引信息后计算每个渲染单元与摄像头的映射关系,最后根据当前用户视角确定可视渲染单元,选择请求多视角视频中能覆盖用户可视区域的摄像头拍摄的视频内容,在终端合成播放。整个过程中,服务端无需提前合成视频,终端可实时合成各路摄像头拍摄的视频,实时性好,用户观看体验佳;可在保证终端当前视角清晰度的前提下减少网络传输负担;能提前缓存有用视频,减少无用视频的资源消耗。
49.实施例2
50.在上述实施例1的基础上,本发明实施例进一步提供了一种基于多视角的全景播放方法的实施方式,如图2所示,具体如下:
51.步骤201,终端建立球形模型并确定经纬线数量,然后根据经纬线在球形模型上创建多个渲染单元,并对应每个渲染单元创建结构体。
52.结合图3,所述球形模型上均匀设置多个经线和多个纬线,类似于地球的经纬度划分,具体的经线数量和纬线数量可根据经验值设定,也可根据实际需求灵活设置,在此不做限定。以图3为例,假设经度和纬度方向上均以20
°
为基本单位进行划分,则经线数量=360
°
/20
°
=18,纬线数量=180
°
/20
°
=9。继续结合图3可知,完成经纬线划分后,所述球形模型上每相邻的两条经线和两条纬线相交都会形成一个四边形,每个四边形就称为一个渲染单元,整个球形模型上可形成多个渲染单元。
53.对于所述球形模型上的每个点,其位置即坐标,采用对应的经纬度表示。例如,在图3中,点a、b、c、d的坐标分别为:a(w20
°
,n40
°
)、b(w20
°
,s40
°
)、c(e40
°
,n40
°
)、d(w60
°
,0
°
);其中,w、e、n、s分别表示西经、东经、北纬、南纬。
54.步骤202,当用户在终端选择播放的视频后,服务端将该视频的索引信息下发至终端,使终端获取到对应的索引信息。其中,所述索引信息包括摄像头个数、摄像头排列方式、摄像头视角以及各摄像头拍摄的视频路径。
55.步骤203,终端根据摄像头排列方式计算出每个摄像头映射到球形模型上的位置,即每个摄像头映射到球形模型上的坐标。具体计算方法如下:
56.对于每个摄像头,将摄像头和球心间的连线与球面的交点作为摄像头映射到球形模型上的点,然后将该点的经纬度坐标作为摄像头映射到球形模型上的位置。结合图3,假设某个摄像头与球心的连线交于球面上的点a,则点a(w20
°
,n40
°
)即为该摄像头映射到球形模型上的位置;按照上述方法,即可计算出所有摄像头映射到球形模型上的位置。
57.步骤204,终端根据摄像头位置和摄像头视角计算出球形模型上每个渲染单元要显示的视频内容是由哪个摄像头拍摄。具体计算方法如下:
58.对于每个摄像头,首先以摄像头位置与球心间的连线为轴线,以摄像头视角为圆锥角绘制圆锥体,确定该圆锥体的侧面与球面相交所形成的区域,该区域即为摄像头拍摄到的视频区域映射到球面的区域;然后计算该区域所包含的渲染单元,即可确定每个渲染单元要显示的视频内容是由哪个摄像头拍摄,进而确定每个渲染单元与摄像头间的映射关系。
59.结合图3,假设某个摄像头的位置为点a(w20
°
,n40
°
),则需要以点a与球心的连线为轴线,以该摄像头视角为圆锥角绘制圆锥体,确定该圆锥体侧面与球面相交后在球形模型上形成的区域,然后计算该区域都包含哪些渲染单元,如此便可确定每个渲染单元对应的摄像头。
60.步骤205,对于每个渲染单元,将对应的摄像头位置、视频路径以及渲染单元的位置信息一起存入对应的结构体。
61.例如,某个渲染单元要显示的视频内容是由摄像头1和摄像头2拍摄,则需要将摄像头1的位置和视频路径以及摄像头2的位置和视频路径都一起存入结构体中。所述渲染单元的位置信息则包括该渲染单元对应的两个经度和两个维度,对应4个坐标位置。
62.步骤206,终端根据当前用户视角在球形模型上确定可视渲染单元。
63.具体地,根据当前用户视角可确定用户观看的可视区域,进一步可在球形模型上确定该可视区域所包含的一个或多个渲染单元,这些渲染单元即为可视渲染单元。如图4所示,假设用户观看的可视区域如图中矩形框所示,则图中该矩形框内所涵盖的所有四边形均为可视渲染单元。
64.步骤207,查找每个可视渲染单元的结构体中所包含的视频路径。
65.步骤208,判断单个可视渲染单元的结构体中是否只包含一个视频路径。如果是,则执行步骤209;如果否,即单个可视渲染单元的结构体中包含多个视频路径,则执行步骤210。
66.步骤209,将结构体所包含的该视频路径作为播放路径,执行步骤211。
67.步骤210,根据可视区域的中心点的经纬度坐标,按照纬度优先原则选择结构体中的其中一个视频路径作为播放路径,执行步骤211。具体如下:
68.优先寻找纬度与所述可视区域的中心点纬度最接近的摄像头,将该摄像头对应的视频路径作为播放路径;在纬度相同的情况下,则进一步选择经度与所述可视区域的中心点经度最接近的摄像头,将该摄像头对应的视频路径作为播放路径。
69.步骤211,终端请求播放路径,并基于播放路径进行视频播放。
70.步骤212,当用户改变当前视角时,则跳转至步骤206继续执行。
71.通过本发明实施例提供的上述全景播放方法,服务端无需提前合成视频,终端可实时合成各路摄像头拍摄的视频,实时性好,用户观看体验佳;可在保证终端当前视角清晰度的前提下减少网络传输负担;能提前缓存有用视频,减少无用视频的资源消耗。
72.实施例3
73.在上述实施例1和实施例2提供的基于多视角的全景播放方法的基础上,本发明还提供了一种可用于实现上述方法的基于多视角的全景播放装置,如图5所示,是本发明实施例的装置架构示意图,设置于实施例1和实施例2中所述的终端。本实施例的基于多视角的全景播放装置包括一个或多个处理器21以及存储器22。其中,图5中以一个处理器21为例。
74.所述处理器21和所述存储器22可以通过总线或者其他方式连接,图5中以通过总线连接为例。
75.所述存储器22作为一种基于多视角的全景播放方法非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如实施例1中的基于多视角的全景播放方法。所述处理器21通过运行存储在所述存储器22中的非易失性软件程序、指令以及模块,从而执行基于多视角的全景播放装置的各种功能应用以及数据处理,即实现实施例1和实施例2的基于多视角的全景播放方法。
76.所述存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,所述存储器22可选包括相对于所述处理器21远程设置的存储器,这些远程存储器可以通过网络连接至所述处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
77.所述程序指令/模块存储在所述存储器22中,当被所述一个或者多个处理器21执行时,执行上述实施例1和实施例2中的基于多视角的全景播放方法,例如,执行以上描述的图1和图2所示的各个步骤。
78.本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,read only memory)、随机存取存储器(ram,random access memory)、磁盘或光盘等。
79.本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。