windows安装Nginx的rtmp

老刘

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端口。按下面操作:

  1. 打开“Windows Defender 防火墙”→“高级设置”。
  2. 左侧点“入站规则”→右侧“新建规则”。
  3. 选择“端口”→下一步→TCP→特定本地端口填1935
  4. 允许连接→全部勾选→名称随便写“Nginx RTMP”。
  5. 如果还要用HTTP看HLS或状态页,同样再加一条80或8080端口的规则。

公司或学校网络可能还有额外限制,本地测试一般没问题。

五、推流和播放测试

用OBS Studio测试最方便。

  1. 打开OBS,点击“设置”→“推流”。
  2. 服务选择“自定义”。
  3. 服务器填:rtmp://127.0.0.1/live
  4. 串流密钥随便填一个,比如test
  5. 点“确定”,然后开始推流。

推流成功后,播放地址就是:

  • 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

六、常见问题和注意事项

  1. 启动后黑窗口一闪就没了:多半是配置文件写错了。看logs目录下的error.log,里面会有具体报错行号。
  2. 推流连不上:先确认nginx进程在跑,再检查防火墙和端口是否被占用。用netstat -ano | findstr 1935看端口有没有被监听。
  3. Windows版有功能限制:不支持exec指令(没法自动调用FFmpeg转码)、不支持static pull和auto_push。需要这些高级功能建议上Linux或者用Docker跑。
  4. 路径问题:配置里写绝对路径时,用D:/nginx-rtmp/temp/hls这种写法,避免单反斜杠被转义。
  5. 权限问题:有些杀毒软件会拦截nginx.exe,临时加入信任即可。
  6. 开机自启:可以用nssm工具把nginx.exe注册成Windows服务,以后开机自动跑。

七、进阶小建议

本地测试通过后,如果想对外网推流,记得做端口映射,或者直接放到有公网IP的机器上。正式环境建议把allow publish all;改成具体IP,或者配合on_publish做鉴权。

HLS切片路径如果磁盘空间紧张,可以定期清理temp/hls下的文件。长时间跑直播的话,把日志级别调低一点,避免logs目录暴涨。

整套流程做完,基本就能在Windows上稳定跑起一个可用的RTMP服务了。按照上面步骤一步一步来,大多数人十几分钟就能搞定。

文章版权声明:文章内容均来源于各大短视频平台搜集以及修改和删减新增,如有侵权或者违规,请联系站长进行删除,如需转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
验证码
评论列表 (暂无评论,1人围观)

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

目录[+]