搭建本地nginx-rtmp服务,初体验rtmp推流、拉流
实验环境说明: ubuntu 16.04
进行本实验的前提:需要在ubuntu上搭建好ffmpeg环境,参考我的另一篇博文
ffmpeg编译过程经历的99八十一难
下面开始本文内容
PART1 编译安装带Nginx-rtmp-module的Nginx服务器
1 下载Nginx (Nginx从官网下载比较好,不要去github下)
上图是我下载的版本
2 下载Nginx-rtmp-module (github)
https://github.com/arut/nginx-rtmp-module
3 执行配置
4. Openssl下载 (github)
https://github.com/openssl/openssl
PS:官网 https://www.openssl.org
下了几个版本,实测多次都不行, make时候报错
来自网友网盘的openssl-1.0.2h , 实测OK
链接:https://pan.baidu.com/s/1lAZ9VgFUX6Nx72MYD1NmIQ
提取码:vuq5
下载后, 我取自己所需的openssl-1.0.2h.tar.gz即可。不参考其他资料。
./config --prefix=/usr/local/openssl-1.0.2h
make
make install
5. 下载安装好openssl后,再次进入到Nginx文件夹内进行编译
需要注意,下方 --add-module 和 --with-openssl 指定的是源码目录!
./configure --prefix=/usr/local/nginx-with-rtmp-module --add-module=/home/lmw/MINE/nginx-rtmp-module/nginx-rtmp-module-master --with-openssl=/home/lmw/MINE/openssl/openssl-1.0.2h
显示上图这些,就是配置正常。
make -j4
make install
最终如上图所示,安装正常
PART2 运行RTMP服务器
1 修改nginx配置文件,配置RTMP服务
vim.tiny conf/nginx.conf
#---------- my add : rtmp server config-----------
rtmp {
server{
listen 1935;
chunk_size 4000;
application live
{
live on;
allow play all;
}
}
}
#-------------------------------------------------
2 启动nginx
./sbin/nginx -c conf/nginx.conf
同时可见1935端口已经处于监听状态
3 推流拉流干起来:
ffplay rtmp://localhost/live/my_room_007
ffmpeg -re -i rtmp-test.flv -c copy -f flv rtmp://localhost/live/my_room_007
下面介绍下:视频传输基础知识、RTMP与RTSP比较、直播服务常规方案
本实验内我们使用ffmpeg的ffplay工具进行拉流播放,根据上面的介绍,针对RTMP流,我们也可以通过浏览器进行拉流播放。
PART3 运行HTTP服务器
虽然我们这里安装了nginx-rtmp模块,主要是当做rtmp服务器使用。
但是nginx也自带提供http服务,高并发网络编程是nginx大神神威的领域。
在不安装任何其他模块的情况下,安装nginx完毕后,
一般都是通过测试http服务来检测nginx是否安装正确的。
.