一种全景视频播放方法、装置及计算机存储介质与流程

文档序号:29745046发布日期:2022-04-21 21:25阅读:134来源:国知局
一种全景视频播放方法、装置及计算机存储介质与流程
一种全景视频播放方法、装置及计算机存储介质
1.本发明涉及iptv(internet protocol television,交互式网络电视)系统的视频处理技术领域,特别涉及一种全景视频播放方法、装置及计算机存储介质。


背景技术:

2.随着iptv业务发展,用户对iptv视频业务的多样性也提出了更多的要求,全景视频播放业务是iptv的新业务领域,能让用户360度无死角的观看到全景视频内容,提高用户体验。
3.由于全景视频通过全视角传输方式传输与普通视频的传输没有差异,致使终端无法快速准确的识别出全景视频,并进行正确的显示处理,从而影响到用户的观看体验。相关技术在终端处理全景视频时采用包括:1)用户观看到全景视频时,通过遥控器操作,通知终端进入全景播放模式,终端再建模、渲染、全景输出;2)终端在建模前获取视频流,抽帧识别当前视频为全景视频后,再建模、渲染、全景输出。这样就浪费了用户时间,降低了用户体验。


技术实现要素:

4.本发明实施例提供一种全景视频播放方法、装置及计算机存储介质,通过web页面获取视频内容特征以实现直接建模渲染播放,避免了相关技术在进行全景视频播放时需要预下载视频、抽帧、识别等步骤,进一步提高用户体验。
5.一方面,提供一种全景视频播放方法,其特征在于,其包括步骤:
6.获取全景视频特征解析服务器地址并存储在浏览器内核;
7.浏览器内核加载播控页面时解析预置于所述播控页面内的js语句以获取待播视频的视频特征;
8.所述待播视频为全景视频时,浏览器内核根据所述视频特征调用opengl建立与所述待播视频匹配的模型;
9.在所述待播视频的解码过程中将所述模型的纹理与解码所得视频数据相结合实现视频渲染。
10.一些实施例中,所述浏览器内核加载播控页面时解析预置于所述播控页面内的js语句以获取待播视频的视频特征,包括步骤:
11.创建iptv播放器,并通过webidl将创建的所述iptv播放器与所述播控页面绑定;
12.向所述播控页面绑定的iptv播放器获取待播视频的url地址;
13.根据所述待播视频的url地址与所述全景视频特征解析服务器地址获取所述待播视频的视频特征。
14.一些实施例中,所述通过webidl将新建的iptv播放器与所述播控页面绑定,包括步骤:
15.将新建的iptv播放器保存到与调用js语句的页面对应的结构体frame中,以使当所述播控页面调用js语句时浏览器内核通过与iptv播放器绑定的结构体frame确定所述播
控页面。
16.一些实施例中,所述浏览器内核根据所述视频特征调用opengl建立与所述待播视频匹配的模型,包括步骤:
17.创建iptv_vr全景视频播放器,并通过webidl将创建的所述iptv_vr全景视频播放器与所述播控页面绑定;
18.将所述待播视频的url地址传给所述iptv_vr全景视频播放器;
19.解析所述视频特征获取待播放视频的模型类型和模型特征,并将所述待播放视频的模型类型和模型特征发送至与所述iptv_vr全景视频播放器;
20.所述iptv_vr全景视频播放器根据所述待播放视频的模型类型和模型特征调用iptv_vr全景视频播放器模型创建函数创建与所述待播视频匹配的模型。
21.一些实施例中,在所述待播视频的解码过程中将所述模型的纹理与解码所得视频数据相结合实现视频渲染,包括步骤:
22.所述iptv_vr全景视频播放器获取待播视频数据,并通过glsurfaceview将所述待播视频数据传递至所述模型去渲染。
23.一些实施例中,获取待播视频的视频特征后还包括步骤:
24.浏览器内核根据所述视频特征判断待播视频是否为全景视频,若不是全景视频则通过所述iptv播放器播放。
25.另一方面,提供一种全景视频播放装置,其特征在于,其包括:
26.视频特征获取模块,其用于:
27.获取全景视频特征解析服务器地址并存储在浏览器内核;
28.浏览器内核加载播控页面时解析预置于所述播控页面内的js语句以获取待播视频的视频特征;
29.建模与视频渲染模块,其用于:
30.在所述待播视频为全景视频时,根据所述视频特征调用opengl建立与所述待播视频匹配的模型;
31.在所述待播视频的解码过程中将所述模型的纹理与解码所得视频数据相结合实现视频渲染。
32.一些实施例中,所述视频特征获取模块,还用于:
33.创建iptv播放器,并通过webidl将创建的所述iptv播放器与所述播控页面绑定;
34.向所述播控页面绑定的iptv播放器获取待播视频的url地址;
35.根据所述待播视频的url地址与所述全景视频特征解析服务器地址获取所述待播视频的视频特征。
36.一些实施例中,所述建模与视频渲染模块还用于:
37.创建iptv_vr全景视频播放器,并通过webidl将创建的所述iptv_vr全景视频播放器与所述播控页面绑定;
38.将所述待播视频的url地址传给所述iptv_vr全景视频播放器;
39.解析所述视频特征获取待播放视频的模型类型和模型特征,并将所述待播放视频的模型类型和模型特征发送至与所述播控页面绑定的iptv_vr全景视频播放器;
40.所述iptv_vr全景视频播放器根据所述待播放视频的模型类型和模型特征调用
iptv_vr全景视频播放器模型创建函数创建与所述待播视频匹配的模型;
41.所述iptv_vr全景视频播放器获取待播视频数据,并通过glsurfaceview将所述待播视频数据传递至所述模型去渲染。
42.第三方面,还提供一种计算机存储介质,其特征在于,所述计算机存储介质上存储有计算机程序,其中所述计算机程序被处理器执行时,实现如权利要求1至6中任一项所述全景视频播放方法中的步骤。
43.本发明实施例的有益效果包括:
44.终端通过定制化浏览器获取全景视频特征后,将视频特征传递给播放器。播放器根据全景视频特征建立模型,将播放器解析出来的视频yuv数据输出渲染到模型上,实现全景播放。结合iptv平台和终端系统特征,保留现有iptv视频播放的特点,利用浏览器内核分析页面特征和执行js语句逻辑,提前获取建模需要的视频特征,最大程度保留了现有epg页面,不用为实现此功能而进行页面修改。同时,避免了在进行全景视频播放时需要预下载视频、抽帧、识别等步骤,进一步提高用户体验。
附图说明
45.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
46.图1为本发明实施例提供的一种全景视频播放方法的流程示意图;
47.图2为本发明实施例提供的一种全景视频播放方法的流程示意图;
48.图3为本发明实施例提供的一种全景视频播放装置的结构示意图。
具体实施方式
49.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
50.如图1所示,本发明实施例提供了一种全景视频播放方法,其包括步骤:
51.s100:获取全景视频特征解析服务器地址并存储在浏览器内核;
52.s200:浏览器内核加载播控页面时解析预置于所述播控页面内的js语句以获取待播视频的视频特征;
53.s300:所述待播视频为全景视频时,浏览器内核根据所述视频特征调用opengl建立与所述待播视频匹配的模型;
54.s400:在所述待播视频的解码过程中将所述模型的纹理与解码所得视频数据相结合实现视频渲染。
55.需要说明的是,全景视频特征解析服务器地址所对应的服务器用于对终端上传的视频url地址的视频进行全景视频特征解析以得到全景视频的相应视频特征。全景视频特征解析服务器地址可在终端启动iptv时从iptv epg平台获取。
56.可以理解的是,浏览器创建的播放器对象,此播放器对象含常规的获取视频、播放视频功能,以及s300和s400中提到的建立模型、视频渲染和模型操控功能。其中模型的建立是根据浏览器传入的模型类型和模型特征来创建。所有用户的按键操作,都交由浏览器来处理。当用户按键时,由浏览器与平台交互。因此可以获取平台端下发的操控页面,由操控页面的按键逻辑决策按键的功能。同时也可以触发浏览器调用播放器的相关控制接口,实现视角的切换、播放控制和界面提示。
57.本发明实施例提出的全景视频播放方法,终端通过定制化浏览器获取全景视频特征后,将视频特征传递给播放器。播放器根据全景视频特征建立模型,将播放器解析出来的视频yuv数据输出渲染到模型上,实现全景播放。结合iptv平台和终端系统特征,保留现有iptv视频播放的特点,利用浏览器内核分析页面特征和执行js语句逻辑,提前获取建模需要的视频特征,最大程度保留了现有epg页面,不用为实现此功能而进行页面修改。同时,避免了在进行全景视频播放时需要预下载视频、抽帧、识别等步骤,进一步提高用户体验。
58.一些实施例中,s200包括步骤:
59.s210:创建iptv播放器,并通过webidl将创建的所述iptv播放器与所述播控页面绑定;
60.s220:向所述播控页面绑定的iptv播放器获取待播视频的url地址;
61.s230:根据所述待播视频的url地址与所述全景视频特征解析服务器地址获取所述待播视频的视频特征。
62.需要说明的是,所述的iptv播放器为一种常规的播放平面视频的播放器,不具备建模、渲染,显示全景视频的能力。
63.可以理解的是,当页面调用播放器创建逻辑,即js语句执行new mediaplayer时,创建mediaplayer1(常规iptv播放器)。当页面调用开始播放mediaplayer1.play时,不进行播放操作,而是通知浏览器内核访问全景视频特征解析服务器地址aspecturl。浏览器内核通过mediaplayer1对象获取待播视频的url地址,并向全景视频特征解析服务器aspecturl查询此url地址对应的视频特征。全景视频特征解析服务器根据url地址查询视频特征并将视频特征返回给浏览器内核。
64.本实施例考虑到在播放视频时会存在一个epg透明页面用来接收用户按键以及视频播放状态等。在此epg透明页面中预置用于获取当前视频(待播视频)特征的私有扩展js语句。当终端加载此epg透明页面时,则会执行私有扩展的js逻辑,浏览器解析到私有扩展的js语句逻辑向视频服务器获取到当前视频的视频特征。
65.一些实施例中,s210具体为:将新建的iptv播放器保存到与调用js语句的页面对应的结构体frame中,以使当所述播控页面调用js语句时浏览器内核通过与iptv播放器绑定的结构体frame确定所述播控页面。
66.由于html的写法存在多种框架页面,包括frameset,iframe等,而播控的处理逻辑或按键的处理逻辑通常存放在js文件,导致无法单纯的从web页面上判断哪个页面是播放页面之前的透明页面。本发明实施例结合浏览器内核和播放器来实现透明页面的判断。在页面调用js语句过程中,检测到创建播放器语句时,浏览器内核通过webidl的方法,将新建的iptv播放器保存到与调用js语句的页面对应的结构体frame中,以实现播放器跟页面的绑定关系;当页面通过调用js文件中的开始播放的语句时,浏览器内核可以通过该播放器
找到与之绑定的frame并以此确定当前的播控页面。
67.一些实施例中,s300包括步骤:
68.s310:创建iptv_vr全景视频播放器,并通过webidl将创建的所述iptv_vr全景视频播放器与所述播控页面绑定;
69.s320:将所述待播视频的url地址传给所述iptv_vr全景视频播放器;
70.s330:解析所述视频特征获取待播放视频的模型类型和模型特征,并将所述待播放视频的模型类型和模型特征发送至与所述播控页面绑定的iptv_vr全景视频播放器;
71.s340:所述iptv_vr全景视频播放器根据所述待播放视频的模型类型和模型特征调用iptv_vr全景视频播放器模型创建函数创建与所述待播视频匹配的模型。
72.需要说明的是,步骤s310中所创建的iptv_vr全景视频播放器具备建模、渲染,显示全景视频的能力。步骤s320中将所述待播视频的url地址传给所述iptv_vr全景视频播放器的同时,还将视频播放所需的相关数据(包括播放地址、播放时间(比如从头播放,还是从某一个时间开始播放)、用户操作指令(比如播放、暂停、快进或快退)等)一起传给iptv_vr全景视频播放器。
73.本实施例中,在iptv_vr全景视频播放器的基础上扩展建模功能。具体实现时,扩展iptv_vrmediaplayer对象(iptv_vr全景视频播放器),增加iptv_vrmediaplayer.creatmode(int mode,struct size)方法,传入模型类型及模型大小。如果int mode的模型为长方体,则struct size为长宽高,如果int mode的模型为球体,则struct size为环数段数。在iptv_vrmediaplayer.creatmode函数(iptv_vr全景视频播放器模型创建函数)中,并调用opengl来创建相关模型。
74.所述模型类型包括球形、立方体、环形体或三角体等任意用于表征该全景视频的立体模型类型,所述模型特征为该全景视频模型类型所对应的特征,若模型类型为球形则模型特征为球形的环数段数,若模型类型为立方体则模型特征为立方体的长宽高等。
75.本实施例中浏览器内核获取相关信息调用opengl方法建模。相比于传统全景视频需要通过抽帧计算识别全景视频后再建模渲染播放,可进行提前建模,且建模种类明确,通过直接建模渲染播放,避免预下载视频、抽帧、识别等过程。同时,通过webidl将定制化的全景播放器与页面绑定,可以将定制化的全景播放器能力包括建模、缩放、旋转等能力暴露给页面,以供页面调用。从而实现由页面定制者在定制页面时,可以对定制化的全景播放器进行操作。可实现统一的由页面定制的操作方法。避免了不同开发者按自己的喜好来定义播放器能力操作方法的问题。
76.一些实施例中,步骤s300在iptv_vr全景视频播放器的基础上扩展旋转功能。具体的实现方式为:
77.扩展iptv_vrmediaplayer对象(iptv_vr全景视频播放器),增加iptv_vrmediaplayer.changeview(int left,int right,int up,int down)方法,传入转动的方向对应的幅度。在iptv_vrmediaplayer.changeview函数(iptv_vr全景视频播放器视角变换函数)中,使模型发生旋转变换,实现用户视角变化。
78.一些实施例中,步骤s300在iptv_vr全景视频播放器的基础上扩展缩放功能。具体的实现方式为:
79.扩展iptv_vrmediaplayer对象iptv_vr全景视频播放器,增加iptv_
vrmediaplayer.zoom(int size)方法,传入缩放的倍数,使模型进行一定程度的缩放,从而实现视角前进或退后变化。
80.一些实施例中,s400具体为:所述iptv_vr全景视频播放器获取待播视频数据,并通过glsurfaceview将所述待播视频数据传递至所述模型去渲染。
81.可以理解的是,建立glsurfaceview后,通过iptv_vr全景视频播放器的setsurfaceview方法,将iptv_vr全景视频播放器输出的待播视频数据传递给这个glsurfaceview。将glsurfaceview与iptv_vr全景视频播放器模型创建函数(iptv_vrmediaplayer.creatmode函数)中的opengl模型绑定。
82.一些实施例中,获取待播视频的视频特征后浏览器内核根据所述视频特征判断待播视频是否为全景视频,若不是全景视频则通过常规播放器播放该视频特征对应的视频,常规播放器包括现有的iptv播放器,即满足iptv运营商视频服务器对接规范要求的功能,具备流媒体传输协议、视频解码、对视频流进行播放控制如暂停、快进、快退等功能,但不具备显示全景视频所需要的建模、渲染和对模型操控功能的播放器。
83.如图2所示,在一个具体的实施例中,通过下述的方法步骤实现全景视频播放:
84.s01终端启动iptv,从iptv epg平台获得全景视频特征解析服务器地址,赋值给aspecturl并存储在浏览器内核中。
85.s02浏览器内核加载播控页面,当页面调用播放器创建逻辑(js语句执行new mediaplayer)时,创建mediaplayer1(常规的iptv播放器)。当页面调用开始播放mediaplayer1.play时,不进行播放操作,而是通知浏览器内核访问全景视频特征解析服务器地址aspecturl。
86.s03浏览器内核通过mediaplayer1对象获取当前视频的url地址,通过全景视频特征解析服务器aspecturl查询此url的视频特征。
87.s04全景视频特征解析服务器根据url查询视频特征,并将视频特征(包括全景视频的模型类型以及模型特征)返回给浏览器内核。
88.s05浏览器内核根据视频特征判断当前视频是否为全景视频,若是则执行步骤s06,若否则执行步骤s07。
89.s06在浏览器内核中的播控页面结构体frame中,通过web idl将iptv_vrmediaplayer对象与播放页面进行绑定(使播控页面具备访问iptv_vrmediaplayer对象的能力),将mediaplayer1对象的数据(待播放视频的url地址及播放所需相关数据)传递给iptv_vrmediaplayer;浏览器内核解析视频特征中的模型类型和模型特征,进入步骤s08。
90.s07正常模式播放(采用mediaplayer1直接播放视频)。
91.s08浏览器内核通过与当前播控页面绑定的播放器对象iptv_vrmediaplayer,将模型类型和模型特征传给播放器对象iptv_vrmediaplayer。
92.s09 iptv_vrmediaplayer播放器对象根据模型类型和模型特征调用iptv_vrmediaplayer.creatmode函数来创建模型对象。
93.s10iptv_vrmediaplayer播放器对象建立连接获取视频数据,并将数据通过glsurfaceview传递给iptv_vrmediaplayer.creatmode函数中opengl创建的模型去渲染、播放。
94.s11当用户操作按键或要实现变化视角、缩放等功能时,浏览器接收按键后将播控
类型的操作(如快进、快退、定位跳转等)通过event事件上报iptv epg平台,iptv epg平台调用iptv_vrmediaplayer播放器中的changeview、zoom等函数实现视角变化、缩放等功能,并且显示相应的界面提示。可以实现统一的操控命令,也可以通过下载平台端的操控页面来实现统一ui提示。
95.如图3所示,本发明实施例提供一种全景视频播放装置,其包括:
96.视频特征获取模块,其用于:
97.获取全景视频特征解析服务器地址并存储在浏览器内核;
98.浏览器内核加载播控页面时解析预置于所述播控页面内的js语句以获取待播视频的视频特征;
99.建模与视频渲染模块,其用于:
100.在所述待播视频为全景视频时,根据所述视频特征调用opengl建立与所述待播视频匹配的模型;
101.在所述待播视频的解码过程中将所述模型的纹理与解码所得视频数据相结合实现视频渲染。
102.一些实施例中,所述视频特征获取模块,还用于:
103.创建iptv播放器,并通过webidl将创建建的所述iptv播放器与所述播控页面绑定;
104.向所述播控页面绑定的iptv播放器获取待播视频的url地址;
105.根据所述待播视频的url地址与所述全景视频特征解析服务器地址获取所述待播视频的视频特征。
106.一些实施例中,所述视频特征获取模块,还用于将新建的iptv播放器保存到与调用js语句的页面对应的结构体frame中,以使当所述播控页面调用js语句时浏览器内核通过与iptv播放器绑定的结构体frame确定所述播控页面。
107.一些实施例中,所述建模与视频渲染模块还用于:
108.创建iptv_vr全景视频播放器,并通过webidl将创建的所述iptv_vr全景视频播放器与所述播控页面绑定;
109.将所述待播视频的url地址传给所述iptv_vr全景视频播放器;
110.解析所述视频特征获取待播放视频的模型类型和模型特征,并将所述待播放视频的模型类型和模型特征发送至与所述播控页面绑定的iptv_vr全景视频播放器;
111.所述iptv_vr全景视频播放器根据所述待播放视频的模型类型和模型特征调用iptv_vr全景视频播放器模型创建函数创建与所述待播视频匹配的模型。
112.一些实施例中,所述建模与视频渲染模块还用于通过所述iptv_vr全景视频播放器获取待播视频数据,并通过glsurfaceview将所述待播视频数据传递至所述模型去渲染。
113.基于与前述方法实施例中相同的原理,在装置的对应实施例中也具备相同的技术效果。
114.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物
理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读存储介质上,计算机可读存储介质可以包括计算机可读存储介质(或非暂时性介质)和通信介质(或暂时性介质)。
115.本发明实施例还提供一种计算机存储介质,其特征在于,所述计算机存储介质上存储有计算机程序,其中所述计算机程序被处理器执行时,可实现前述基全景视频播放方法实施例中的步骤。
116.如本领域普通技术人员公知的,术语计算机存储介质(计算机可读存储介质)包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机可读存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。
117.示例性的,计算机存储介质可以是前述实施例的装置或系统的内部存储单元,例如电子设备的硬盘或内存。计算机存储介质也可以是电子设备的外部存储设备,例如电子设备上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。
118.以上仅为本发明实施例的具体实施方式,但本发明实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明实施例的保护范围之内。因此,本发明实施例的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1