豌豆Ai站群搜索引擎系统 V.25.10.25 网址:www.wd.chat

🗣 Wd提问: nginx搭建流媒体服务器

🤖 Ai回答:
使用 Nginx 搭建流媒体服务器,通常需要借助 nginx-rtmp-module 模块来支持 RTMP 协议,同时也可以结合 HLS(HTTP Live Streaming)实现跨平台播放。以下是详细步骤:

✅ 一、环境准备

Linux 系统(推荐 Ubuntu/CentOS)
编译工具:gcc、make、git
依赖库:openssl、pcre、zlib
Nginx 源码(建议最新稳定版)
nginx-rtmp-module 源码

✅ 二、安装依赖

Ubuntu/Debian:

bash
sudo apt update
sudo apt install build-essential libpcre3 libpcre3-dev zlib1g-dev libssl-dev git

CentOS/RHEL:

bash
sudo yum groupinstall Development Tools
sudo yum install pcre pcre-devel zlib zlib-devel openssl openssl-devel git

✅ 三、下载源码

bash
cd /tmp

下载 Nginx(以 1.24.0 为例)
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 + RTMP 模块

bash
cd nginx-1.24.0

./configure prefix=/usr/local/nginx \
with-http_ssl_module \
add-module=../nginx-rtmp-module \
with-http_flv_module \
with-http_mp4_module

make && sudo make install

⚠️ 注意路径:确保 `add-module=../nginx-rtmp-module` 路径正确。

✅ 五、配置 Nginx 支持 RTMP 和 HLS

编辑配置文件:

bash
sudo nano /usr/local/nginx/conf/nginx.conf

在文件末尾添加以下内容:

nginx
RTMP 配置块
rtmp {
server {
listen 1935; RTMP 默认端口
chunk_size 4096;

application live {
live on;
record off;

启用 HLS
hls on;
hls_path /tmp/hls;
hls_fragment 3s;
hls_playlist_length 10s;

可选:允许跨域访问 HLS
allow publish all;
allow play all;
}
}
}

HTTP 服务用于播放 HLS
http {
include mime.types;
default_type application/octet-stream;

sendfile on;
keepalive_timeout 65;

server {
listen 8080; HLS 访问端口
server_name localhost;

location /hls {
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root /tmp; 对应 hls_path
add_header Cache-Control no-cache;
add_header Access-Control-Allow-Origin *;
}

可选:状态页
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}

location /stat.xsl {
root /tmp/nginx-rtmp-module/; 替换为你的模块路径
}
}
}

📌 注意:
`hls_path` 必须存在且有写权限:`sudo mkdir -p /tmp/hls && sudo chmod 755 /tmp/hls`
如果要启用状态页,需复制 `stat.xsl` 文件到指定目录:
bash
sudo cp /tmp/nginx-rtmp-module/stat.xsl /tmp/nginx-rtmp-module/


✅ 六、启动 Nginx

bash
sudo /usr/local/nginx/sbin/nginx

检查是否启动成功:

bash
ps aux | grep nginx
netstat -tlnp | grep :1935
netstat -tlnp | grep :8080

重启或重载配置:

bash
sudo /usr/local/nginx/sbin/nginx -s reload
sudo /usr/local/nginx/sbin/nginx -s stop

✅ 七、推流与播放测试

1、推流(使用 OBS 或 ffmpeg)

OBS 设置:
串流类型:自定义
服务器:`rtmp://your-server-ip/live`
串流密钥:`test` (任意)

FFmpeg 命令行推流示例:

bash
ffmpeg -re -i input.mp4 -c:v libx264 -c:a aac -f flv rtmp://localhost/live/test

2、播放

RTMP 播放器(如 VLC):

rtmp://your-server-ip/live/test


HLS 播放(浏览器或支持 HLS 的播放器):

http://your-server-ip:8080/hls/test.m3u8


🎬 推荐前端播放器:[hls.js](https://github.com/video-dev/hls.js)、[video.js + videojs-contrib-hls](https://github.com/videojs/videojs-contrib-hls)

✅ 八、进阶功能(可选)

录制直播流:

nginx
record all;
record_path /tmp/recordings;
record_suffix -%Y%m%d-%H%M%S.flv;


转码多码率(需 FFmpeg 支持):

nginx
application src {
live on;
exec ffmpeg -i rtmp://localhost/src/$name
-c:v libx264 -b:v 512k -s 640x360 -f flv rtmp://localhost/hls/$name_low
-c:v libx264 -b:v 1024k -s 1280x720 -f flv rtmp://localhost/hls/$name_high;
}


身份验证、限制推流 IP

✅ 九、常见问题

1、端口被占用?
bash
sudo lsof -i :1935
sudo kill -9 <PID


2、HLS 不生成?
检查 `/tmp/hls` 是否有写入权限。
检查推流是否成功(看日志 `/usr/local/nginx/logs/error.log`)。

3、防火墙阻止?
bash
sudo ufw allow 1935/tcp
sudo ufw allow 8080/tcp


✅ 十、开机自启(可选)

创建 systemd 服务:

bash
sudo nano /etc/systemd/system/nginx-rtmp.service

内容:

ini
[Unit]
Description=NGINX RTMP Server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

启用服务:

bash
sudo systemctl daemon-reload
sudo systemctl enable nginx-rtmp
sudo systemctl start nginx-rtmp

✅ 总结

通过以上步骤,你已成功搭建了一个支持 RTMP 推流 + HLS 播放 的流媒体服务器。适用于直播、在线教育、监控等场景。

💡 提示:生产环境建议使用专业流媒体服务(如 SRS、Wowza、Nimble Streamer)或云服务(阿里云直播、腾讯云直播),性能和稳定性更佳。

如需支持 DASH、WebRTC、集群部署等高级功能,可进一步集成 `nginx-ts-module`、`SRS` 或使用 `Node-Media-Server` 等方案。

如有具体问题,欢迎继续提问!🎥🚀

Ai作答

📣 商家广告


高防vps

广告招商

香港vps

广告招商

广告招商


0

IP地址: 84.165.62.72

搜索次数: 95

提问时间: 2025-11-20 10:01:23

🛒 域名购买

❓️ 热门提问

🌐 域名评估

最新挖掘

🖌 热门作画

🤝 关于我们

🗨 加入群聊

🔗 友情链接

🧰 站长工具
📢

温馨提示

本站所有 问答 均由Ai自动分析整理,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。

👉

技术支持

本站由 🟢 豌豆Ai 提供技术支持,使用的最新版: 豌豆Ai站群搜索引擎系统 V.25.10.25 搭建本站。

上一篇 82593 82594 82595 下一篇