一种视频播放方法及设备与流程

文档序号:29257094发布日期:2022-03-16 11:22阅读:69来源:国知局
一种视频播放方法及设备与流程

1.本技术涉及云视频技术领域,尤其涉及一种视频播放方法及设备。


背景技术:

2.随着直播技术的广泛应用,观众对内容的要求越来越高,已经不仅仅满足于“被动”的观看导播给予的单一视角。在这个背景下,业界开始出现了多视角直播,可供用户自主选择一场表演/比赛/综艺等直播内容的多个摄像机画面,来适应用户不同的主观观影需求。
3.目前,典型的解决方案是:把多个视角的视频流同时推送到客户设备上,从而可以在客户设备上提供所有视角的实时预览及切换。但是,这种方案下,客户设备需要持续下载并解码多个视频流,网络带宽负担变重、计算资源消耗过大,容易出现卡顿,影响用户的直播观看体验。


技术实现要素:

4.本技术的多个方面提供一种视频播放方法及设备,用以改善多视角视频播放的卡顿问题。
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.利用所述通信组件,通过与边缘计算设备之间的播控链路接收目标直播节目在当前观影视角形态下对应的第一播放流;
31.响应于所述多视角播放界面中发生的目标观影视角形态的触发操作,向所述边缘计算设备发送视角切换指令,以触发所述边缘计算设备获取所述目标观影视角形态对应的第二播放流;
32.利用所述通信组件,通过所述播控链路接收所述第二播放流;
33.按照所述目标观影视角形态,在所述多视角播放界面中展示所述第二播放流;
34.其中,播放流是将与相应观影视角形态关联的至少一个视角的视频流进行合流而产生的。
35.本技术实施例还提供一种存储计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行前述的视频播放方法。
36.在本技术实施例中,采用边缘计算的方式,部署边缘计算设备来与客户端联动,在直播节目的播放期间,边缘计算设备和客户端之间的播控链路保持不变,用户可在客户端上对直播节目进行个性化导播,而边缘计算设备可按需切换客户端指定的观影视角形态对应的播放流,并基于不变的直播地址实时地提供给客户端,其中,播放流是将与相应观影视角形态关联的至少一个视角的视频流进行合流而产生的。这样,在客户端中发生观影视角形态切换事件的情况下,无需更换直播地址,而是保持播控链路不变,在边缘计算设备侧切换向播控链路所传递的播放流即可,因此,可免去直播地址更换而导致的加载时间,改善多视角视频播放过程中的卡顿问题。
附图说明
37.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
38.图1为本技术一示例性实施例提供的视频播放系统的结构示意图;
39.图2为本技术一示例性实施例提供的一种观影视角形态的效果示意图;
40.图3为本技术一示例性实施例提供的一种无缝切换方案的逻辑示意图;
41.图4为本技术另一示例性实施例提供的一种视频播放方法的流程示意图;
42.图5为本技术另一示例性实施例提供的另一种视频播放方法的流程示意图;
43.图6为本技术又一示例性实施例提供的一种边缘计算设备的结构示意图;
44.图7为本技术又一示例性实施例提供的一种边客户端的结构示意图。
具体实施方式
45.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
46.目前,多视角视频播放过程中,容易出现卡顿,影响用户的直播观看体验。为此,本技术的一些实施例中:采用边缘计算的方式,部署边缘计算设备来与客户端联动,在直播节目的播放期间,边缘计算设备和客户端之间的播控链路保持不变,用户可在客户端上对直播节目进行个性化导播,而边缘计算设备可按需切换客户端指定的观影视角形态对应的播放流,并基于不变的直播地址实时地提供给客户端,其中,播放流是将与相应观影视角形态关联的至少一个视角的视频流进行合流而产生的。这样,在客户端中发生观影视角形态切换事件的情况下,无需更换直播地址,而是保持播控链路不变,在边缘计算设备侧切换向播控链路所传递的播放流即可,因此,可免去直播地址更换而导致的加载时间,改善多视角视频播放过程中的卡顿问题。
47.以下结合附图,详细说明本技术各实施例提供的技术方案。
48.图1为本技术一示例性实施例提供的视频播放系统的结构示意图。如图1所示,该系统包括:客户端10和边缘计算设备20。
49.在物理实现上,客户端10可以是个人电脑、智能手机、平板电脑等终端设备,边缘计算设备20可以是靠近用户侧,采用网络、计算、存储或应用核心能力为一体的开放平台,可用于就近为客户端10提供计算服务。例如,边缘计算设备20可采用cdn网络中的边缘节点,但应当理解的是,本实施例中的边缘计算设备20区别与传统cdn中仅简单提供存储和交互服务的边缘节点,而是可理解为在传统cdn的边缘节点之后增加的一层计算节点,该计算节点具有边缘节点的靠近用户侧等属性,还可与传统cdn中的边缘节点进行通信,例如,从这些传统的边缘节点中获取数据,利用这些传统的边缘节点进行数据回源等。这也示例性呈现了本实施例提供的视频播放系统在cdn架构上的部署方案,但是应当理解的是,本实施例提供的视频播放系统并不限于部署与cdn架构上,还可部署于其它云网络或者局域网络中,本实施例对此不做限定。在本实施例提供的视频播放系统部署在云网络中的情况下,本实施例可提供播放视角的云渲染效果,也即使在云中完成用户个性化导播的播放流渲染,
而客户端10只需进行简单解码即可。
50.本实施例提供的多视角的视频播放方案,可应用与各种可允许用户个性化导播的场景中,例如,综艺节目直播、体育比赛直播等,本实施例对应用场景不做限定。
51.图2为本技术一示例性实施例提供的一种观影视角形态的效果示意图。本实施例中,可提供多种观影视角形态供用户选择。其中,观影视角形态用于指定所需的至少一个视角以及为视角分配视角区域。另外,通过在客户端10中按照观影视角形态进行视频播放,可为用户提供视角切换的入口,例如,用户可通过点击当前观影视角形态中的某一个视角区域,来切换至新的观影视角形态,而新的观影视角形态中可以用户刚点击过的视角区域对应的视角作为主视角。当然,本实施例中的视角切换的入口并不限于,还可在观影视角形态中部署专门的控件或按钮等方式来提供视角切换的入口,本实施例对此不做限定,可使用目前或将来可能出现的各种入口方式。举例来说,本实施例中的观影视角形态可包括但不限于主视角和次视角之间的平铺布局形态、主视角和次视角之间的画中画布局形态、单个视角的全屏形态等,这些形态,均可通过ui设计来实现,在此不再详述设计方案。参考图2,即是采用了1个主视角和3个次视角平铺布局形态,且用户可通过点击视角区域b(提供视角切换的入口)而切换至以视角b作为主视角的新的观影视角形态。
52.基于此,客户端10中可展示多视角播放界面,并在多视角播放界面中按照当前观影视角形态来播放目标直播节目,在不同的应用场景中,目标直播节目可以是多种多样的,例如,目标直播节目可以是一台综艺晚会、一场舞蹈比赛、比赛场馆在一天内的体育比赛等。
53.参考图1,n个摄像机可在目标直播节目的现场从不同视角采集视频流,以获得目标直播节目在至少一个视角的视频流,这些视频流可作为本实施例提供的多视角播放方案的源数据。例如,对于一个综艺节目来说,可分别从主舞台视角、不同的导师视角等采集视频流。这些视频流可被上传至网络中,例如,可将这些视频流上传到cdn中,这一步骤可采用普通直播的上传方案即可,在此不再详述。
54.参考图1,本实施例中,可提供合流服务,合流服务可将与观影视角形态关联的至少一个视角的视频流进行合流而产生的该观影视角形态对应的播放流。本实施例中,还可设计至少一个模板实例来适配不同的观影视角形态,模板实例可承载帧画面布局信息、编码制式信息、模板类型等,具有相同模板需求的合流任务可复用同一模板实例。值得说明的是,本实施例中,合流阶段的模板实例和面向用户的观影视角形态是两个不同的概念。模板实例中的帧画面布局与观影视角形态中的视角区域的布局也并无需完全一致。举例来说,图2中的观影视角形态指定了4个视角区域之间的相对位置,但是与该观影视角形态适配的模板实例中,帧画面布局实际并不限于图2这种布局状态,在该模板实例中帧画面布局可支持承载4个视角的帧画面,而这些帧画面之间排列布局可采用与图2相同或不同的布局均可。优选地,与观影视角形态适配的模板实例中的帧画面布局可将指定视角的帧画面的尺寸规格设计为与观影视角形态中对应的视角区域的尺寸规格一致,这样,可保证合流后产生的播放流中的帧画面与客户端10实际需要展示的帧画面的规格一致,因此,可播放流可采用固定的分辨率,不需要因实际展示要求而扩大视频分辨率进而导致码率的增加。
55.在此基础上,一种示例性的合流方案可以是:确定指定观影视角形态在目标直播节目中关联的至少一个目标视角;将至少一个目标视角各自对应的视频流进行时间对齐;
将至少一个目标视频流各自在同一时刻下的视频帧进行组合,以产生各个时刻下的合成帧;根据各个时刻下的合成帧,构建指定观影视角形态对应的播放流。其中,指定观影视角形态可以是预置的多个观影视角形态中的任意一种。
56.在该示例性的合流方案中,可针对不同的观影视角形态分别合流出播放流。以目标直播节目存在n个视角的视频流,而观影视角形态中的视角区域布局包括1个主视角和n个次视角之间的平铺布局形态和n个单视角的全屏形态这2种为例,可为目标直播节目构建2n个合流任务,当然,还可以构建更多合流任务,本实施例并不限于此。在每一个合流任务下,可确定出相关的至少一个目标视角,例如,在合流任务a中,确定出舞台视角为主视角、导师视角c和导师视角d分别作为次视角,则可将舞台视角、导师视角c和导师视角d各自对应的视频流进行时间对齐,并在同一时刻下,将这3条视频流中的相应视频帧进行组合,以产生各个时刻下的合成帧,这样,各个合成帧按照时间进行组合后即产生合流后的播放流。同样的方式,可为目标直播节目构建2n甚至更多的播放流,并可记录观影视角形态与播放流之间的对应关系,该对应关系可同步给客户端10和/或边缘计算设备20。
57.在该示例性的合流方案中,在同一时刻下的视频帧组合方式可以是:在至少一个模板实例中,确定与指定观影视角形态适配的目标模板实例;按照目标模板实例中指定的帧画面布局,将至少一个目标视频流各自在同一时刻下的视频帧进行画面拼接,以产生各个时刻下的合成帧。承接上例,可将舞台视角、导师视角c和导师视角d各自对应的视频流在时刻10:05的视频帧进行画面拼接,以产生该时刻下的合成帧,也即是,该时刻下的合成帧中同时包含舞台视角、导师视角c和导师视角d各自对应的视频流在时刻10:05的视频帧的帧画面,而这3个帧画面是按照目标模板实例中指定的画面布局进行拼接的。这样,可保证3条视频流完整地合流为1条播放流。
58.值得说明的是,本实施例中,可有边缘计算设备20来提供前述的合流服务,当然,也可有边缘计算设备20通过调用其它处理设备来实现合流服务,还可由其它处理设备独立完成合流服务而将观影视角形态与播放流之间的对应关系、播放流的存放地址、播放流的标识、模板实例等处理过程信息提供给边缘计算设备20和/或客户端10,本实施例对此不做限定。
59.合流后产生的播放流可存储至网络中。考虑到多视角直播场景下,播放流具有高码率、消费集中等特性,为了解决边缘计算会有拉流高带宽费用的问题,本实施例中,可选择通过缓存服务做一层回源代理,实现减低流量费用消耗、平稳输出、降低延迟等功能,缓存服务内部可通过不同模块实现rtmp、hls等协议的内容缓存。举例来说,可将目标直播节目下的多条播放流存储在cdn中,并在cdn中架设缓存服务将合流后产生的播放流存储到里边缘计算设备20较近的内网缓存中,且可以内网缓存作为回源代理。
60.应当理解的是,本实施例中,还可采用其它合流方式来实现按照所需的观影视角形态对目标直播节目下的至少一个视频流进行合流,本实施例并不限于此。
61.参考图1,本实施例中,客户端10可针对目标直播节目向边缘计算设备20发送播放请求。基于播放请求,客户端10和边缘计算设备20之间可建立并保持一条播控链路。该播控链路可用于传输播放流及交互指令等。而且,在目标直播节目的播放过程中,无论用户是否在客户端10中进行了个性化导播操作,该播控链路不会发生变化,也即是,基于客户端10和边缘计算设备20之间为目标直播节目而保持的播控链路,目标直播节目的直播地址始终保
持不变,也即是,边缘计算设备20在向客户端10传输目标直播节目下不同播放流的过程中,基于播控链路向客户端10提供相同的直播地址;客户端10在播放目标直播节目的过程中,使用相同的直播地址从边缘计算设备20接收不同观影视角形态各自对应的播放流。其中,客户端10和边缘计算设备20之间的播放链路可采用webrtc技术来构建。
62.为了保证客户端10侧尽量复用该播控链路,减少对播控链路的侵入,可在客户端10中安装多视角播放器,以提供多视角播放界面。多视角播放器可与其它播放器保持相同的调用接口,客户端10可根据实际需求确定启用多视角播放器的时机。实际应用中,可在客户端10中增加多视角插件,并保持原有播放能力及回调接口,这样,可通过扩展结构参数来予以区分原有播放器和多视角播放器,从而可方便地挂载和移除,进而方便地管控多视角播放器。
63.这样,对客户端10来说,可展示多视角播放界面,通过与边缘计算设备20之间的播控链路向边缘计算设备20请求目标直播节目在当前观影视角形态下对应的第一播放流。具体地,在初始加载目标直播节目时,客户端10可向边缘节点发送直播请求,直播请求中可指定当前观影视角形态,也可不指定而由边缘计算设备20将默认形态作为当前观影视角形态。对于边缘计算设备20来说,可从网络中获取当前观影视角形态对应的第一播放流并通过与客户端10之间的播控链路将第一播放流提供给客户端10,客户端10即可按照当前观影视角形态渲染播放第一播放流。而在目标直播节目播放过程中,客户端10还可感知多视角播放界面中发生的目标观影视角形态的触发操作,并响应于多视角播放界面中发生的目标观影视角形态的触发操作,向边缘计算设备20发送视角切换指令,并可在视角切换指令中指定目标观影视角形态;对于边缘计算设备20来说,则可按照视角切换指令,获取目标观影视角形态对应的第二播放流,并通过与客户端10之间的播控链路切换为将第二播放流提供给客户端10,客户端10即可从当前观影视角形态切换至目标观影视角形态并按照目标观影视角形态渲染播放第二播放流。
64.可知,整个过程中,虽然客户端10中播放的内容从第一播放流切换为第二播放流,但是客户端10中针对目标直播节目的直播地址并未发生变化,因此,不会因播放流的切换而导致loading问题,可有效改善视角切换导致的卡顿。
65.其中,客户端10和边缘计算设备20通过交互来查找目标观影视角形态对应的第二播放流的实现方案可以有多种。在一种示例性的实现方案中,正如前文提及的,客户端10和边缘计算设备20中可均记录有观影视角形态与播放流之间的对应关系,基于此,可由客户端10确定出与目标观影视角形态对应的播放流的标识,例如流id等,并将标识携带在视角切换指令中而发送给边缘计算设备20;边缘计算设备20可按照标识找到第二播放流。在另一种示例性的实现方案中,客户端10可将目标观影视角形态对应的形态标识携带在视角切换指令中而发送给边缘计算设备20;边缘计算设备20则可基于观影视角形态与播放流之间的对应关系,查找到与形态标识对应的第二播放流。
66.对客户端10来说,在接收到第二播放流后,可按照目标观影视角形态,在多视角播放界面中展示第二播放流。一种可选的展示方案可以是:从第二播放流包含的视频帧中,拆解出目标观影视角形态包含的至少一个视角区域各自对应的视角画面;在至少一个视角区域中,分别渲染相应的视角画面。正如前文提及的,客户端10中也可记录各种模板实例的定义,基于此,客户端10在接收到第二播放流后,可按照相应的模板定义,从第二播放流包含
的各个合成帧中按照既定的帧画面位置截取相关视角的帧画面,并加载在目标观影视角形态中的对应视角区域中,也即是,在客户端10中进行展示时需将拆解出的各个视角的帧画面按照目标观影视角形态中指定的视角布局来重新定位,从而在各个视角区域内渲染出相应视角的视频流。
67.在客户端10进行观影视角形态的切换期间,可能会出现观影视角形态之间的视觉残留,影响用户体验。为此,本实施例中,客户端10可在发生目标观影视角形态的触发操作后,设置丢帧窗口期;在丢帧窗口期的期间,在多视角播放界面中静态保持当前观影视角形态下的最后播放画面;在确定第二播放流接收成功时,结束丢帧窗口期并切换至目标观影视角形态。举例来说,用户在客户端10中发起目标观影视角形态的触发操作后,客户端10可向边缘计算设备20发出rtp视角切换指令,边缘计算设备20切换至传送第二播放流并向客户端10发送sei回传信息(用于表征第二播放流已正常传输),客户端10接收到sei信息后进行前述的合成帧拆解等操作,而由于观影视角形态的切换需要一定的时间,因此,会导致实际接收到了第二播放流后最开始的一帧或几帧采用的合成帧拆解方式依然是按照第一播放流对应的模板定义,这样拆解出的帧画面可能存在错误,导致用户会看到一瞬间的视觉残留。而通过本实施例中设置的丢帧窗口期,可在客户端10收到sei信息(表明第二播放流成功开始传输)之后,在启动合流帧拆解操作,以保证合流帧拆解方式是按照第二播放流对应的模板定义,而在丢帧窗口期的期间,不再渲染新的帧画面,而是保持上一观影视角形态的静态帧,这样可屏蔽导致视角区域中内容错乱的渲染数据,上层ui在此期间也看不到残留帧闪烁,用户基本可获得平滑切换的体验。
68.另外,本实施例中,客户端10还可采用动态缓存的机制对边缘计算设备20提供的播放流进行缓存。一种示例性的缓存机制可以是:在发生视角切换指令期间,采用低水位缓存方案,以提高切换效率和流畅度,而在未发生视角切换指令期间,则可采用高水位缓存,以充分对抗网络抖动。
69.据此,本实施例中,采用边缘计算的方式,部署边缘计算设备来与客户端联动,在直播节目的播放期间,边缘计算设备和客户端之间的播控链路保持不变,用户可在客户端上对直播节目进行个性化导播,而边缘计算设备可按需切换客户端指定的观影视角形态对应的播放流,并基于不变的直播地址实时地提供给客户端,其中,播放流是将与相应观影视角形态关联的至少一个视角的视频流进行合流而产生的。这样,在客户端中发生观影视角形态切换事件的情况下,无需更换直播地址,而是保持播控链路不变,在边缘计算设备侧切换向播控链路所传递的播放流即可,因此,可免去直播地址更换而导致的加载时间,改善多视角视频播放过程中的卡顿问题。
70.在上述或下述实施例中,可为目标直播节目提供实时的合流服务,并将合流后产生的播放流存放在网络中。其中,单条播放流涉及到的至少一条视频流之间时间对齐,这保证了播放流内部的时间流达到帧级对齐。但是,在实践中,我们发现播放流之间进行切换的过程中,仍存在无法帧级对齐的问题,导致无法无缝切换。
71.为此,本实施例中,对于边缘计算设备来说,可在需要传输第二播放流的情况下,确定视角切换指令示意的切换时刻;从切换时刻在第二播放流中指向的流位置开始,通过播控链路将第二播放流输出至客户端进行播放。这样,从客户端的角度来看,接收到的第一播放流和第二播放流在切换时刻无缝衔接,这可避免因为切换至第二播放流而发生时间错
位。
72.在一种可选的实现方案中,边缘计算设备可在第二播放流中确定切换时刻所处的目标画面组gop;若目标画面组gop的起始位置未与切换时刻对齐,则重构目标画面组gop,以使其起始位置与切换时刻对齐;将重构的目标画面组gop的起始位置作为切换时刻在第二播放流中指向的流位置。
73.图3为本技术一示例性实施例提供的一种无缝切换方案的逻辑示意图。参考图3,播放流a为当前观影视角形态对应的第一播放流,播放流b为目标观影视角形态对应的第二播放流,当需要从第一播放流切换至第二播放流时,边缘计算设备可在播放流b中确定切换时刻所处的目标画面组gop,如图3中的虚线框出的gop。
74.其中,gop意思是画面组,一个gop就是一组连续的画面,视频编码技术中将画面(即帧)分为i、p、b三种,i是内部编码帧,p是前向预测帧,b是双向内插帧。简单地讲,i帧是关键帧,可以理解为一个完整的画面,而p帧和b帧记录的是相对于i帧的变化,p帧表示跟前一帧的差别,b帧表示前后帧差别,没有i帧,p帧和b帧就无法解码。参考图3,第二播放流在切换时刻的目标gop的起始位置未与切换时刻对齐,而由于客户端解码则必须以gop为单位进行解码,如果直接切换则会导致第一播放流的停止传输时间和第二播放流的起始传输时间并不接续。继续参考图3,本实施例中,在这种情况下,可对第二播放流中的目标gop进行重构,以使第二播放流在切换时刻的目标gop的起始位置与切换时刻对齐,参考图3中用户观看到的内容,前面虚线部分为用户观看到的第一播放流,后面实线部分为用户观看到的第二播放流,其中虚线框出的是重构出的gop。
75.在该示例性的实现方案中,边缘计算设备可对第二播放流在切换时刻的目标画面组gop进行解码,以获得目标画面组gop对应的帧信息;根据获得的帧信息,以切换时刻作为起始位置,以目标画面组gop的原结束位置作为结束位置,构建新的画面组gop,以替换第二播放流中的目标画面组gop。在该示例性方案中,边缘计算设备对第二播放流先进行解码,之后又重新编码,以保证将旧的画面组中的i帧传承至新的画面组,从而支持客户端可从第二播放流中与切换时刻对应的位置开始进行解码,实现第一播放流和第二播放流在时间层面的无缝切换。例如,若第二播放流在切换时刻的目标gop的长度为2s,而切换时刻位于该gop的正中间(也即1s的位置),则在切换时刻重构一个新的gop,新的gop中沿袭了旧的gop中的i帧,而且,新的gop的长度为1s,刚好取代旧的gop原本位于切换时候之后的那部分。
76.优选地,本实施例中,边缘计算设备可在接收到客户端发送的视角切换指令的情况下,再触发上述的构建新的gop的操作,以节省解码和编码消耗,而且保证对第二播放流的修改效率,避免影响第二播放流的传输实时性。
77.据此,本实施例中,边缘计算设备可在客户端发生视角切换指令的情况下,实时地对切换后的播放流进行帧级别的调整,以实现播放流之间进行切换时达到帧级别对齐,从而使用户获得无缝切换的体验。
78.图4为本技术另一示例性实施例提供的一种视频播放方法的流程示意图,该方法可由边缘计算设备执行。参考图4,该方法包括:
79.步骤400、基于客户端针对目标直播节目的播放请求,保持与客户端之间的播控链路;
80.步骤401、在目标直播节目的播放过程中,通过播控链路向客户端传输当前观影视
角形态对应的第一播放流;
81.步骤402、若接收客户端发送的视角切换指令,获取视角切换指令所指定的目标观影视角形态对应的第二播放流;
82.步骤403、将第二播放流通过播控链路输出至客户端进行播放;
83.其中,播放流是将与相应观影视角形态关联的至少一个视角的视频流进行合流而产生的。
84.在一可选实施例中,步骤获取视角切换指令所指定的目标观影视角形态对应的第二播放流,包括:
85.从目标直播节目下的多条播放流中,选择与目标观影视角形态对应的第二播放流;其中,不同播放流对应的观影视角形态不同;在向所述客户端传输所述目标直播节目下不同播放流的过程中,基于所述播控链路向所述客户端提供相同的直播地址。
86.在一可选实施例中,合成播放流的过程,包括:
87.确定指定观影视角形态在目标直播节目中关联的至少一个目标视角;
88.将至少一个目标视角各自对应的视频流进行时间对齐;
89.将至少一个目标视频流各自在同一时刻下的视频帧进行组合,以产生各个时刻下的合成帧;
90.根据各个时刻下的合成帧,构建指定观影视角形态对应的播放流。
91.在一可选实施例中,步骤将至少一个目标视频流各自在同一时刻下的视频帧进行组合,以产生各个时刻下的合成帧,包括:
92.在至少一个模板实例中,确定与指定观影视角形态适配的目标模板实例;
93.按照目标模板实例中指定的帧画面布局,将至少一个目标视频流各自在同一时刻下的视频帧进行画面拼接,以产生各个时刻下的合成帧。
94.在一可选实施例中,步骤通过播控链路切换为将第二播放流输出至客户端进行播放,包括:
95.确定视角切换指令示意的切换时刻;
96.从切换时刻在第二播放流中指向的流位置开始,通过播控链路将第二播放流输出至客户端进行播放。
97.在一可选实施例中,在输出所述第二播放流之前,该方法还包括:
98.在第二播放流中确定切换时刻所处的目标画面组gop;
99.若目标画面组gop的起始位置未与切换时刻对齐,则重构目标画面组gop,以使其起始位置与切换时刻对齐;
100.将重构的目标画面组gop的起始位置作为切换时刻在第二播放流中指向的流位置。
101.在一可选实施例中,步骤重构目标画面组gop,以使其起始位置与切换时刻对齐,包括:
102.对目标画面组gop进行解码,以获得目标画面组gop对应的帧信息;
103.根据获得的帧信息,以切换时刻作为起始位置,以目标画面组gop的原结束位置作为结束位置,构建新的画面组gop,以替换第二播放流中的目标画面组gop。
104.在一可选实施例中,目标直播节目下的多条播放流存储在cdn中,且以内网缓存作
为回源代理。
105.值得说明的是,上述关于视频播放方法各实施例中的技术细节,可参考前述的系统实施例中关于边缘计算设备的相关描述,为节省篇幅,在此不再赘述,但这不应造成本技术保护范围的损失。
106.图5为本技术另一示例性实施例提供的另一种视频播放方法的流程示意图。该方法可由客户端执行,参考图5,该方法可包括:
107.步骤500、展示多视角播放界面;
108.步骤501、通过与边缘计算设备之间的播控链路接收目标直播节目在当前观影视角形态下对应的第一播放流;
109.步骤502、响应于多视角播放界面中发生的目标观影视角形态的触发操作,向边缘计算设备发送视角切换指令,以触发边缘计算设备获取目标观影视角形态对应的第二播放流;
110.步骤503、通过播控链路接收第二播放流;
111.步骤504、按照目标观影视角形态,在多视角播放界面中展示第二播放流;
112.其中,播放流是将与相应观影视角形态关联的至少一个视角的视频流进行合流而产生的。
113.在一可选实施例中,基于播控链路,使用相同的直播地址从所述边缘计算设备接收不同观影视角形态各自对应的播放流。
114.在一可选实施例中,步骤向边缘计算设备发送视角切换指令,包括:
115.基于观影视角形态与播放流之间的对应关系,确定目标观影视角形态对应的播放流的标识;将标识携带在视角切换指令中,以供边缘计算设备按照标识获取到第二播放流;或者;
116.将目标观影视角形态对应的形态标识携带在视角切换指令中,以供边缘计算设备基于观影视角形态与播放流之间的对应关系,获取到与形态标识对应的第二播放流。
117.在一可选实施例中,步骤按照目标观影视角形态,在多视角播放界面中展示第二播放流,包括:
118.从第二播放流包含的视频帧中,拆解出目标观影视角形态包含的至少一个视角区域各自对应的视角画面;
119.在至少一个视角区域中,分别渲染相应的视角画面。
120.在一可选实施例中,步骤按照目标观影视角形态,在多视角播放界面中展示第二播放流,包括:
121.在发生目标观影视角形态的触发操作后,设置丢帧窗口期;
122.在丢帧窗口期的期间,在多视角播放界面中静态保持当前观影视角形态下的最后播放画面;
123.在确定第二播放流接收成功时,结束丢帧窗口期并切换至目标观影视角形态。
124.值得说明的是,上述关于视频播放方法各实施例中的技术细节,可参考前述的系统实施例中关于客户端的相关描述,为节省篇幅,在此不再赘述,但这不应造成本技术保护范围的损失。
125.需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,
或者,该方法也由不同设备作为执行主体。比如,步骤401至步骤403的执行主体可以为设备a;又比如,步骤401和402的执行主体可以为设备a,步骤403的执行主体可以为设备b;等等。
126.另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如401、402等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的播放流等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
127.图6为本技术又一示例性实施例提供的一种边缘计算设备的结构示意图。如图6所示,该计算设备包括:存储器60、处理器61以及通信组件62。
128.处理器61,与存储器60耦合,用于执行存储器60中的计算机程序,以用于:
129.基于客户端针对目标直播节目的播放请求,利用通信组件62保持与客户端之间的播控链路;
130.在目标直播节目的播放过程中,通过播控链路向客户端传输当前观影视角形态对应的第一播放流;
131.若接收客户端发送的视角切换指令,获取视角切换指令所指定的目标观影视角形态对应的第二播放流;
132.将第二播放流通过播控链路输出至客户端进行播放;
133.其中,播放流是将与相应观影视角形态关联的至少一个视角的视频流进行合流而产生的。
134.在一可选实施例中,处理器61在获取视角切换指令所指定的目标观影视角形态对应的第二播放流时,用于:
135.从目标直播节目下的多条播放流中,选择与目标观影视角形态对应的第二播放流;其中,不同播放流对应的观影视角形态不同;在向所述客户端传输所述目标直播节目下不同播放流的过程中,基于所述播控链路向所述客户端提供相同的直播地址。
136.在一可选实施例中,处理器61在合成播放流的过程中,用于:
137.确定指定观影视角形态在目标直播节目中关联的至少一个目标视角;
138.将至少一个目标视角各自对应的视频流进行时间对齐;
139.将至少一个目标视频流各自在同一时刻下的视频帧进行组合,以产生各个时刻下的合成帧;
140.根据各个时刻下的合成帧,构建指定观影视角形态对应的播放流。
141.在一可选实施例中,处理器61在将至少一个目标视频流各自在同一时刻下的视频帧进行组合,以产生各个时刻下的合成帧时,用于:
142.在至少一个模板实例中,确定与指定观影视角形态适配的目标模板实例;
143.按照目标模板实例中指定的帧画面布局,将至少一个目标视频流各自在同一时刻下的视频帧进行画面拼接,以产生各个时刻下的合成帧。
144.在一可选实施例中,处理器61在通过播控链路切换为将第二播放流输出至客户端进行播放时,用于:
145.确定视角切换指令示意的切换时刻;
146.从切换时刻在第二播放流中指向的流位置开始,通过播控链路将第二播放流输出至客户端进行播放。
147.在一可选实施例中,在输出所述第二播放流之前,处理器61还用于:
148.在第二播放流中确定切换时刻所处的目标画面组gop;
149.若目标画面组gop的起始位置未与切换时刻对齐,则重构目标画面组gop,以使其起始位置与切换时刻对齐;
150.将重构的目标画面组gop的起始位置作为切换时刻在第二播放流中指向的流位置。
151.在一可选实施例中,处理器61在重构目标画面组gop,以使其起始位置与切换时刻对齐时,用于:
152.对目标画面组gop进行解码,以获得目标画面组gop对应的帧信息;
153.根据获得的帧信息,以切换时刻作为起始位置,以目标画面组gop的原结束位置作为结束位置,构建新的画面组gop,以替换第二播放流中的目标画面组gop。
154.在一可选实施例中,目标直播节目下的多条播放流存储在cdn中,且以内网缓存作为回源代理。
155.进一步,如图6所示,该边缘计算设备还包括:电源组件63等其它组件。图6中仅示意性给出部分组件,并不意味着边缘计算设备只包括图6所示组件。
156.值得说明的是,上述关于边缘计算设备各实施例中的技术细节,可参考前述的系统实施例中关于边缘计算设备的相关描述,为节省篇幅,在此不再赘述,但这不应造成本技术保护范围的损失。
157.图7为本技术又一示例性实施例提供的一种客户端备的结构示意图。如图7所示,该客户端包括:存储器70、处理器71以及通信组件72。
158.处理器71,与存储器70耦合,用于执行存储器70中的计算机程序,以用于:
159.展示多视角播放界面;
160.利用通信组件72,通过与边缘计算节点之间的播控链路接收目标直播节目在当前观影视角形态下对应的第一播放流;
161.响应于多视角播放界面中发生的目标观影视角形态的触发操作,向边缘计算节点发送视角切换指令,以触发边缘计算节点获取目标观影视角形态对应的第二播放流;
162.利用通信组件72,通过播控链路接收第二播放流;
163.按照目标观影视角形态,在多视角播放界面中展示第二播放流;
164.其中,播放流是将与相应观影视角形态关联的至少一个视角的视频流进行合流而产生的。
165.在一可选实施例中,基于播控链路,使用相同的直播地址从所述边缘计算设备接收不同观影视角形态各自对应的播放流。
166.在一可选实施例中,处理器71在向边缘计算设备发送视角切换指令时,用于:
167.基于观影视角形态与播放流之间的对应关系,确定目标观影视角形态对应的播放流的标识;将标识携带在视角切换指令中,以供边缘计算设备按照标识获取到第二播放流;或者;
168.将目标观影视角形态对应的形态标识携带在视角切换指令中,以供边缘计算设备
基于观影视角形态与播放流之间的对应关系,获取到与形态标识对应的第二播放流。
169.在一可选实施例中,处理器71在按照目标观影视角形态,在多视角播放界面中展示第二播放流时,用于:
170.从第二播放流包含的视频帧中,拆解出目标观影视角形态包含的至少一个视角区域各自对应的视角画面;
171.在至少一个视角区域中,分别渲染相应的视角画面。
172.在一可选实施例中,处理器71在按照目标观影视角形态,在多视角播放界面中展示第二播放流时,用于:
173.在发生目标观影视角形态的触发操作后,设置丢帧窗口期;
174.在丢帧窗口期的期间,在多视角播放界面中静态保持当前观影视角形态下的最后播放画面;
175.在确定第二播放流接收成功时,结束丢帧窗口期并切换至目标观影视角形态。
176.进一步,如图7所示,该客户端还包括:显示器73、电源组件74、音频组件75等其它组件。图7中仅示意性给出部分组件,并不意味着客户端只包括图7所示组件。
177.值得说明的是,上述关于客户端各实施例中的技术细节,可参考前述的系统实施例中关于客户端的相关描述,为节省篇幅,在此不再赘述,但这不应造成本技术保护范围的损失。
178.相应地,本技术实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由边缘计算设备或客户端执行的各步骤。
179.上述图6和7中的存储器,用于存储计算机程序,并可被配置为存储其它各种数据以支持在计算平台上的操作。这些数据的示例包括用于在计算平台上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
180.上述图6和7中的通信组件,被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如wifi,2g、3g、4g/lte、5g等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
181.上述图7中的显示器,包括屏幕,其屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
182.上述图6和7中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配
电力相关联的组件。
183.上述图7中的音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(mic),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
184.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
185.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
186.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
187.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
188.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
189.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
190.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
191.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的
包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
192.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1