上一篇
RTMP服务器搭建,新手如何从零开始搭建自己的RTMP服务器?
- 云服务器
- 2025-12-13
- 4
搭建RTMP服务器主要用于实现低延迟的视频直播推流,适用于自建直播平台、内网监控或视频测试等场景,以下是详细的搭建步骤及配置说明,以常用的Nginx+RTMP模块为例,在Linux系统(如Ubuntu 20.04)中操作。

环境准备
- 系统要求:推荐Ubuntu 20.04/CentOS 7+,最低2核CPU、2GB内存,确保网络开放1935端口(RTMP默认端口)及8080端口(HTTPFLV可选)。
- 安装依赖:更新系统并安装编译工具及依赖库: sudo apt update && sudo apt install y buildessential libpcre3 libpcre3dev openssl libssldev
安装Nginx及RTMP模块
- 下载源码:获取Nginx及RTMP模块(以nginx1.18.0和nginxrtmpmodule为例): wget http://nginx.org/download/nginx1.18.0.tar.gz git clone https://github.com/arut/nginxrtmpmodule.git tar xzf nginx1.18.0.tar.gz
- 编译安装:进入Nginx目录,添加RTMP模块并编译: cd nginx1.18.0
./configure addmodule=../nginxrtmpmodule withhttp_ssl_module
make && sudo make install
安装路径默认为/usr/local/nginx。
配置RTMP服务
-
编辑配置文件:修改/usr/local/nginx/conf/nginx.conf,添加RTMP和HTTPFLV配置:

配置说明:

- application live:定义RTMP应用名称,推流时需匹配。
- record off:关闭录制,如需录制可改为record all并指定路径。
- HTTPFLV配置需额外安装nginxhttpflvmodule,实现浏览器低延迟播放。
-
启动服务:执行以下命令启动Nginx并设置开机自启:
sudo /usr/local/nginx/sbin/nginx echo "sudo /usr/local/nginx/sbin/nginx" | sudo tee a /etc/rc.local sudo chmod +x /etc/rc.local - 推流地址:使用OBS等工具推流,地址格式为rtmp://服务器IP:1935/live/流密钥(流密钥可自定义)。
- 播放测试:
- VLC播放:打开VLC,选择“媒体”→“打开网络串流”,输入rtmp://服务器IP:1935/live/流密钥。
- HTTPFLV播放:使用http://服务器IP:8080/live?app=live&stream=流密钥,支持HTML5播放器(如video.js)。
推流与测试
常见问题排查
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 无法连接服务器 | 防火墙拦截1935端口 | sudo ufw allow 1935 |
| 推流成功但无画面 | RTMP应用名称不匹配 | 检查OBS推流地址中的live是否与配置一致 |
| 播放延迟高 | 未启用HTTPFLV或HLS | 配置HTTPFLV模块或HLS,降低chunk_size |
相关问答FAQs
Q1: 如何实现多码率自适应直播?
A: 可通过Nginx的hls模块生成不同码率的.m3u8文件,或使用FFmpeg转码多路流后推送到不同application,再通过CDN分发实现多码率切换。
Q2: 服务器带宽不足时如何优化?
A: 可调整chunk_size参数(如改为8192)减少网络开销,或启用Nginx的gzip压缩视频流;同时限制单路推码率(如OBS中设置比特率≤2000Kbps)。