基于HLS的点播流量控制方法、装置、设备及存储介质与流程

文档序号:28325190发布日期:2022-01-05 00:34阅读:149来源:国知局
基于HLS的点播流量控制方法、装置、设备及存储介质与流程
基于hls的点播流量控制方法、装置、设备及存储介质
技术领域
1.本技术涉及通信计算机技术领域,尤其涉及一种基于hls的点播流量控制方法、装置、设备及存储介质。


背景技术:

2.目前,视频点播(vod)技术广泛应用于视频监控、长/短视频博客、iptv、网络直播、在线教育、网络影音等网络影音娱乐中,是网络影音娱乐的核心技术之一,如何对视频点播过程中的输出流量进行控制,是视频点播技术的核心问题。
3.现有视频点播过程中对输出流量进行控制的方式一般是:基于tcp进行顺序流式的传输控制,具体地,即先将完整的影音文件分割为多个视频切片,并将这些切片信息存储到一份m3u8索引文件中,当客户端发起点播请求时,将该m3u8索引文件传送给播放器,播放器根据m3u8中的信息,顺序下载各个切片文件并同步进行播放,也即,现有视频点播过程中,是完全依赖客户端进行流量控制,然而,由于不同客户端播放器的缓冲控制策略完全不同,完全依靠客户端进行流量控制导致视频点播过程中的流量控制差。


技术实现要素:

