众所周知,TSINGSEE青犀视频全线产品均能输出多种视频流,其中包括FLV、HLS。在今天的文章中,咱们将为你们重点介绍:TSINGSEE青犀视频平台是如何输出HLS协议视频流。web
什么是HLS协议?浏览器
HLS(HTTP Live Streaming)是苹果公司的动态码率自适应技术,主要用于PC和苹果终端的音视频服务,包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件。服务器
经常使用的流媒体协议主要有HTTP渐进下载和基于RTSP/RTP的实时流媒体协议。目前比较方便又好用的是HTTP渐进下载,而苹果公司的HTTP Live Streaming则是该方面的表明。微信

HLS的工做原理是把整个流分红一个个基于HTTP的文件片断来下载,当媒体流正在播放时,客户端能够选择从许多不一样的备用源中以不一样的速率下载一样的资源,容许流媒体会话适应不一样的数据速率。网络

在开始一个流媒体会话时,客户端会下载一个包含元数据的extended M3U (m3u8) playlist文件,用于寻找可用的媒体流。编码
HLS只请求基本的HTTP报文,与实时传输协议(RTP)不一样,HLS能够穿过任何容许HTTP数据经过的防火墙或者代理服务器。它也很容易使用内容分发网络来传输媒体流。加密

简而言之,HLS是新一代流媒体传输协议,其基本实现原理为将一个大的媒体文件进行分片,将该分片文件资源路径记录于m3u8文件(即playlist)内,其中附带一些额外描述(好比该资源的多带宽信息等)用于提供给客户端。客户端依据该m3u8文件便可获取对应的媒体资源,进行播放。spa
所以,当咱们的流媒体服务器视频平台获取HLS流文件,主要就是对m3u8文件进行解析操做。插件
那么,下面就简单介绍下m3u8文件。3d
M3U8文件是什么?
m3u8文件实质是一个播放列表(playlist),有多是一个媒体播放列表(Media Playlist),或者是一个主列表(Master Playlist)。但不管是何种播放列表,其内部文字使用的都是utf-8编码。

当m3u8文件做为媒体播放列表(Media Playlist)时,其内部信息记录的是一系列媒体片断资源,顺序播放该片断资源,便可完整展现多媒体资源。
M3U8中包含基础标签:
EXTM3U:代表该文件是一个m3u8文件,每一个m3u8文件必须将该标签放置在第一行。
EXT-X-VERSION:表示HLS的协议版本号,该标签与流媒体的兼容性相关。该标签为全局做用域,使能整个m3u8文件;每一个m3u8文件内最多只能出现一个该标签订义。若是m3u8文件不包含该标签,则默认为协议的第一个版本。
EXTINF:表示其后URL指定的媒体片断时长(单位为秒)。每一个URL媒体片断以前必须指定该标签,其值必须小于或等于EXT-X-TARGETDURATION指定的值。
简单来讲,m3u8是一个TS切片列表文件,它记录视频的每一个切片的时长与顺序。举个简单的例子,m3u8至关于一本书的目录,具体的ts文件相似书本每一章节具体的内容,播放器经过这个目录来加载读取每一个章节具体的内容展现播放。目录上明确标识了该章节具体须要注意和设置的地方。

科普:TS,即Transport Stream(传输流),是高清摄像机拍摄下进行的封装格式,全称为MPEG2-TS。MPEG2-TS格式的特色,就是要求从视频流的任一片断开始都是能够独立解码的。
结语
TSINGSEE青犀视频全线产品在播放HLS视频流时,也是遵循以上操做。HLS的意义在于,当媒体流正在播放时,客户端能够根据当前网络环境,方便地在不一样的码率流中作切换,以实现更好的观影体验。
值得一提的是,TSINGSEE青犀视频全线产品除了支持HLS协议以外,还可支持RTSP、RTMP、FLV等多种格式的视频流进行分发。
例如,TSINGSEE青犀视频旗下国标视频云服务产品EasyGBS,就能够将GB28181设备/平台推送的PS流转成ES流,并提供RTSP、RTMP、FLV、HLS多种格式进行分发,最终实现web浏览器、手机浏览器、微信、PC客户端等各类终端无插件播放。

EasyGBS视频播放界面实例图