NRM - 环境搭建
NRM(Nginx-rtmp-module) 的出现,使得很多非专业的流媒体开发工程师也可以简单、迅速地搭建流媒体服务器。
在 NRM 安装之前,首先要确保完成了 Nginx - 环境搭建 中的内容,然后再进行后续操作。
NRM 介绍
安装前的准备
下载 NRM
可以在 Github 中的 nginx-rtmp-module 项目仓库:https://github.com/arut/nginx-rtmp-module/releases 获取 nginx-rtmp-module 源码包。
至本文编写时,最新的 nginx-rtmp-module 稳定版本为 nginx-rtmp-module-1.2.1,下文也是用该版本的源码包 nginx-rtmp-module-1.2.1.tar.gz 进行安装。
将下载好的源码包 nginx-rtmp-module-1.2.1.tar.gz 放到准备好的 Nginx 源码目录(比如我的目录为 /root/nginx/)中,通过命令解压:
# git clone https://github.com/arut/nginx-rtmp-module
$ tar xzvf nginx-rtmp-module-1.2.1.tar.gz
$ mv nginx-rtmp-module-1.2.1 rtmp-module安装
进入 Nginx 源码目录(比如我的目录为 /root/nginx/nginx-1.18.0/),执行以下命令:
$ ./configure --add-module=/path/src/rtmp-module/
# My configure option
$ ./configure --add-module=/root/nginx/rtmp-module/ --prefix=/usr/local/nginx --with-http_ssl_module --pid-path=/var/run/nginx.pid --with-debug
$ make && sudo make install配置
修改配置文件
- 从原配置文件中拷贝一份作为新配置文件的模板: - $ cd /usr/local/nginx/conf/ $ cp nginx.conf live.conf
- 在新配置文件末尾加入以下内容: - rtmp { server { listen 1935; application mylive { live on; } } }
- 启用新配置文件: - ==1. Systemctl 工具配置(推荐)== - 修改系统服务脚本( - sudo vim /lib/systemd/system/nginx.service):- # 找到如下行 ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf # 修改为 ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/live.conf
- 重启 Nginx 服务使新配置生效: - [root@VM_0_6_centos conf]# sudo systemctl restart nginx
 - ==Service 工具配置== - 修改系统服务脚本( - vim /etc/init.d/nginx):- # 找到如下行 NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf" # 修改为 NGINX_CONF_FILE="/usr/local/nginx/conf/live.conf"
- 检查配置文件正确性: - [root@VM_0_6_centos conf]# service nginx configtest nginx: the configuration file /usr/local/nginx/conf/live.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/live.conf test is successful
- 重启 Nginx 服务使新配置生效: - [root@VM_0_6_centos conf]# service nginx restart Restarting nginx (via systemctl): [ OK ]
 
测试
使用 ffmpeg 推流
在服务器上使用 ffmpeg 向 Nginx-rtmp-module 服务进行推流:
ffmpeg -re -i xxx.flv -r 25 -b 1M -f flv rtmp://127.0.0.1:1935/url
# 示例:
ffmpeg -re -i Read_Book_852x480.flv -ar 22050 -f flv rtmp://127.0.0.1:1935/mylive/1
ffmpeg -re -stream_loop -1 -i Read_Book_1280x720.flv -vcodec libx264 -f flv rtmp://127.0.0.1:1935/mylive/1使用 VLC 拉流
使用可以连接到服务器的计算机打开 VLC 播放器进行拉流:
 
参考资料
- [1] 中国工信出版集团 《直播系统开发 基于 Nginx 与 Nginx-rtmp-module》