Nginx RTMP 流媒体服务器:从编译到推流配置的完整指南 Nginx RTMP 流媒体服务器从编译到推流配置的完整指南【免费下载链接】nginx-rtmp-moduleNGINX-based Media Streaming Server项目地址: https://gitcode.com/gh_mirrors/ng/nginx-rtmp-modulenginx-rtmp-module 让标准 Nginx 变成一台 Nginx RTMP 流媒体服务器接收 RTMP 推流、分发直播流并可实时转封装成 HLS 分片。按本文走一遍你能独立完成模块编译集成与最小可用的 RTMP 推流、HLS 播放配置。为什么需要它中小项目里最常见的两类需求一是接收推流端打来的 RTMP 流并转成 HLS 给 Web/移动端播放二是把直播流转封装成 m3u8 ts 分片借助 Nginx 本身做高并发分发。两者都不需要再额外部署一台独立流媒体服务器一个 Nginx 进程就能全部承担。环境准备Linux 系统CentOS / Ubuntu / Debian 均可已安装 gcc、make 及 pcre、zlib、openssl 开发库一份 Nginx源码包源码编译版非 yum/apt 装好的二进制包且版本与你的系统库兼容已下载本模块源码git clone 仓库https://gitcode.com/gh_mirrors/ng/nginx-rtmp-module 编译集成步骤模块以--add-module参数在 configure 阶段注入这是整条流程里最关键的一步路径必须指向模块根目录即含config文件的那一层cd /usr/local/src/nginx-版本号 ./configure --prefix/usr/local/nginx \ --add-module/usr/local/src/nginx-rtmp-module make make install--add-module路径写错或缺config文件时configure 会直接报错先检查目录层级若之前编译过其他模块configure 里原有参数照旧保留--add-module追加即可make install会覆盖旧二进制建议先cp备份sbin/nginx最小 RTMP 配置改nginx.conf只保留live推流和hls转封装两个 applicationrtmp { server { listen 1935; chunk_size 4096; application live { allow publish 127.0.0.1; deny publish all; live on; } application hls { live on; hls on; hls_path /var/www/hls; hls_fragment 10s; } } }listen 1935RTMP 服务端口推流地址即rtmp://主机:1935/live/流名chunk_size 4096RTMP 交互块大小减少握手开销默认即可allow publish 127.0.0.1; deny publish all只放行本机推流上线后把白名单 IP 换成真实推流端地址hls_pathts 分片与 m3u8 的落地目录Nginx worker 所属用户对它必须可写提前mkdir -p建好hls_fragment 10s单个 ts 片段的时长直播场景 10s 左右较常见HLS 文件还要能被浏览器请求到在http块补一个 locationhttp { server { listen 8080; location /hls { root /var/www; types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } add_header Cache-Control no-cache; } } }root /var/www配合hls_path /var/www/hls播放地址即http://主机:8080/hls/流名.m3u8types两个 MIME 类型必须写全否则部分播放器会拒播验证与上线⚠️ 改完配置先-t校验通过后再 reload切忌直接重启/usr/local/nginx/sbin/nginx -t /usr/local/nginx/sbin/nginx -s reload ss -lnp | grep 1935nginx -t输出syntax is ok / test is successful才说明语法通过ss输出里出现1935端口监听即 RTMP 服务已就绪用推流端试推rtmp://127.0.0.1:1935/live/test随后看/var/www/hls下是否生成test.m3u8和 ts 片段常见问题推流被拒NetStream 报 permission / 拒绝连接先看两处allow publish的白名单 IP 与推流端出口 IP 是否一致error.log里的拒绝记录。allow/deny 按书写顺序逐条匹配allow 必须写在 deny 前面。HLS 请求 404按顺序排查流是否正在推不推流就不会有 m3u8 生成hls_path目录是否可写HTTP location 的root与types是否与上文一致。1935 端口被占用执行ss -lnp | grep 1935找到占用进程停掉旧的 Nginx/媒体服务或在rtmp server块里改listen到其他空闲端口。结语编译一次、配置两段你就有了一台能收流、能分发的 Nginx RTMP 流媒体服务器。更多指令细节可查仓库doc/README.md遇到问题可以到 nginx-rtmp 官方讨论组求助。【免费下载链接】nginx-rtmp-moduleNGINX-based Media Streaming Server项目地址: https://gitcode.com/gh_mirrors/ng/nginx-rtmp-module创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

最新新闻

工程车辆数据集实战:基于YOLOv8的目标检测全流程解析

工程车辆数据集实战:基于YOLOv8的目标检测全流程解析

简介:目标检测是计算机视觉的核心任务之一,旨在识别图像中的物体并定位其位置。其原理通常基于深度学习模型,通过卷积神经网络提取特征,并预测边界框和类别。这项技术在智慧城市、工业自动化等领域具有重要价值,尤其在…

2026/8/28 16:55:19
消除AI痕迹用什么工具?2026年五款实测梳理

消除AI痕迹用什么工具?2026年五款实测梳理

毕业论文提交前被检测出AI痕迹,是不少研究生和本科生都遇到过的坎。改到凌晨两三点,系统还是标红,那种无力感确实磨人。市面上宣称能"消除AI痕迹"的工具不少,但真正经得起检测模型推敲的并不多。本文从实际使用角度&…

2026/8/28 16:55:19
Segment Anything Model (SAM) 实战指南:从零样本分割到自定义场景微调

Segment Anything Model (SAM) 实战指南:从零样本分割到自定义场景微调

简介:图像分割是计算机视觉的核心任务之一,旨在将图像划分为具有特定意义的区域。其原理在于通过模型学习像素间的语义关联,从而精确识别并勾勒出目标对象的轮廓。这项技术的价值在于为图像理解提供了像素级的解析能力,是自动驾驶…

2026/8/28 16:55:19
消除AI痕迹用哪款?2026年五款工具清单实测

消除AI痕迹用哪款?2026年五款工具清单实测

毕业论文送审季一到,知网、维普的AIGC检测功能让不少学生慌了神——提交的论文被标出高比例AI生成内容,轻则退回修改,重则影响毕业资格。消除AI痕迹成了论文修改阶段的刚需,市面上号称能解决这个问题的工具也越来越多。本文从实际…

2026/8/28 16:55:19
基于Fashion-MNIST的服装图像分类实战:从CNN构建到模型部署全流程详解

基于Fashion-MNIST的服装图像分类实战:从CNN构建到模型部署全流程详解

简介:卷积神经网络作为计算机视觉领域的核心技术,通过卷积核自动提取图像的空间层次特征,其核心原理在于局部连接与权值共享,极大减少了模型参数量。这一技术价值在于能够高效处理图像、视频等高维数据,在图像分类、目…

2026/8/28 16:55:19
数位DP精解:从二进制问题到通用框架,掌握记忆化搜索与递推

数位DP精解:从二进制问题到通用框架,掌握记忆化搜索与递推

1. 项目概述:从一道蓝桥杯国赛题看数位DP的精髓 最近在复盘蓝桥杯国赛真题,特别是C B组(cb组)的题目时,一道关于“二进制问题”的题目让我印象深刻。它不像传统的动态规划那样直接,而是将问题巧妙地嵌套在“…

2026/8/28 16:50:19