🗣 Wd提问: nginx流媒体服务器
🤖 Ai回答: 使用 Nginx 搭建流媒体服务器(主要是直播流媒体)是一个常见且高效的方案,但需要明确一点:Nginx 本身不是原生的流媒体服务器。它需要借助一个关键的第三方模块来实现流媒体功能。
核心解决方案:Nginx + nginx-rtmp-module
1、 nginx-rtmp-module:
* 这是让 Nginx 支持 RTMP (Real-Time Messaging Protocol) 协议的核心模块。
* RTMP 是 Adobe 开发的、广泛用于直播推流的协议(例如 OBS Studio 推流到服务器)。
* 该模块允许 Nginx 作为 RTMP 服务器接收推流,并可以将其转换为其他更易于在 Web 浏览器中播放的格式,最常用的是 HLS (HTTP Live Streaming)。
为什么选择这个方案?
* 高效 & 轻量: Nginx 本身以高性能、低资源消耗著称。
* 易集成: 利用 Nginx 强大的 HTTP 服务和反向代理能力,HLS 流可以直接通过标准的 HTTP 服务分发。
* 成熟稳定: `nginx-rtmp-module` 是社区广泛使用的成熟方案。
* 成本低: 开源免费。
* 适合场景: 主要用于中低并发的直播流媒体(如小规模直播、内部培训、监控推流),以及生成 HLS 点播。
核心功能与工作流程:
1、 接收 RTMP 推流:
* 广播软件(如 OBS Studio, XSplit, FFmpeg)通过 RTMP 协议将音视频流推送到 `nginx-rtmp-module` 监听的端口(通常是 `1935`)。
* 推流地址通常类似:`rtmp://your-nginx-server:1935/appname/streamkey`
* `appname`: 在 Nginx 配置中定义的 RTMP application 名称(如 `live`, `hls`)。
* `streamkey`: 推流密钥,用于区分不同流(如 `mystream`)。
2、 转换为 HLS (最常见):
* `nginx-rtmp-module` 会将接收到的 RTMP 流实时切片,生成 `.ts` (MPEG-TS) 视频片段文件和 `.m3u8` (播放列表) 文件。
* 这些文件存储在 Nginx 配置指定的目录中(如 `/var/www/hls`)。
* HLS 的优势: 基于 HTTP,防火墙友好;支持自适应码率(需要额外配置多码率流);被所有现代浏览器和移动设备原生支持(通过 `<video` 标签或 JS 播放器如 `hls.js`, `video.js`)。
3、 通过 HTTP 分发 HLS:
* Nginx 的 `http` 模块(标准功能)负责将生成的 `.m3u8` 和 `.ts` 文件作为静态文件提供服务。
* 播放器(Web 页面、手机 App、VLC)通过标准的 HTTP(S) 请求访问 HLS 播放列表:`http://your-nginx-server/hls/streamkey.m3u8`
搭建步骤概览:
1、 安装依赖:
* 确保系统有编译环境 (`build-essential`, `libpcre3-dev`, `zlib1g-dev`, `libssl-dev` 等)。
* 下载 Nginx 源码包。
* 下载 `nginx-rtmp-module` 源码。
2、 编译安装 (关键!):
* 必须从源码编译 Nginx,并在 `./configure` 时指定 `add-module=/path/to/nginx-rtmp-module`。
* 不能使用包管理器(如 `apt`, `yum`)安装的默认 Nginx,因为它没有包含这个模块。
* 示例命令:
bash
安装依赖 (Ubuntu/Debian)
sudo apt update
sudo apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev
下载 Nginx (替换为最新稳定版)
wget http://nginx.org/download/nginx-1.24.0.tar.gz
tar -zxvf nginx-1.24.0.tar.gz
下载 nginx-rtmp-module
git clone https://github.com/arut/nginx-rtmp-module.git
进入 Nginx 源码目录
cd nginx-1.24.0
配置 (关键:添加模块)
./configure add-module=../nginx-rtmp-module with-http_ssl_module
编译安装
make
sudo make install
3、 配置 Nginx:
* 修改 Nginx 主配置文件 (通常位于 `/usr/local/nginx/conf/nginx.conf` 或 `/etc/nginx/nginx.conf`)。
* 关键配置部分: 在 `http { ..、}` 外部添加 `rtmp { ..、}` 块。
* 示例配置:
nginx
全局配置 (http 内)
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
用于提供 HLS 流的 server 块
server {
listen 80;
server_name localhost;
指定 HLS 文件存放目录 (与 rtmp 中 hls_path 一致)
location /hls {
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root /var/www; 实际路径是 /var/www/hls
add_header Cache-Control no-cache;
允许跨域访问 (重要!如果前端页面与流媒体不在同一域名)
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Expose-Headers' 'Content-Length';
}
可选:提供简单的播放测试页面
location /test {
root /var/www;
index index.html;
}
}
}
RTMP 服务器配置 (核心!必须在 http 外)
rtmp {
server {
listen 1935; RTMP 默认端口
chunk_size 4096;
定义一个 application (如 live)
application live {
live on; 启用直播
将 RTMP 流转换为 HLS
hls on;
hls_path /var/www/hls; HLS 文件存储路径
hls_fragment 3s; 每个 .ts 片段长度 (秒)
hls_playlist_length 30s; m3u8 播放列表保留的时长 (秒)
可选:录制功能
record all;
record_path /var/www/recorded;
record_suffix -%d-%b-%y-%T.flv;
可选:推流鉴权 (简单示例,实际应用需要更安全)
on_publish http://localhost/auth;
}
可选:另一个 application 用于点播 (VOD)
application vod {
play /var/www/vod; 存放 .flv/.mp4 文件的目录
}
}
}
4、 创建目录并设置权限:
bash
sudo mkdir -p /var/www/hls
sudo chown -R www-data:www-data /var/www/hls 假设 Nginx 运行用户是 www-data
5、 启动/重载 Nginx:
bash
sudo /usr/local/nginx/sbin/nginx 启动 (如果之前没运行过)
sudo /usr/local/nginx/sbin/nginx -s reload 重载配置 (已运行)
6、 测试:
* 推流: 在 OBS Studio 中:
* 服务:自定义
* 服务器:`rtmp://your-server-ip:1935/live`
* 流密钥:`mystream` (或你配置的 streamkey)
* 播放:
* 浏览器访问:`http://your-server-ip/hls/mystream.m3u8` (通常需要 JS 播放器,直接打开可能不播放)。
* 最佳测试: 使用 `hls.js` 在网页中播放。创建一个简单的 `index.html` 放在 `/var/www/test/`:
html
<!DOCTYPE html
<html
<head
<titleNginx RTMP HLS Test</title
📣 商家广告:





0
IP地址: 165.13.84.126
搜索次数: 0
提问时间: 2025-11-11 01:11:27
🛒 域名购买:
xq.gs
z-o.net
15.gold
84.gold
afuncard.com
815.red
53.biz
797.net.cn
46.hk
858.net.cn
❓️ 热门提问:
ip配色
git下载
freevector设计网站
app网站开发
上海高防服务器
好听的域名
域名是网站吗
虚拟主机与空间
云服务器云主机 vps
域名注册VPS服务器
豌豆Ai站群搜索引擎系统
🌐 域名评估:
pdwd.cn
su8.tj.cn
ev.xz.cn
axow.cn
e-j.com.cn
360.com
saweb.com
gufz.cn
nxak.cn
vtol.sh.cn
⛏ 最新挖掘:
凯里酸汤鱼
贵阳烤脑花
都匀毛尖茶
花溪牛肉粉
贵阳烤生蚝
贵阳烤豆腐
贵阳纸包鱼
贵阳特色菜
🖌 热门作画:
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊:
🔗 友情链接:
サーチエンジンツール
虚拟主机购买
ai提问
🧰 站长工具:
Ai工具 whois查询 搜索
📢 温馨提示:本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持:本站由豌豆Ai提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。