直播HLS数据生成方法及装置、处理方法及装置和控制系统制造方法及图纸

技术编号:29046069 阅读:27 留言:0更新日期:2021-06-26 06:01
本发明专利技术公开了一种直播HLS数据生成方法及装置、处理方法及装置和控制系统,该方法包括:实时接收输入直播流数据;对直播传输流数据进行切片;当前周期的切片文件和下一个周期切片的访问信息按预设规则存储于对应存储区域;生成M3U8文件,并存储于预设的存储区域;当直播服务器接收客户端的HTTP播放请求,返回M3U8文件;客户端获取切片的访问信息并下载切片;直播服务器返回切片内容的同时,将下一个切片的访问信息一并返回给客户端。该方法使得客户端能从切片的HTTP响应中获取新的切片访问信息,无需周期性的访问M3U8发现新切片信息,减少了客户端与直播服务器的交互次数,降低了客户端播放卡顿的概率,减轻服务端的压力。减轻服务端的压力。减轻服务端的压力。

【技术实现步骤摘要】
直播HLS数据生成方法及装置、处理方法及装置和控制系统


[0001]本专利技术属于互联网多媒体
,尤其是涉及一种直播HLS数据生成方法及装置、处理方法及装置和直播HLS数据控制系统。

技术介绍

[0002]HLS(HTTP Live Streaming)是一种由苹果公司提出的基于HTTP的流媒体网络传输协议。它的工作原理是服务端把视频流(或视频文件)按固定时长分成多个小的切片文件,并生成M3U8文件索引。M3U8文件中包含切片文件的访问地址。客户端通过HTTP协议获取M3U8文件,从M3U8文件中获取切片文件列表和对应的访问地址,通过HTTP协议依次获取切片文件并播放。
[0003]HLS主要由两部分数据组成:切片文件和M3U8文件。
[0004]切片文件是视频流(或者视频文件)按固定时长划分生成的小文件,每个切片文件必须能独立解码播放,因此要求每个切片文件的第一个视频帧是可以独立解码的I帧(帧内编码帧)。切片文件的封装可以有两种:TS流(MPEG

2Transport Stream,ISO 13818定义的MPEG传输流)、fMP4(Fragment MPEG

4,ISOBMFF)。采用TS流格式时,每个TS切片文件都能独立解码播放。采用fMP4格式时,由2部分数据组成:包含媒体数据的m4s文件(包含音频和数据数据)和元数据信息文件(包含初始化媒体播放的元数据,不包含音频和数据数据),客户播放fMP4时,首先需要获取元数据信息文件初始化播放器,然后才能解码m4s中的媒体数据。
[0005]M3U8文件是切片文件的索引,M3U8文件的一个例子示意如下:
[0006]#EXTM3U
[0007]#EXT

X

VERSION:3
[0008]#EXT

X

MEDIA

SEQUENCE:7794
[0009]#EXT

X

TARGETDURATION:15
[0010]#EXT

X

KEY:METHOD=AES

128,URI="https://priv.example.com/key.php?r=52"
[0011]#EXTINF:2.833,
[0012]http://media.example.com/fileSequence52

A.ts
[0013]#EXTINF:15.0,
[0014]http://media.example.com/fileSequence52

B.ts
[0015]#EXTINF:13.333,
[0016]http://media.example.com/fileSequence52

C.ts
[0017]#EXT

X

KEY:METHOD=AES

128,URI="https://priv.example.com/key.php?r=53"
[0018]#EXTINF:15.0,
[0019]http://media.example.com/fileSequence53

A.ts
[0020]M3U8由三种数据组成,全局Tag(Global Tag),媒体Tag(Media Tag)和切片URI(切片文件的访问地址)。
[0021]其中,全局Tag通常出现在M3U8文件的开始,描述全局属性,常见的全局Tag有:
[0022]EXTM3U:指示当前文件是M3U8格式的文件;
[0023]EXT

X

VERSION:M3U8文件的版本;
[0024]EXT

X

MEDIA

SEQUENCE:M3U8文件中一个切片文件的Sequence number;每一个切片文件都有唯一的Sequence number;下一个切片文件的Sequence number=当前切片Sequence number+1;
[0025]EXT

X

TARGETDURATION:切片的目标时长,单位秒。
[0026]媒体Tag出现在切片URI之前,通常用于描述接下来出现的切片的属性,常见的媒体Tag有:
[0027]EXTINF:切片的实际时长,单位秒;
[0028]EXT

X

BYTERANGE:切片可以是一个完整的文件,也可以是一个文件中的一部分数据,EXT

X

