Windows安装Nginx的RTMP模块完整教程
很多朋友想在Windows电脑上搭一个简单的直播推流服务器,用来测试OBS推流、本地录像回放,或者做小型私有直播。官方Nginx本身不带RTMP功能,直接下载官方Windows版也用不了RTMP。最省事的办法就是用别人已经编译好的带nginx-rtmp-module的版本,不用自己折腾编译环境。
下面按步骤把整个过程写清楚,适合第一次接触的朋友跟着做。
一、先下载现成的Windows版Nginx-RTMP
Windows下自己编译Nginx加RTMP模块比较麻烦,需要装Visual Studio、各种依赖库,新手很容易卡住。社区里已经有现成的二进制包,直接下载解压就能用。
推荐几个常用的:
- illuspas/nginx-rtmp-win32:老牌版本,Nginx 1.14.1 + RTMP 1.2.1,用的人最多,稳定。
- iliweii/nginx-rtmp-win64:较新的64位版本,Nginx 1.28.1,静态编译,不用额外装运行库。
- ShiYioo/nginx-rtmp-win:也是较新的预编译包。
打开浏览器搜索对应GitHub仓库名,进入Releases页面,下载最新的zip压缩包。下载后解压到一个纯英文路径,比如D:\nginx-rtmp或者C:\nginx-rtmp。路径里尽量不要出现中文和空格,后面配置文件写路径时不容易出错。
解压后你会看到nginx.exe、conf文件夹、html文件夹、logs文件夹、temp文件夹这些内容。nginx.exe就是主程序。
二、修改配置文件,开启RTMP
用记事本或者Notepad++打开conf\nginx.conf文件。
找到http { ... }这一大块的外面(也就是和http同级的位置),加上下面这段RTMP配置:
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
# 允许所有人推流(测试用,正式环境建议限制IP)
allow publish all;
allow play all;
# 如果需要HLS切片,打开下面几行
hls on;
hls_path temp/hls;
hls_fragment 3s;
hls_playlist_length 10s;
}
}
}
注意几点:
listen 1935;是RTMP默认端口,一般不用改。application live里的live就是推流地址里的应用名,后面测试时要用到。- 如果开启了HLS,记得在
temp目录下手动新建一个hls文件夹,否则可能写不进去切片。 - Windows路径用正斜杠
/或者双反斜杠\\都可以,上面用的是相对路径temp/hls,比较简单。
保存文件后,如果原来的http部分监听的是80端口,可以改成8080,避免和本地其他程序冲突。很多预编译包已经默认监听8080,并且自带了/stat状态页面,打开浏览器访问http://localhost:8080/stat就能看到当前推流情况。
三、启动Nginx
打开命令提示符(按Win+R,输入cmd回车),进入Nginx所在目录:
cd /d D:\nginx-rtmp
然后执行:
start nginx.exe
或者直接双击nginx.exe。启动成功后,任务管理器里会出现nginx.exe进程(一般是一个主进程加几个工作进程)。
停止服务用:
nginx.exe -s stop
重新加载配置(改完配置后不用完全关掉):
nginx.exe -s reload
查看版本:
nginx.exe -v
四、防火墙放行端口
Windows防火墙默认会拦1935端口。按下面操作:
- 打开“Windows Defender 防火墙”→“高级设置”。
- 左侧点“入站规则”→右侧“新建规则”。
- 选择“端口”→下一步→TCP→特定本地端口填
1935。 - 允许连接→全部勾选→名称随便写“Nginx RTMP”。
- 如果还要用HTTP看HLS或状态页,同样再加一条80或8080端口的规则。
公司或学校网络可能还有额外限制,本地测试一般没问题。
五、推流和播放测试
用OBS Studio测试最方便。
- 打开OBS,点击“设置”→“推流”。
- 服务选择“自定义”。
- 服务器填:
rtmp://127.0.0.1/live - 串流密钥随便填一个,比如
test。 - 点“确定”,然后开始推流。
推流成功后,播放地址就是:
- RTMP播放:
rtmp://127.0.0.1/live/test - 如果开了HLS:
http://127.0.0.1:8080/hls/test.m3u8(端口按你配置的改)
可以用VLC、PotPlayer或者浏览器里的flv.js、hls.js播放。很多预编译包自带html测试页面,直接打开http://localhost:8080就能看到。
也可以用FFmpeg推流测试:
ffmpeg -re -i 你的视频文件.mp4 -c copy -f flv rtmp://127.0.0.1/live/test
六、常见问题和注意事项
- 启动后黑窗口一闪就没了:多半是配置文件写错了。看logs目录下的error.log,里面会有具体报错行号。
- 推流连不上:先确认nginx进程在跑,再检查防火墙和端口是否被占用。用
netstat -ano | findstr 1935看端口有没有被监听。 - Windows版有功能限制:不支持exec指令(没法自动调用FFmpeg转码)、不支持static pull和auto_push。需要这些高级功能建议上Linux或者用Docker跑。
- 路径问题:配置里写绝对路径时,用
D:/nginx-rtmp/temp/hls这种写法,避免单反斜杠被转义。 - 权限问题:有些杀毒软件会拦截nginx.exe,临时加入信任即可。
- 开机自启:可以用nssm工具把nginx.exe注册成Windows服务,以后开机自动跑。
七、进阶小建议
本地测试通过后,如果想对外网推流,记得做端口映射,或者直接放到有公网IP的机器上。正式环境建议把allow publish all;改成具体IP,或者配合on_publish做鉴权。
HLS切片路径如果磁盘空间紧张,可以定期清理temp/hls下的文件。长时间跑直播的话,把日志级别调低一点,避免logs目录暴涨。
整套流程做完,基本就能在Windows上稳定跑起一个可用的RTMP服务了。按照上面步骤一步一步来,大多数人十几分钟就能搞定。

还没有评论,来说两句吧...