nginx-rtmp-module 完整指南:快速搭建自己的 RTMP 直播服务器
nginx-rtmp-module 完整指南快速搭建自己的 RTMP 直播服务器【免费下载链接】nginx-rtmp-moduleNGINX-based Media Streaming Server项目地址: https://gitcode.com/gh_mirrors/ng/nginx-rtmp-modulenginx-rtmp-module 是一个可编译进 nginx 的 C 语言扩展模块它把 nginx 变成一台 RTMP 流媒体服务器支持直播推流与多端播放、HLS 切片分发和自动录像。本文带你从零跑通最小可用环境。 它能帮你做什么一个模块就能在你的机器上跑起一台轻量直播服务器典型用法有三种。直播分发一个主播推流多个观众同时播放同一路流就像电视频道一样。这是该模块最核心的TV 模式一条live on就能开启。移动端分发把 RTMP 直播流转成 HLS面向互联网的切片分发协议的 m3u8 播放列表加 ts 分片iPhone、Android 播放器都能直接播放。录像回放把推上来的流按 FLV 格式自动录到磁盘适合直播存档和事后回放。这是官方测试播放页test/www 下 JWPlayer 页面的背景图流打通后播放器里就会播放实时画面。安装前准备环境与依赖准备很简单一台 Linux、一套编译器、一份 nginx 源代码。操作系统推荐 Linux模块也支持 macOS 和 FreeBSDWindows 支持有限exec、静态拉流等功能不可用。编译器gcc 和 make绝大多数发行版自带或包管理器里就有。nginx 源代码这个模块只能编译进 nginx不是独立程序也没有单独的安装包。你需要一份 nginx 源码包并解压。ffmpeg / ffplay仅用于后文推流、拉流验证可选用包管理器装即可。验证环境就绪运行gcc --version和make --version两条命令都能打印版本号就可以继续。⚠️ 不要试图用 yum 或 apt 直接安装 nginx-rtmp-module仓库里没有系统包必须走源码编译。安装步骤编译与安装整个安装就是三步克隆模块、配置编译、安装。先把模块源码克隆下来再进入 nginx 源码目录用--add-module把模块路径传给 configure模块源码就会和 nginx 一起被编进去git clone https://gitcode.com/gh_mirrors/ng/nginx-rtmp-module cd /path/to/nginx-source # 进入你的 nginx 源码目录 ./configure --add-module/path/to/nginx-rtmp-module make make install成功的标志make结束无报错make install后在默认安装目录/usr/local/nginx下能看到bin/nginx可执行文件和conf/nginx.conf主配置。⚠️ 如果你用的是 1.3.14 到 1.5.0 这几个旧版本 nginxconfigure 要额外加--with-http_ssl_module否则编译会失败新版无需。最小可用配置最短的可运行配置就是 rtmp 块加几条 nginx 基础指令。打开安装目录下的主配置文件默认/usr/local/nginx/conf/nginx.conf补全为下面的内容worker_processes 1; events { worker_connections 1024; } rtmp { server { listen 1935; # RTMP 默认端口 application myapp { # 应用名推流地址里的 /myapp live on; # 开启直播间 } } }listen 1935是 RTMP 的默认端口application myapp里的名字会出现在推流地址rtmp://主机/myapp/流名中。后续想在线查看统计数据、加 HLS 分发可以参照测试样例配置 test/README.md 里的说明扩展。验证与排错常见坑怎么解决验证分三步先查语法再启动最后确认端口在监听。nginx -t # 检查配置语法 nginx # 启动已运行则用 nginx -s reload ss -lnt | grep 1935 # 确认 1935 在监听nginx -t输出syntax is ok / test is successfulss里能看到一行 1935 端口的监听记录说明服务端就绪。然后开两个终端一个推流、一个拉流ffmpeg -re -i ~/movie.avi -f flv rtmp://localhost/myapp/mystream ffplay rtmp://localhost/myapp/mystreamffplay 窗口里能正常播放影片整条链路就跑通了仓库的 test 目录里还有 rtmpdump 存流脚本可参考。高频坑端口冲突怎么办error.log 里出现bind() failed ... Address already in use说明 1935 被占。用ss -lntp | grep 1935查出占用进程停掉它或在配置里换一个端口。推流报 Connection refused通常是 nginx 没启动、或 rtmp 块没写进生效的配置里。先看 error.log再确认nginx -V输出里包含--add-module参数。HLS 的 m3u8 返回 404HLS 要求 hls_path 目录提前存在且要在 http 块里配好 location 对外提供分片另外推上来的流必须是 H264/AAC 编码否则切片不生成。至此你已经有了一台能推流、播放、录像的直播服务器。转码、推流中继等进阶玩法可对照 README.md 里的完整 nginx.conf 示例和 test/README.md 按需扩展。【免费下载链接】nginx-rtmp-moduleNGINX-based Media Streaming Server项目地址: https://gitcode.com/gh_mirrors/ng/nginx-rtmp-module创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考