HLS介绍

HLS介绍HLS介绍HLS(HTTPlivestreaming)是apple公司提出的一个基于HTTP的流媒体网络传输协议HLS只请求基本的HTTP报文,和实时传输协议(RTP)不同,HLS可以穿过任何允许HTTP数据通过的防火墙或者代理服务器协议简介1、视频的封装格式是TS2、视频的编码格式是H.264,音频编码格式是MP3、AAC或者AC-33、处理TS视频文件…

大家好,欢迎来到IT知识分享网。

HLS介绍

HLS(HTTP live streaming)是apple公司提出的一个基于HTTP的流媒体网络传输协议

HLS只请求基本的HTTP报文,和实时传输协议(RTP)不同,HLS可以穿过任何允许HTTP数据通过的防火墙或者代理服务器

协议简介

 1、视频的封装格式是TS
 2、视频的编码格式是H.264,音频编码格式是MP3、AAC或者AC-3     
 3、处理TS视频文件本身,还定义了用来控制播放的m3u8文件(文本文件)

协议特点

 1、HLS是为了解决RTMP协议中存在的一些问题,RTMP协议不使用HTTP的接口,可能会被屏蔽
 2、RTMP是有状态的协议,很难对视频服务器进行平滑扩展;二HLS是无状态的协议,客户端只需要按照顺序使用下载存储在服务器的普通TS文件。
 3、HLS协议本身实现了码率的自适应。
 4、HLS协议的延迟很大,直播延迟比较敏感的服务慎用HLS

HLS的工作流程

 1、客户端先下载一级索引文件(即m3u8文件)
 2、一级索引文件里记录了二级索引文件(index1,index2,index3等,也是m3u8文件)的地址
 3、客户端根据地质去下载二级索引文件
 4、二级索引文件中记录了TS文件的下载地址
 5、这样客户端就可以按照顺序下载TS视频文件并连续播放

HLS的m3u8文件

1、m3u8文件即索引(index)文件,也叫playlist文件,示例图如下:

这里写图片描述

或者这样,一级索引文件也叫Master PlayList,二级索引文件也叫Media PlayList

这里写图片描述

如果不存在Master PlayList,那么它是下面的形式

这里写图片描述

 2、一级index文件(Master PlayList)介绍
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1064000
1000kbps.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=564000
500kbps.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=282000
250kbps.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2128000
2000kbps.m3u8
 bandwidth指定视频的比特率;
 PROGRAM-ID无需关注;
 每个#EXT-X-STREAM-INF的下一行就是二级index文件的路径,路径可以是绝对路径也可以是相对路径;
 客户端可以自己判断目前的网络带宽,来决定播放哪一个视频流

 3、二级index文件(Media PlayList)
#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:10
#EXTINF:10,
2000kbps-00001.ts
#EXTINF:10,
2000kbps-00002.ts
#EXTINF:10,
2000kbps-00003.ts
#EXTINF:10,
2000kbps-00004.ts
... ...
#EXTINF:10,
2000kbps-00099.ts
#EXTINF:10,
2000kbps-00100.ts
#ZEN-TOTAL-DURATION:999.66667
#ZEN-AVERAGE-BANDWIDTH:2190954
#ZEN-MAXIMUM-BANDWIDTH:3536205
#EXT-X-ENDLIST
 #EXTINF表示每个ts切片的视频文件的时长
 #EXT-X-TARGETDURATION指定当前视频流中切片文件的最大时长,即这些ts切片的时长不能超过这个值
 #EXT-X-PLAYLIST-TYPE-VOD 表示当前的视频不是一个直播流,而是点播流
 #EXT-X-ENDLIST表示这个视频结束,这个标志也说明了当前的流是一个非直播流

播放模式

 1、点播VOD。特点是当前时间点可以获取到所有index文件和ts文件,二级index文件中记录了所有ts文件的地址。这种模式允许客户访问全部内容。
 2、Live(直播)。实时生成m3u8文件和ts文件。它的索引玩呢家一直处于动态变化的,播放的时候需要不断下载二级index文件,以获取最新生成的ts文件。如果一个而今index文件的末尾没有#EXT-X-ENDLIST标志,说明他是一个live视频流

整理自:http://www.jianshu.com/p/426425cad08a
转载至:https://blog.csdn.net/nb_vol_1/article/details/59520655

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/16119.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信