开始做视频网站前的准备
1 | Nginx 做流量转发 |
自己测试了下SRS 做直播服务单机都感觉非常稳定,所以直播的能力就先交给他了。我找一遍没有找到SRS 能播放本地视频的。使用ffmpeg 倒也能播放,但是却不能拖动前、后播放视频了。
所以果断放弃。使用Nginx-http-flv-module 作为播放本地视频,配置也是超级简单。但是Nginx-http-flv-module 的直播流却不理想,自己感觉不是很好。
也可能是我偷偷搞、学,遗漏了?反正就这么着:SRS 扛起直播大旗、Nginx-http-flv-module 扛起播放视频服务大旗!
SRS 上面也已讲过,商用的话,还缺少一个:鉴权服务。SRS 本身就有鉴权方案,我在之后会多多参考,现在主要还是先搭起播放本地视频的服务。
下面开始Nginx-http-flv-module 的实现流程。
首先说明环境
使用昨天搭建的CentOS7 光溜溜版。只有openssh.
装个nodejs 先:参考
cd /tmp
curl — silent — location https://rpm.nodesource.com/setup_9.x | sudo bash -
yum install -y nodejs
下载Nginx
mkdir /root/downloads cd /root/downloads
wget http://nginx.org/download/nginx-1.17.3.tar.gz
wget https://github.com/winshining/nginx-http-flv-module/archive/v1.2.6.zip
tar -zxvf nginx-1.17.3.tar.gz # 得到文件夹nginx-1.17.3
unzip -o v1.2.6.zip -d nginx-http-flv-module # 得到nginx-http-flv-module
cd nginx-1.17.3
./configure --add-module=/root/downloads/nginx-http-flv-module --with-http_ssl_module --with-http_v2_module # 可能会报pcre、openssl 没有找到。
# 上面同时也把nginx-http-flv-module 第三方包加载成功
yum install -y openssl openssl-devel # 安装openssl
yum install -y pcre pcre-devel # 安装pcre
上面做好了准备, 下面是编译和启动
make && make install # 完成之后会在/usr/local/nginx 生成目录,这里就是nginx操作处
cd /usr/local/nginx
./sbin/nginx -s start -c ./conf/nginx.conf # 启动nginx
检查下nginx 是否正确运行。
下面来设置conf/nginx.conf
1 | rtmp { |
上面看的到支持了hls、flv。实现了两个服务:本地播放流媒体和接受推流、被拉流的功能。
推流: ffmpeg -re -stream_loop -1 -i 222.mp4 -c:v libx264 -c:a aac -f flv rtmp://10.221.55.4/live/test
拉流: rtmp://10.211.55.4/live/test
然后砸门往 /opt/video/vod/1.mp4 放了个mp4.
拉流 rtmp://10.211.55.4/vod/1.mp4
当然域名yourdomain.com 可以写进主机hosts 里面,这样就可以真实环境测试了。
比如拉流: rtmp://yourdomain.com/flv?app=live&stream=test
播放MP4: rtmp://yourdomain.com/vod/1.mp4
最后一个: 权限控制
控制播放权限:
on_play http://localhost:9000/onPlay;
on_publish http://localhost:9000/onPublish;
上面这两个会调用本地权限验证,如果返回200则开始播放、返回非200 则失败。
以上完成这次的任务。