Windows下Nginx需借助nginx-rtmp-module实现RTMP支持,推荐使用预编译的nginx-rtmp-win32包;配置rtmp块监听1935端口、启用live应用及HLS输出,并在http块中配置/hls路径以支持HTTP播放。

Windows 下 Nginx 本身不原生支持 RTMP 协议,需借助第三方模块 nginx-rtmp-module 编译集成。由于官方 Nginx for Windows 仅提供 HTTP/HTTPS 支持,直接下载的二进制包不含 RTMP 功能,因此必须使用已编译好 RTMP 模块的 Windows 兼容版本(如 nginx-win 或社区维护的 nginx with rtmp)。
获取带 RTMP 模块的 Windows 版 Nginx
推荐使用成熟打包版本,避免自行编译(Windows 下编译依赖 MSVC、Perl、OpenSSL 等,过程复杂且易出错):
- 访问 https://github.com/illuspas/nginx-rtmp-win32 下载预编译的 nginx-rtmp-win32 包(含 1.20.x / 1.24.x 等主流版本)
- 解压后检查
conf/nginx.conf中是否存在rtmp{...}块,以及objs/nginx.exe能否正常启动 - 运行
start nginx.exe后,用tasklist /fi "imagename eq nginx.exe"确认进程存在
基础 RTMP 推流与播放配置
在 nginx.conf 的 http 块之外(通常在文件末尾),添加 rtmp 配置段:
将提醒同步至 Windows/Outlook 日历。用户提及「提醒我」「设置提醒」「加到日历」「同步到日历」「日程」「calendar」「日历」时触发。支持Microsoft Graph API 设备代码流认证,无需 Web 服务器,直接写入用户 Outlook 日历。
- 定义 RTMP 服务器监听地址和端口(默认
1935,需确保防火墙放行) - 配置一个应用(application),例如
live,启用live模式支持多观众观看同一推流 - 可选开启
record自动录制,或hls输出 HLS 切片供网页播放
示例片段:
rtmp {server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
hls on;
hls_path html/hls;
hls_fragment 5s;
}
}
}
HTTP 层配置 HLS 播放支持
RTMP 推流生成的 HLS 文件(.m3u8 和 .ts)需通过 HTTP 提供服务,因此要在 http 块中补充静态文件服务配置:
- 确保
html/hls/目录存在且 Nginx 进程有写入权限 - 在
server块中添加location /hls { types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } root html; add_header Cache-Control no-cache; } - 重启 Nginx 后,可用 VLC 打开
http://localhost/hls/stream1.m3u8(若推流 key 为 stream1)测试播放
推流与调试常用方法
使用 OBS、FFmpeg 或 vlc 推流验证是否生效:
- OBS 设置:推流地址
rtmp://localhost/live,流密钥填stream1(即live/stream1) - FFmpeg 命令行推摄像头:
ffmpeg -f dshow -i video="Integrated Camera" -c:v libx264 -preset fast -f flv rtmp://localhost/live/stream1 - 查看 Nginx 日志
logs/error.log,关注是否有client connected、publishing、play等关键词 - 访问
http://localhost/stat(需启用rtmp_stat模块并配置statlocation)可实时查看连接与流状态

















