nginx上搭建HLS流媒体服务器

简介: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时候遇到以下问题

[plain] view plain copy

 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwywdj.html