4.本技术的主要目的在于提供一种基于hls的点播流量控制方法、装置、设备及存储介质,旨在解决现有视频点播过程中,流量控制差的技术问题。
5.为实现上述目的,本技术提供一种基于hls的点播流量控制方法,所述基于hls的点播流量控制方法包括步骤:
6.一种基于hls的点播流量控制方法,其特征在于,所述基于hls的点播流量控制方法包括:
7.在检测到客户端的点播请求时,返回点播请求对应索引列表和所述索引列表中切片对应初始地址给所述客户端;
8.接收所述客户端基于所述索引列表反馈的切片下载请求,基于预设流控机制确定切片文件下载地址的返回时延;
9.根据所述返回时延,通过预设重定向方式确定所述初始地址对应实际cdn下载地址,将所述实际cdn下载地址设置为目标cdn下载地址;
10.根据所述目标cdn下载地址,返回目标切片数据给所述客户端,以供所述客户端播放所述目标切片数据。
11.可选地,所述基于预设流控机制确定切片文件下载地址的返回时延的步骤,还包括:
12.提取所述切片下载请求中的切片参数;
13.根据所述切片参数确定预设流控流程,基于所述预设流控流程,确定切片文件下载地址的返回时延。
14.可选地,所述根据所述切片参数确定预设流控流程,基于所述预设流控流程,确定
切片文件下载地址的返回时延的步骤,包括:
15.提取切片序号参数,根据所述切片序号参数确定播放类型;
16.若播放类型为顺序播放时,确定可用播放时长和当前切片播放时长之间的大小关系;
17.根据所述大小关系,确定切片文件下载地址的返回时机;
18.根据所述返回时机,确定返回时延。
19.可选地,所述提取切片序号参数,根据所述切片序号参数确定播放类型的步骤之后,所述方法包括:
20.若播放类型为非顺序播放时,获取预设流控参数:
21.基于所述预设流控参数以及所述预设流控流程中的复位流程,确定切片文件下载地址的返回时延。
22.可选地,在检测到客户端的点播请求时,返回点播请求对应索引列表和所述索引列表中切片对应初始地址给所述客户端的步骤之前,所述方法还包括:
23.接收原始媒体资料,提取所述原始媒体资料的原始属性信息,并将所述原始媒体资料的状态设置为处理中的第一状态;
24.对所述原始素材进行切片处理,得到切片文件属性信息和切片文件;
25.将所述原始属性信息和所述切片文件属性信息录入至预设数据库中,并将所述切片文件存储到预设对象云存储中;
26.确定所述原始媒体资料对应的点播文件,将所述点播文件的状态设置为可供点播的第二状态。
27.可选地,所述在检测到客户端的点播请求时,返回点播请求对应索引列表和所述索引列表中切片对应初始地址给所述客户端的步骤,包括:
28.在检测到客户端的点播请求时,返回点播请求对应索引列表的索引地址;
29.接收客户端基于所述索引地址发送的索引列表请求,并返回所述索引列表请求对应的索引列表和所述索引列表中切片对应初始地址给所述客户端
30.此外,为实现上述目的,本技术还提供一种基于hls的点播流量控制装置,所述基于hls的点播流量控制装置包括:
31.检测模块,用于在检测到客户端的点播请求时,返回点播请求对应索引列表和所述索引列表中切片对应初始地址给所述客户端;
32.第一确定模块,用于基于预设流控机制确定切片文件下载地址的返回时延;
33.重定向模块,用于根据所述返回时延,通过预设重定向方式确定所述初始地址对应实际cdn下载地址,将所述实际cdn下载地址设置为目标cdn下载地址;
34.返回模块,用于根据所述目标cdn下载地址,返回目标切片数据给所述客户端,以供所述客户端播放所述目标切片数据。
35.可选地,所述第一确定模块包括:
36.提取单元,提取所述切片下载请求中的切片参数;
37.确定单元,用于根据所述切片参数确定预设流控流程,基于所述预设流控流程,确定切片文件下载地址的返回时延。
38.可选地,所述确定单元包括:
39.第一确定子单元,用于提取切片序号参数,根据所述切片序号参数确定播放类型;
40.第二确定子单元,用于若播放类型为顺序播放时,确定可用播放时长和当前切片播放时长之间的大小关系;
41.第三确定子单元,用于根据所述大小关系,确定切片文件下载地址的返回时机;
42.第四确定子单元,用于根据所述返回时机,确定返回时延。
43.可选地,所述确定单元还包括:
44.获取子单元,用于若播放类型为非顺序播放时,获取预设流控参数:
45.第五确定子单元,用于基于所述预设流控参数以及所述预设流控流程中的复位流程,确定切片文件下载地址的返回时延。
46.可选地,所述基于hls的点播流量控制装置还包括:
47.提取模块,用于接收原始媒体资料,提取所述原始媒体资料的原始属性信息,并将所述原始媒体资料的状态设置为处理中的第一状态;
48.切片处理模块,用于对所述原始素材进行切片处理,得到切片文件属性信息和切片文件;
49.录入模块,用于将所述原始属性信息和所述切片文件属性信息录入至预设数据库中,并将所述切片文件存储到预设对象云存储中;
50.第二确定模块,用于确定所述原始媒体资料对应的点播文件,将所述点播文件的状态设置为可供点播的第二状态。
51.可选地,所述检测模块包括:
52.检测单元,用于在检测到客户端的点播请求时,返回点播请求对应索引列表的索引地址;
53.接收单元,用于接收客户端基于所述索引地址发送的索引列表请求,并返回所述索引列表请求对应的索引列表和所述索引列表中切片对应初始地址给所述客户端
54.此外,为实现上述目的,本技术还提供一种基于hls的点播流量控制设备,所述基于hls的点播流量控制设备包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的基于hls的点播流量控制程序,所述基于hls的点播流量控制程序被所述处理器执行时实现如上所述的基于hls的点播流量控制方法的步骤。
55.此外,为实现上述目的,本技术还提供一种存储介质,所述存储介质上存储有基于hls的点播流量控制程序,所述基于hls的点播流量控制程序被处理器执行时实现如上所述的基于hls的点播流量控制方法的步骤。
56.本技术通过在检测到客户端的点播请求时,返回点播请求对应索引列表和所述索引列表中切片对应初始地址给所述客户端;基于预设流控机制确定切片文件下载地址的返回时延;根据所述返回时延,通过预设重定向方式确定所述初始地址对应实际cdn下载地址,将所述实际cdn下载地址设置为目标cdn下载地址;根据所述目标cdn下载地址,返回目标切片数据给所述客户端,以供所述客户端播放所述目标切片数据。在本技术中,在服务器端反馈给客户端点播请求对应的索引列表和索引列表中切片的初始地址后,若接收所述客户端基于所述索引列表反馈的切片下载请求时,基于预设流控机制确定切片文件下载地址的返回时延,进而,基于返回时延,通过预设重定向方式才重定向得到目标cdn下载地址(即是返回时延确定后,时机到了,才通过重定向的方式返回目标cdn下载地址,返回了目标cdn
下载地址才能下载目标切片数据),也即,在本技术中,通过预设流控机制控制了返回时延,就控制了何时可以下载目标切片数据的目标cdn下载地址,就控制了得到目标切片数据的时机,而控制得到目标切片数据的时机即是对整个点播流程中的输出流量进行控制,进而,本技术不再依赖于客户端的缓冲策略,提升了视频点播过程中的流量控制性能。
附图说明
57.图1是本技术基于hls的点播流量控制方法第一实施例的流程示意图;
58.图2是本技术基于hls的点播流量控制方法中步骤2s0的细化流程示意图;
59.图3是本技术实施例方案涉及的硬件运行环境的结构示意图;
60.图4是本技术实施例涉及的第一场景示意图;
61.图5是本技术实施例方涉及的第二场景示意图;
62.图6是本技术实施例方涉及的第三场景示意图。
63.本技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
64.应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
65.本技术提供一种基于hls的点播流量控制方法,参照图1,图1为本技术基于hls的点播流量控制方法第一实施例的流程示意图。
66.本技术实施例提供了基于hls的点播流量控制方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。基于hls的点播流量控制方法可应用于机器人中。为了便于描述,以下省略执行主体描述基于hls的点播流量控制方法的各个步骤。基于hls的点播流量控制方法包括:
67.步骤s10,在检测到客户端的点播请求时,返回点播请求对应索引列表和所述索引列表中切片对应初始地址给所述客户端;
68.步骤s20,接收所述客户端基于所述索引列表反馈的切片下载请求,基于预设流控机制确定切片文件下载地址的返回时延;
69.步骤s30,根据所述返回时延,通过预设重定向方式确定所述初始地址对应实际cdn下载地址,将所述实际cdn下载地址设置为目标cdn下载地址;
70.步骤s40,根据所述目标cdn下载地址,返回目标切片数据给所述客户端,以供所述客户端播放所述目标切片数据。
71.具体步骤如下:
72.步骤s10,在检测到客户端的点播请求时,返回点播请求对应索引列表和所述索引列表中切片对应初始地址给所述客户端;
73.在本实施例中,需要说明的是,基于hls的点播流量控制方法可以应用于服务器端(具体应用于服务器端的视频点播服务部分),该服务器端从属于基于hls的点播流量控制系统,该基于hls的点播流量控制系统从属于基于hls的点播流量控制设备。
74.目前,随着4g/5g网络的普及,以及宽带互联网持续的提速降费,网络影音娱乐等需求呈爆发式发展,其中,视频点播(vod)技术广泛应用于视频监控、长/短视频博客、iptv、网络直播、在线教育、网络影音等众多产业,也即,视频点播(vod)技术,是当前支撑网络影
音娱乐产业发展的核心技术之一。
75.在数据量上,由于视频比一般结构的信息高出几个量级,如何对视频点播过程中的输出流量进行控制,事关视频点播过程中视频的播放质量、网络带宽的占用、平台的流量成本,也即,对视频点播系统中的输出流量进行控制是点播系统的核心问题之一。
76.目前,视频点播技术所采用的媒体数据传输方式可以包括如下两种:
77.一种是基于udp(user datagram protocol,用户数据报协议)的实时流式传输,另一种是基于tcp的顺序流式传输。
78.其中,基于udp的实时流式传输所采用的流量控制技术具体如下:
79.实时流式传输方式,以rtsp(real stream protcol,实时流传输协议)/rtp(realtime transport protcol,实时传输协议)等实时流媒体传输协议为基础,具体地,流媒体服务器将媒体数据通过流方式逐渐传输给客户端(具体是客户端的播放器),客户端可以一边接收媒体数据一边播放音视频,无需等待视频文件全部下载完成,进而缩短了播放等待时间,在播放同时,流媒体服务器按一定的算法对输出的媒体流实施流量控制,一来可以避免平台带宽的过度占用(支持更多的客户端),二来当客户端停止/退出/拖动操作时,可以快速终止当前媒体流数据传输,达到节约平台流量的目的。
80.在基于udp的实时流式传输的方式下,流量控制技术一般由服务器端实现。也即,实时流式传输方式的流量控制算法在流媒体服务器端,但是,基于udp的实时流式传输也存在以下缺点:
81.1)流媒体服务器需要使用企业宽带对外提供服务,所有客户端请求数据都需要经由核心网从(流媒体服务器)中心服务器获取,而核心网存在多运营商管理、多种线路路由等复杂情况,当播放量日益增大时,容易造成核心网拥塞而影响媒体传输,降低播放质量;
82.2)无法利用已经建设成熟的cdn网络(content delivery network,内容分发网络)和新式的p2p cdn技术,造成传输和带宽成本增加;
83.3)当点播量逐渐增大后,需要大量扩容流媒体服务器,运维难度大,建设成本高;
84.4)流媒体协议还未得到主流终端系统(例如安卓、ios、web)支持,需自行开发相应的客户端播放器(也即,用户需要安装特定应用程序或app),无法通过系统默认播放器或者web h5等方式播放。
85.视频点播技术所采用的媒体数据传输方式还可以是基于tcp的顺序流式传输:
86.顺序流式传输方式,是采用基于http(hypertext transfer protocol,超文本传输协议)的渐进式传输协议,其典型代表是苹果公司设计的hls协议(http live streaming,动态码率自适应技术协议)。hls协议目前广泛应用于各类移动终端的多媒体方案中,当前几乎所有移动操作系统默认播放器/浏览器都支持基于hls进行视频点播/直播。
87.目前,顺序流式传输方式的具体控制过程可以是:hls协议需要服务器先将完整的影音文件分割为多个10秒左右的视频切片,并将这些切片信息存储到一份m3u8索引文件中,当客户端发起点播请求时,将该m3u8索引文件传送给客户端的播放器,客户端的播放器根据m3u8中的信息,顺序下载各个切片文件并同步进行播放,可实现原来实时流式传输中边播放边下载的效果。同时,充分利用已建成的基于http协议的cdn网络,轻松实现视频切片的大规模分发,享受低廉的cdn流量/带宽费用(在当前云计算市场中,cdn的流量费用相比服务器企业宽带的流量费用要低很多,大概五倍以上)和更快速的视频传输效率,是目前
互联网视频企业最广泛采用的视频点播方案。
88.但是,基于udp的实时流式传输也存在以下缺点:
89.由于cdn网络(或p2p cdn)是一个尽力交付模型,初衷是加速网络小文件的传输,并未有带有流量控制功能,业界只能通过客户端播放器进行流量控制,但是,完全依赖客户端进行流量控制的方案有如下明显的不足之处:
90.1)可控性差。不同客户端、不同系统的播放器的缓冲控制策略完全不同,基于udp的实时流式传输方式无法对其进行调控,进而无法实现全网统一流控策略;
91.2)流量资源浪费严重。由于客户端播放器不会兼顾考虑平台的流量和带宽占用等因素,为了增强播放流畅性,客户端播放器通常会预加载(缓冲)大量的媒体数据(不少播放器会预加载10分钟以上的媒体数据,更有甚者会完全下载整个视频文件),而此时一旦用户切换视频或者拖动进度条,当前缓冲区数据即会失效,浪费了对应的下载流量(和带宽),增加了视频点播系统的运营成本。
92.在本实施例中,提供了一种新型的基于hls的点播流量控制方法,在该方法中,摒弃直接对媒体数据输出实施控制,而是通过切片索引信息间接实现流量控制,进而可以实现如下效果:
93.1)基于hls标准协议,能够兼容各类客户端(第三方)系统的默认播放器,用户免安装特定的app或应用程序即可实现视频点播,进而,提升用户体验;
94.2)可利用成熟的cdn网络和p2p cdn技术,提高传输效率和降低核心网带宽;
95.3)可由服务器端而不是客户端对下载流量和速率进行控制,提升控制力度和控制效果。
96.具体地,在检测到客户端的点播请求时,返回点播请求对应索引列表和所述索引列表中切片对应初始地址给所述客户端的步骤之前,所述方法还包括:
97.步骤s01,接收原始媒体资料,提取所述原始媒体资料的原始属性信息,并将所述原始媒体资料的状态设置为处理中的第一状态;
98.具体地,所述基于hls的点播流量控制方法是基于服务器端实现的,如图4所示,服务器端或者对应基于hls的点播流量控制系统包括以下几个部分:
99.1、视频点播服务部分;负责处理客户端播放器发送的各种点播请求,视频点播服务部分还具备如下功能:1)管理所有点播会话;2)返回点播会话对应的m3u8索引;2)重定向各种格式如ts(transport stream,高清摄像机拍摄下进行的封装格式)文件的实际下载地址;3)基于点播会话对点播下载流量和速度进行控制。
100.2、切片信息数据库部分;存储所有点播媒体素材(原始媒体资料)的信息,和对应ts切片文件的信息。也即,一个点播素材的信息包括:1)素材id;2)素材大小;3)素材播放总长度;4)素材创建时间;5)当前状态(处理中、正常、删除中、异常)等。ts切片文件信息包括:1)切片id;2)对应素材id;3)切片播放长度;4)切片文件大小;5)切片在对象云存储中的位置信息(即对应的存储桶和桶内路径);6)切片序号(从1开始);7)切片首帧在原素材中的时间偏移量等。在本实施例中,服务器端外接的素材输入服务器负责向切片信息数据库部分写入相关素材和切片信息,视频点播服务部分从切片信息数据库读取相关素材和切片信息。
101.3、cdn服务部分;content delivery network,即内容分发网络。cdn是构建在现有
网络基础之上的智能虚拟网络,智能虚拟网络依靠部署在各地的边缘服务器,进而通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。cdn为云计算通用基础服务,此处不详述介绍。在本实施例中,cdn服务部分负责向不同地方、不同网络接入的客户端(播放器)分发切片文件数据,加速切片文件下载,避免通过核心网直接传输媒体数据造成网络拥塞。
102.4、对象云存储部分,可提供“s3”兼容接口的对象存储云服务,是云计算通用基础服务之一,负责存储相应的媒体切片文件。
103.5、素材输入服务部分,负责对外部提交的点播媒体素材进行处理,使之转换为适合视频点播的格式。具体地,主要是对原始素材进行转码和分片操作,将得到的切片文件(ts格式)存入对象存储云服务,并将素材信息和其各切片信息存入切片信息数据库。
104.各类媒体素材需要先输入到服务器端后,客户端的播放器才能够对其进行点播。在本实施例中,基于上述服务器端的各组成部分,服务器端实现对媒体素材进行预处理,使之转换为适合于互联网点播的格式,并将相关信息和切片数据存储到数据库和对象存储服务中。
105.具体地,服务器端实现对媒体素材进行预处理,使之转换为适合于互联网点播的格式的过程可以是:
106.如图5所示,服务器端首先接收外部素材提供者提供的原始媒体资料(媒体素材),提取所述原始媒体资料的原始属性信息,并将所述原始媒体资料的状态设置为处理中的第一状态,也即,素材提供者通过某种协议(http、ftp、nas等或者多协议组合)将原始媒体素材提交到素材输入服务部分,素材输入服务部分提取素材基本信息,如提取唯一id号(由素材输入服务部分分配),大小,播放时长,创建时间等属性信息,并将原始媒体资料的状态设置为处理中的第一状态。
107.步骤s02,对所述原始素材进行切片处理,得到切片文件属性信息和切片文件;
108.在本实施例中,对所述原始素材进行切片处理,得到切片文件属性信息和切片文件,具体地,素材输入服务部分首先对原始素材进行分析,然后对原始素材进行转码和分片处理(使之适合hls播放),得到切片文件属性信息和切片文件。
109.步骤s03,将所述原始属性信息和所述切片文件属性信息录入至预设数据库中,并将所述切片文件存储到预设对象云存储中;
110.在本实施例中,素材输入服务部分提取素材基本信息,如提取唯一id号(由素材输入服务部分分配),大小,播放时长,创建时间等属性信息,录入切片信息数据库,
111.在本实施例中,服务器端还将切片文件相关信息录入数据库,如将切片的id号录入数据库,其中,切片的id号由素材输入服务部分分配,且是唯一的,其中,素材的第一个切片的序号为1,以此类推,直到素材所有切片文件都录入完成。
112.在本实施例中,还将所述切片文件存储到预设对象云存储中,即素材输入服务部分首先对原始素材进行分析,然后对原始素材进行转码和分片处理(使之适合hls播放),并将切片文件(格式为ts)存储到对象云存储。
113.步骤s04,确定所述原始媒体资料对应的点播文件,将所述点播文件的状态设置为可供点播的第二状态。
114.在本实施例中,若所有切片存储和信息录入成功,则得到所述原始媒体资料对应
的点播文件,在本实施例中,在得到点播文件后,还将点播素材的状态设置为供点播的第二状态。也即,点播素材处理完成后,客户端就可以发起相关的视频点播流程。
115.具体地,在检测到客户端的点播请求时,返回点播请求对应索引列表和所述索引列表中切片对应初始地址给所述客户端;
116.在检测到客户端的点播请求时,返回点播请求对应索引列表和所述索引列表中切片对应初始地址给所述客户端,具体地,在本实施例中,点播请求的触发方式可以是语音方式、点击方式或者触摸方式等,需要说明的是,点播请求是在客户端界面上通过语音方式、点击方式或者触摸方式等触发的。
117.在本实施例中,客户端的点播请求可以是非视频点播请求,也可以是视频点播请求,该视频点播请求可以是电视剧片段,电影片段,小视频片段,教育片段等。在本实施例中,以点播请求是视频点播请求为例进行具体说明。
118.在本实施例中,如图6所示,客户端发起相关的视频点播流程(客户端发起点播流程,通过https接口向视频点播服务发送创建点播会话请求。该请求包含需要点播的媒体素材的id号、默认播放倍速等参数),服务器端处理客户端发起的点播请求,查找对应的索引列表如m3u8索引文件(以及索引文件中切片的初始下载地址)并返回给客户端,在返回索引列表和初始地址后,服务器端进行流量控制等操作。
119.具体地,所述在检测到客户端的点播请求时,返回点播请求对应索引列表和所述索引列表中切片对应初始地址给所述客户端的步骤,包括:
120.步骤s11,在检测到客户端的点播请求时,返回点播请求对应索引列表的索引地址;
121.在本实施例中,服务器端进行流量控制,其中,流量控制算法有两个输入参数,需配置给视频点播服务部分,这两个参数分别为:
122.t
max_buffer
=播放器最大缓存时间,默认为30秒。该参数应该大于服务器端中任意切片的时长。
123.scale=流控系数,数据下载速度与播放倍速之间的比例,默认比例可以为1.25。
124.在本实施例中,在检测到客户端的点播请求时,首先返回点播请求对应索引列表的索引地址,具体地,视频点播服务部分校验点播请求指定的素材是否存在,若存在,校验指定的素材的状态是否处于第二状态即是否处于可点播状态。若校验通过,则在视频点播服务部分的内部创建一个点播会话,并存储相应内容,具体地,该点播会话存储的内容包括会话id,素材id,播放倍速(speed),最后更新时间(t
update
),可用播放时长(t
avail
),当前切片序号(seq)。
125.其中,会话初始创建时,t
update
=系统当前时间;t
avail
=t
max_buffer
;seq=0,会话创建成功后,视频点播服务部分按如下规则拼接该会话对应索引列表的索引地址,如拼接该会话对应m3u8虚拟文件(索引列表)的url(索引地址):
126.该索引地址具体可以是:https://[视频点播服务地址]:[视频点播服务端口号]/vod_sessions/[会话id]/hls/[素材id].m3u8;
[0127]
视频点播服务部分将会话id和上述m3u8虚拟文件url(索引地址)返回给客户端。
[0128]
步骤s12,接收客户端基于所述索引地址发送的索引列表请求,并返回所述索引列表请求对应的索引列表和所述索引列表中切片对应初始地址给所述客户端。
[0129]
客户端获取到会话id号和m3u8虚拟文件url后,将m3u8虚拟文件url输入客户端(客户端播放器即开始启动视频播放),其中,客户端播放器为当前终端系统自带播放器(适用app),或者浏览器网页播放器(适用web应用)。
[0130]
服务器端接收客户端基于所述索引地址发送的索引列表请求,并返回所述索引列表请求对应的索引列表给所述客户端,且服务器端还获取索引列表中切片对应初始地址给所述客户端,具体地,客户端播放器根据hls标准,通过https协议访问索引地址,以向视频点播服务获取对应的m3u8文件内容,服务器端的视频点播服务部分收到该m3u8获取请求后,根据请求路径上的参数,获得会话id和素材id,校验与其内部维护的点播会话中的信息是否一致。若一致,则向切片信息数据库查询该素材全部的切片的相关信息,视频点播服务部分根据切片的相关信息(包括服务器端中流控服务器的地址,也即初始地址),组装相应的m3u8索引列表内容,并返回给客户端播放器。
[0131]
其中,切片url按如下规则拼接:
[0132]
https://[视频点播服务地址]:[视频点播服务端口号]/vod_sessions/[会话id]/hls/[切片id].ts?seq=[切片序号]&bucket=[切片存储桶]&path=[切片存储路径]&size=[切片大小]&duration=[切片播放时长]。
[0133]
步骤s20,接收所述客户端基于所述索引列表反馈的切片下载请求,基于预设流控机制确定切片文件下载地址的返回时延;
[0134]
在本实施例中,接收所述客户端基于所述索引列表反馈的切片下载请求后,还确定服务器端的流控服务器的预设流控机制,进而确定切片文件下载地址的返回时延,也即,确定流控服务器端需要多长时间才反馈实际的切片下载地址给客户端,或者确定流控服务器端需要多长时间才去查找对应目标切片数据给客户端。在本实施例中,预设流控机制(流控算法)是可以根据用户需求进行更改的,具体内容在此不做具体的限制。
[0135]
其中,如图2所示,所述基于预设流控机制确定切片文件下载地址的返回时延的步骤,还包括:
[0136]
步骤s21,提取所述切片下载请求中的切片参数;
[0137]
步骤s22,根据所述切片参数确定预设流控流程,基于所述预设流控流程,确定切片文件下载地址的返回时延。
[0138]
在本实施例中,提取切片下载请求中的切片参数,根据所述切片参数确定预设流控流程,进而基于所述预设流控流程,确定切片文件下载地址的返回时延。
[0139]
步骤s30,根据所述返回时延,通过预设重定向方式确定所述初始地址对应实际cdn下载地址,将所述实际cdn下载地址设置为目标cdn下载地址;
[0140]
在本实施例中,通过基于预设流控机制确定切片文件下载地址的返回时延;根据所述返回时延,通过预设重定向方式确定所述初始地址对应实际cdn下载地址,将所述实际cdn下载地址设置为目标cdn下载地址。在本实施例中,准确确定返回时延,进而准确确定目标cdn下载地址,为流控奠定基础。
[0141]
在本实施例中,在得到返回时延后,根据所述返回时延,通过基于http的方式确定所述初始地址对应实际cdn下载地址,将所述实际cdn下载地址设置为目标cdn下载地址。
[0142]
在本实施例中,服务器端接收所述客户端基于所述索引列表反馈的切片下载请求,对所述初始地址进行重定向处理,也即,客户端是不断请求新的切片的(切片下载请
求),此时,服务器端确定是否需要立刻响应切片下载请求,若需要立刻响应,则对所述初始地址进行重定向处理,具体地,通过预设http重定向方式(状态码303)返回该切片下载请求实际的cdn下载地址,该实际的cdn下载地址为目标cdn下载地址。若不需要立刻响应,则等待,直到可以响应,则对所述初始地址进行重定向处理。
[0143]
具体地,例如,客户端在得到50个切片的切片列表后,根据切片列表向服务器端(具体是视频点播服务部分中流控服务器的地址)请求进行切片的下载,客户端此时是不断发送请求的(例如,请求第一个切片的下载后,继续请求第二个切片的下载,请求第二个切片的下载后,继续请求第三个切片的下载等),服务器端在接收到切片下载请求后,确定是否需要立即响应,若需要立即响应,则对所述初始地址进行重定向处理(重定向处理过程即是确定实际存储对应切片文件的地址),具体地,通过预设http重定向方式(状态码303)返回该切片下载请求实际的cdn下载地址,该实际的cdn下载地址为目标cdn下载地址。
[0144]
在本实施例中,通过重定向方式实现间接的流控。
[0145]
步骤s40,根据所述目标cdn下载地址,返回目标切片数据给所述客户端,以供所述客户端播放所述目标切片数据。
[0146]
在本实施例中,在得到目标cdn下载地址后,将目标cdn下载地址发送给客户端,以供客户端基于目标cdn下载请求获取目标切片数据,在本实施例中,服务器端还可以是直接基于目标cdn下载地址返回目标切片数据给所述客户端,以供所述客户端播放所述目标切片数据。
[0147]
在本实施例中,需要再次强调,在返回索引列表给客户端时,不返回对应切片的实际下载地址给客户端,而是返回对应流控服务器的地址给客户端,通过流控服务器返回切片的实际下载地址的时机,对流量进行控制。
[0148]
在本实施例中,根据所述目标cdn下载地址,返回目标切片数据给所述客户端的过程中,若目标切片数据尚未缓存于边缘的cdn节点,cdn服务执行回源操作:从相应的对象云存储中调取该目标切片数据,并缓存到当前cdn节点。若切片数据已经缓存在边缘cdn节点,则直接获取即可。其中,cdn服务返回相应的切片数据给客户端后,播放器对切片数据进行解码播放。
[0149]
在本实施例中,需要说明的是,在点播流程结束,客户端向视频点播服务发送会话销毁请求,释放对应的点播会话。
[0150]
本技术通过在检测到客户端的点播请求时,返回点播请求对应索引列表和所述索引列表中切片对应初始地址给所述客户端;基于预设流控机制确定切片文件下载地址的返回时延;根据所述返回时延,通过预设重定向方式确定所述初始地址对应实际cdn下载地址,将所述实际cdn下载地址设置为目标cdn下载地址;根据所述目标cdn下载地址,返回目标切片数据给所述客户端,以供所述客户端播放所述目标切片数据。在本技术中,在服务器端反馈给客户端点播请求对应的索引列表和索引列表中切片的初始地址后,若接收所述客户端基于所述索引列表反馈的切片下载请求时,基于预设流控机制确定切片文件下载地址的返回时延,进而,基于返回时延,通过预设重定向方式才重定向得到目标cdn下载地址(即是返回时延确定后,时机到了,才通过重定向的方式返回目标cdn下载地址,返回了目标cdn下载地址才能下载目标切片数据),也即,在本技术中,通过预设流控机制控制了返回时延,就控制了何时可以下载目标切片数据的目标cdn下载地址,就控制了得到目标切片数据的
时机,而控制得到目标切片数据的时机即是对整个点播流程中的输出流量进行控制,进而不再依赖于客户端的缓冲策略,提升了视频点播过程中的流量控制性能。
[0151]
进一步地,基于本技术基于hls的点播流量控制方法第一实施例,提出第二实施例,在第二实施例中,
[0152]
所述根据所述切片参数确定预设流控流程,基于所述预设流控流程,确定切片文件下载地址的返回时延的步骤,包括:
[0153]
步骤b1,提取切片序号参数,根据所述切片序号参数确定播放类型;
[0154]
在本实施例中,切片参数为切片序号参数,根据切片序号参数确定播放类型,该播放类型为顺序播放和非顺序播放类型,其中,非顺序播放类型可以是拖动播放类型。具体地,如果切片序号等于seq+1(也即,之前记录的已请求的切片序号为seq,本次切片下载请求的序号为seq+1),则为顺序播放类型,如果切片序号不等于seq+1(也即,之前记录的已请求的切片序号为seq,本次切片下载请求的序号不是seq+1),表示本次请求为拖动播放(seek)。
[0155]
步骤b2,若播放类型为顺序播放时,确定可用播放时长和当前切片播放时长之间的大小关系;
[0156]
步骤b3,根据所述大小关系,确定切片文件下载地址的返回时机;
[0157]
步骤b4,根据所述返回时机,确定返回时延。
[0158]
在本实施例中,若播放类型为顺序播放时,确定可用播放时长和当前切片播放时长之间的大小关系(举例进行说明,客户端被允许下载确定个数的切片,在下载确定个数的切片的过程中,会受到流控服务器端的流控,需要说明的是,客户端在下载的过程中,是同步播放视频的,因而,具体流控的过程即是:首先确定播放器最大缓存时间,根据播放器最大缓存时间和被播放的时间,确定可用播放时长(t
avail
=t
avail
(之前)+(当前时间

t
update
)*scale*speed),根据可用播放时长和当前切片播放时长,确定是否可以返回实际的下载地址,以供相应数据的下载),也即,检查tavail是否大于或等于当前切片播放时长(当前单个切片的播放时长),若是,则返返回时机为立即返回,根据所述返回时机,确定返回时延为0。
[0159]
在本实施例中,若t
avail
小于当前切片播放时长,休眠一段时间直至t
avail
大于或等于当前切片播放时长,该休眠的时间即为返回时延。
[0160]
具体地,例如,可用播放时长是1s(由播放器最大缓存时间和被播放的时间确定),而当前切片播放时长为1.5s,很显然,要过一段时间即0.5s之后,才可以继续下载,因而,本实施例中,在0.5s之后确定目标cdn下载地址并返回。
[0161]
在本实施例中,需要说明的是,返回时延还与用户的播放倍速关联,如果用户改变了播放倍速,客户端将根据新的倍速确定返回时延。
[0162]
所述提取切片序号参数,根据所述切片序号参数确定播放类型的步骤之后,所述方法包括:
[0163]
步骤c1,若播放类型为非顺序播放时,获取预设流控参数:
[0164]
步骤c2,基于所述预设流控参数以及所述预设流控流程中的复位流程,确定切片文件下载地址的返回时延。
[0165]
在本实施例中,若播放类型为非顺序播放时,获取预设流控参数,基于所述预设流控参数以及所述预设流控流程中的复位流程,确定切片文件下载地址的返回时延。具体地,
获取预设流控参数中的当前切片播放时长,可用播放时长,根据当前切片播放时长、可用播放时长以及预设复位流程(立即重新开始下载新的切片的流程),确定切片文件下载的数量,根据切片文件下载的数量,确定返回时延。
[0166]
具体地,例如,若用户在点播时,从第一分钟跳到第10分钟,则服务器端获取当前切片播放时长(如1s),可用播放时长(30s),则确定切片文件下载的数量为30个,此时,由于还未开始返回(当前切片文件下载的数量未0),因而,确定返回时延为立即返回(在可用播放时长内立即返回)。
[0167]
本实施例中,通过提取切片序号参数,根据所述切片序号参数确定播放类型;若播放类型为顺序播放时,确定可用播放时长和当前切片播放时长之间的大小关系;根据所述大小关系,确定切片文件下载地址的返回时机;根据所述返回时机,确定返回时延。在本实施例中,准确确定返回时延,为准确的实现基于hls的点播流量控制奠定基础。
[0168]
此外,本技术还提供一种基于hls的点播流量控制装置,所述基于hls的点播流量控制装置包括:
[0169]
检测模块,用于在检测到客户端的点播请求时,返回点播请求对应索引列表和所述索引列表中切片对应初始地址给所述客户端;
[0170]
第一确定模块,用于基于预设流控机制确定切片文件下载地址的返回时延;
[0171]
重定向模块,用于根据所述返回时延,通过预设重定向方式确定所述初始地址对应实际cdn下载地址,将所述实际cdn下载地址设置为目标cdn下载地址;
[0172]
返回模块,用于根据所述目标cdn下载地址,返回目标切片数据给所述客户端,以供所述客户端播放所述目标切片数据。
[0173]
可选地,所述第一确定模块包括:
[0174]
提取单元,提取所述切片下载请求中的切片参数;
[0175]
确定单元,用于根据所述切片参数确定预设流控流程,基于所述预设流控流程,确定切片文件下载地址的返回时延。
[0176]
可选地,所述确定单元包括:
[0177]
第一确定子单元,用于提取切片序号参数,根据所述切片序号参数确定播放类型;
[0178]
第二确定子单元,用于若播放类型为顺序播放时,确定可用播放时长和当前切片播放时长之间的大小关系;
[0179]
第三确定子单元,用于根据所述大小关系,确定切片文件下载地址的返回时机;
[0180]
第四确定子单元,用于根据所述返回时机,确定返回时延。
[0181]
可选地,所述确定单元还包括:
[0182]
获取子单元,用于若播放类型为非顺序播放时,获取预设流控参数:
[0183]
第五确定子单元,用于基于所述预设流控参数以及所述预设流控流程中的复位流程,确定切片文件下载地址的返回时延。
[0184]
可选地,所述基于hls的点播流量控制装置还包括:
[0185]
提取模块,用于接收原始媒体资料,提取所述原始媒体资料的原始属性信息,并将所述原始媒体资料的状态设置为处理中的第一状态;
[0186]
切片处理模块,用于对所述原始素材进行切片处理,得到切片文件属性信息和切片文件;
[0187]
录入模块,用于将所述原始属性信息和所述切片文件属性信息录入至预设数据库中,并将所述切片文件存储到预设对象云存储中;
[0188]
第二确定模块,用于确定所述原始媒体资料对应的点播文件,将所述点播文件的状态设置为可供点播的第二状态。
[0189]
可选地,所述检测模块包括:
[0190]
检测单元,用于在检测到客户端的点播请求时,返回点播请求对应索引列表的索引地址;
[0191]
接收单元,用于接收客户端基于所述索引地址发送的索引列表请求,并返回所述索引列表请求对应的索引列表和所述索引列表中切片对应初始地址给所述客户端
[0192]
本技术基于hls的点播流量控制装置具体实施方式与上述基于hls的点播流量控制方法各实施例基本相同,在此不再赘述。
[0193]
此外,本技术还提供一种基于hls的点播流量控制设备。如图3所示,图3是本技术实施例方案涉及的硬件运行环境的结构示意图。
[0194]
需要说明的是,图3即可为基于hls的点播流量控制设备的硬件运行环境的结构示意图。
[0195]
如图3所示,该基于hls的点播流量控制设备可以包括:处理器1001,例如cpu,存储器1005,用户接口1003,网络接口1004,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi

fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non

volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
[0196]
可选地,基于hls的点播流量控制设备还可以包括rf(radio frequency,射频)电路,传感器、音频电路、wifi模块等等。
[0197]
本领域技术人员可以理解,图3中示出的基于hls的点播流量控制设备结构并不构成对基于hls的点播流量控制设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0198]
如图3所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及基于hls的点播流量控制程序。其中,操作系统是管理和控制基于hls的点播流量控制设备硬件和软件资源的程序,支持基于hls的点播流量控制程序以及其它软件或程序的运行。
[0199]
在图3所示的基于hls的点播流量控制设备中,用户接口1003主要用于连接终端,与终端进行数据通信,如接收终端发送的请求;网络接口1004主要用于后台服务器,与后台服务器进行数据通信;处理器1001可以用于调用存储器1005中存储的基于hls的点播流量控制程序,并执行如上所述的基于hls的点播流量控制方法的步骤。
[0200]
本技术基于hls的点播流量控制设备具体实施方式与上述基于hls的点播流量控制方法各实施例基本相同,在此不再赘述。
[0201]
此外,本技术实施例还提出一种存储介质,所述存储介质上存储有基于hls的点播流量控制程序,所述基于hls的点播流量控制程序被处理器执行时实现如上所述的基于hls
的点播流量控制方法的步骤。
[0202]
本技术存储介质具体实施方式与上述基于hls的点播流量控制方法各实施例基本相同,在此不再赘述。
[0203]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0204]
本技术实施例序号仅仅为了描述,不代表实施例的优劣。
[0205]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,设备,或者网络设备等)执行本技术各个实施例所述的方法。
[0206]
以上仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1