BYTERANGE指示切片数据在URI指示文件中的范围;
[0029]EXT

X

KEY:如果切片进行加密,EXT

X

KEY指示解密方法;
[0030]EXT

X

MAP:指示如何获取元数据信息文件,切片封装格式是fMP4时,会出现这个Tag;
[0031]EXT

X

PROGRAM

DATE

TIME:切片文件中第一个媒体数据对应的绝对时间。
[0032]切片URI是切片文件的HTTP访问地址,URI可以是绝对地址,也可以是相对于M3U8的相对地址。
[0033]切片URI与之前媒体Tag组成切片的完整描述。M3U8中所有切片的访问信息形成一个顺序播放的切片列表。
[0034]HLS用于实现流媒体的点播和直播播放。在直播场景中,服务端接收输入视频流,当接收到固定时长的视频(例如10秒),生成一个切片文件,并更新M3U8文件,M3U8文件包含由最新生成的N个文件(例如3个文件)的媒体Tag和切片URI组成的切片列表,每当一个新的切片文件加入到M3U8的切片列表,当前M3U8文件列表中最老的切片会被移除。客户端播放直播视频时,首先通过HTTP协议获取M3U8文件,从M3U8文件中获取切片文件的访问地址,客户端依次下载切片文件并播放,同时,客户端周期性的获取M3U8文件,当M3U8文件的切片列表更新时,客户端获取新的切片访问地址,通过比较切片列表切片的Sequence number,客户端发现新生成的切片,下载并播放。
[0035]但是,HLS直播播放场景中,为了发现新生成的切片文件,客户端需要周期性的发起HTTP请求以获取最新的M3U8文件。在弱网环境下,获取M3U8文件耗费额外的时间,增加播放卡顿的概率;如果大量客户端周期性的获取M3U本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种直播HLS数据生成方法,其特征在于,所述的生成方法应用于服务器侧的服务端,所述生成方法包括:实时接收输入的直播流数据,得到当前周期的当前切片文件,并生成下一周期的切片文件的访问信息;将当前周期的当前切片文件和下一个周期的切片文件的访问信息按照预设规则相应存储于第一存储区域中;根据当前周期的当前切片文件的内容更新M3U8,生成新的M3U8文件,并将所述新的M3U8文件相应存储于第二存储区域中;当接收到来自客户端的播放请求时,从所述第二存储区域中提取M3U8文件并返回给客户端,以使所述客户端能够获取当前切片文件的信息并下载切片,其中,在所述客户端下载当前切片时,还从所述第一存储区域中提取下一个周期的切片文件的访问信息并返回给客户端。2.根据权利要求1所述的生成方法,其特征在于,下一个周期的切片文件的访问信息包括如下数据:媒体Tag、切片URI、切片可用时间和切片Sequence number,每种数据根据预设的规则生成。3.根据权利要求2所述的生成方法,其特征在于,所述M3U8文件的更新包括:将当期周期的切片文件的媒体Tag和切片URI更新到M3U8中,同时,M3U8中扩展一个全局Tag,并设置为M3U8切片列表中最后一个切片的可用时间。4.根据权利要求2所述的生成方法,其特征在于,按预设的切片时长和切片封装格式对直播传输流数据进行切片,得到当前周期的切片文件,当切片使用fMP4封装时,在产生第一个切片之前根据码流信息生成初始化文件。5.一种直播HLS数据的处理方法,其特征在于,所述的处理方法应用于服务器侧的客户端,所述处理方法包括:向所述服务器发送播放请求,以使所述服务器根据所述直播请求返回M3U8文件,其中,所述的M3U8文件根据预设规则存储在服务器中;当接收到所述M3U8文件时,解析所述M3U8文件,基于预设的规则获取当前切片文件的信息后下载切片,在下载当前切片时,还从所述服务器中获取下一个周期的切片文件的访问信息。6.根据权利要求5所述的数据处理方法,其特征在于,客户端解析M3U8文件的过程包括:对M3U8文件进行解析,得到包括:切片文件时长、切片文件的解密方式、切片文件的初始化数据、切片文件的URI、切片文件的Sequence number、计时时间基准、切片文件的可用时间在内的切片信息,客户端维护下载切片链表,其中,链表中每一个元素包含如下信息:切片文件的媒体Tag、切片文件的URI、切片文件的Sequence number、切片文件的可用时间;在客户端完成M3U8文件解析后,将M3U8中的切片信息依次加入到下载切片链表中,根据计时器依次下载。7.根据权利要求6所述的数据处理方法,其特征在于,客户...

【专利技术属性】
技术研发人员:候铭睿
申请(专利权)人:北京四达时代软件技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1