http://blog.csdn.net/cjsafty/article/details/7922849
简介:HTTP Live Streaming(缩写是 HLS)是一个由苹果公司提出的基于HTTP的流媒体 网络传输协议。
是苹果公司QuickTime X和iPhone软件系统的一部分。它的工作原理是把整个流分成一个个小的基于HTTP
的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速
率下载同样的资源,允许流媒体会话适应不同的数据速率。在开始一个流媒体会话时,客户端会下载一个包
含元数据的extended M3U (m3u8) playlist文件,用于寻找可用的媒体流。
HLS只请求基本的HTTP报文,与实时传输协议(RTP)不同,HLS可以穿过任何允许HTTP数据通过的防
火墙或者代理服务器。它也很容易使用内容分发网络来传输媒体流。
此协议详细内容请参考apple官方网站:https://developer.apple.com/resources/http-streaming/
有两种方式搭建HLSserver,
一种是利用apple SDK,
一种是利用adobe 的fms,4.5版本支持hls,参考,
adobe的fms现在很强大,但是商用需要licence。有兴趣的可以研究下。
一种是利用opensouce.我比较喜欢这一种。
方法:
opensource的方法主要是使用m3u8-segmenter+ffmpeg对ts文件进行分片。
因此思路就是:
1,用编译好的ffmpeg制作所需要的ts文件,
2,安装libavformat-dev版本,
3,编译m3u8-segmenter,
4,部署到nginx
5,高级功能,流切换
6,页面
过程
1,本来想下载ffmpeg源码编译,但是因为要涉及到faac,x264,lame库。有时候ffmpeg版本对这些库的版本又有最低版本要求,在编译
faac时候遇到以下问题