您当前的位置: 首页 > 学无止境 > 网站建设 网站首页网站建设
linux下利用nginx搭建hls直播流服务器
发布时间:2016-09-22 21:05:51编辑:雪饮阅读()
大家都知道51cto吧,在之前51cto的视频是可以轻松下载的,而现今51cto的视频是利用hls直播流分片加密的方式实现web授权,app授权播放的。
雪饮今天分享的就是在linux下利用nginx实现hls直播流的web授权播放。
所谓web授权hls的授权就是目前最主流的m3u8+ts+AES-128
首先将片源分片为n个ts文件,于m3u8中存储ts文件路径以及相关AES-128的key。
这里雪饮以CentOS-5.6-i386发行版的linux为例:
一,首先搭建nginx服务器:
1.1,选定源码目录
选定目录 /usr/local/HLS
cd /usr/local/HLS
1.2,安装PCRE库
安装前:
yum -y install gcc
yum -y install gcc-c++
cd /usr/local/HLS
到www.pcre.org 下载pcre-8.37.tar.gz , 然后拷贝到/usr/local/HLS
tar -zxvf pcre-8.37.tar.gz
cd pcre-8.37
./configure
make
make install
1.3,安装zlib库
cd /usr/local/HLS
到www.zlib.net 下载zlib-1.2.8.tar.gz, 然后拷贝到/usr/local/HLS
tar -zxvf zlib-1.2.8.tar.gz cd zlib-1.2.8
./configure
make
make install
1.4,安装SSL
注意:编译命令为“./config”而不是“./configure”
cd /usr/local/HLS
到www.openssl.org下载openssl-1.0.2g.tar.gz, 然后拷贝到/usr/local/HLS
tar -zxvf openssl-1.0.2g.tar.gz
./config
make
make install
1.5,安装nginx
到nginx.org 下载稳定版本的nginx-1.8.1.tar.gz, 然后拷贝到/usr/local/HLS
tar -zxvf nginx-1.8.1.tar.gz
cd nginx-1.8.1
./configure --prefix=/usr/local/nginx
make
make install
1.6,启动
确保系统的80端口没被其他程序占用,
/usr/local/nginx/sbin/nginx
检查是否启动成功:
netstat -ano|grep 80 有结果输入说明启动成功
然后打开浏览器访问此机器的ip地址即可,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运行成功。
.1.7,重启
/usr/local/nginx/sbin/nginx –s reload
注: 如果是虚拟机要打开虚拟机的防火墙,其他电脑才能正常访问该IP地址。
注意:
一定要关联到opssl文件夹:./configure --prefix=/usr/local/nginx --with-openssl=/usr/local/HLS/openssl-1.0.2g --with-http_ssl_module
安装完成,启动nginx时若出现:
/usr/local/nginx/sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
意思时加载共享库(可理解为快捷方式)找不到文件或目录:
那么我们就需要手动将该快捷方式添加软链接(linux中的软链接就相当于windows中的快捷方式)
确认已经安装PCRE:
Shell代码
[ew69@SCLABHADOOP01 lib]$ cd /lib
[ew69@SCLABHADOOP01 lib]$ ls *pcre* (模糊搜索该目录下与pcre名称相模糊的文件)
libpcre.so.0 libpcre.so.0.0.1
[hadoop@SCLABCLUS01 nginx]$ find / -type f -name *libpcre.so.*
-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件
添加软链接:
Shell代码
[ew69@SCLABHADOOP01 lib]$ ln -s /lib/libpcre.so.0.0.1 /lib/libpcre.so.1
ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接,这个命令最常用的参数是-s,具体用法是:ln –s 源文件 目标文件。
注: 在有的操作系统上面,安装pcre后,安装的位置为/usr/local/lib/*pcre*
在redhat 64位机器之上有这样的情况.
在redhat 64位机器上, nginx可能读取的pcre文件为/lib64/libpcre.so.1文件.
所以在改用下面的软连接:
Shell代码
[hadoop@SCLABHADOOP01 ~]$ ln -s /usr/local/lib/libpcre.so.1 /lib64/
二,搭建HLS流媒体
2.1, 在 /usr/local/nginx/html 目录下 新建一个first目录
mkdir first
2.2, 进入 /usr/local/nginx/html/first
cd first
安装完成之后,雪饮将手里准备好的m3u8结构文件以及ts分片文件放置该目录(雪饮的文件是从51cto学院客户端缓存下来的)
然后通过手机访问你的站点,若你是在虚拟机中进行demo的,那么请注意部署拓扑结构:
如:
雪饮这里的有线网络是从一个无线网络”weiyingxiao2”下接入的,那么虚拟机桥接时就一定要选择有线网卡而非无线网卡.(这个地方有不少人都桥接错了):
手机端同样要在相同的局域网内才可以:
注意:这个播放错误是因为雪饮所放置于站点目录的文件来源于51cto客户端的缓存,而该缓存采用了HLS的m3u8+ts+AES-128的分流切片加密,如果是没有加密的正常hls流就可以播放成功了。
demo所用软件包下载:
链接:http://pan.baidu.com/s/1boTnbhP 密码:n0mi
关键字词:linux,nginx,hls,雪饮
上一篇:svn搭建完全流程详解
下一篇:php中的数据获取神器-curl
相关文章
- 没有数据线也能传文件-无线局域网搭建ftp
- 微信开发者网页调试-无数据线也能调试
- php二次开发技巧-php反射(快速定位类所在路径,类的信息
- 解决linux下Apache下403 Forbidden错误(apache-2.4)
- centos配置apache2.4.23+php5.3.29+apc3.1.13
- windows+apache+php+mysql环境下配置MP4视频流拖拽插
- phpstudy+Xdebug配置可通过火狐浏览器控制激活eclipse
- 雪饮教你开启蜗牛游戏手机白色78p01开启usb调试并连接
- nginx默认80端口被System占用,造成nginx启动报错的解决
- 制作u盘启动wifi破解系统-cdlinux