宝塔linux 流媒体,配置nginx-rtmp流媒体服务器(宝塔面板配置教程)

参考文档:https://www.kancloud.cn/jiangguowu/kfjsdkfjskd/1209896

1.在宝塔面板中安装带nginx的服务器

79c812b6f7e94d3e9133b2691a18e585.jpg

2.在宝塔面板中卸载nginx(因为nginx-rtmp和nginx的配置不同,并且宝塔面板中不支持安装nginx-rtmp)

1ebd59a05e1d578bcf5a4de2f9a8a9c8.png

16e9e5d4e3e01799eba775f67622b3b7.png

3.开始预下载nginx

(1)进入~,输入命令cd ~

96843fc596668c815b48b18960ce4d86.png

(1.5)没有git请输入以下命令

yum -y install git

(2)开始下载nginx-rtmp

git clone https://github.com/arut/nginx-rtmp-module.git

(3)开始修改下载配置文件

vim /www/server/panel/install/nginx.sh

(4)在./configure后添加如下内容

162b06320ed8d4e8a74c3ed6806a4d78.png

--add-module=/root/nginx-rtmp-module

(5) wq 保存退出

26c052c9781cffc301462c7870e82b5b.png

(6)使用sh命令安装

5bec20ac842b474f0520443e801ba9ef.png

4推流配置

(1)新建网址

8075193821e74c55afceb63a2e7cede2.jpg

(2)在nginx.conf中填入以下配置

rtmp {

server {

listen 1935;

application live {

live on;

hls on;

hls_path /www/wwwroot/test.sshouxin.xyz;

}

}

}

location /stat {

rtmp_stat all;

rtmp_stat_stylesheet stat.xsl;

}

location /stat.xsl {

root /root/nginx-rtmp-module/;

}

location /live {

types {

application/vnd.apple.mpegurl m3u8;

video/mp2t ts;

}

root /www/wwwroot/test.sshouxin.xyz;

add_header Cache-Control no-cache;

add_header Access-Control-Allow-Origin *;

}

c1f4e2a11e813abffaff2051889c0229.png

ae6951fc7bf40f137d793b549447b30a.png

(2)重载配置和重启

090a5e1c1e2a3f1cf82b07e27a81908f.png

(3)使用推流软件(推拉流过程省略,如有需要,可以评论联系我,我可以再补个博文)

往rtmp://192.168.0.1.104:1935里面推流,就可以在test.sshouxin.xyz的网址目录找到文件,

<think>好的,用户现在想配置Nginx支持RTMP协议。我需要先理解RTMP是什么。RTMP是实时消息协议,常用于视频流传输,比如直播。要让Nginx支持RTMP,通常需要添加第三方模块,比如nginx-rtmp-module。 首先,用户可能已经安装Nginx,但默认情况下Nginx并不包含RTMP模块。所以用户需要重新编译Nginx,添加这个模块,或者通过包管理器安装带有RTMP模块的版本。比如,有些Linux发行版可能有现成的包,但用户可能需要自己编译。 接下来,我得考虑用户的环境。用户之前执行过一些命令,显示他们使用的是基于Linux的系统,可能CentOS或类似,因为路径里有/www/server/nginx,这可能是宝塔面板的目录结构。如果是宝塔面板安装Nginx,可能需要通过面板添加模块,或者重新编译。 用户可能需要指导如何检查现有Nginx是否已经编译了RTMP模块。可以通过nginx -V查看已安装的模块,看是否有--with-http_ssl_module和--add-module=../nginx-rtmp-module之类的参数。 如果用户需要重新编译,步骤大概是:下载Nginx源码和nginx-rtmp-module源码,配置编译参数,添加模块,然后make和make install。但需要注意,如果之前通过包管理器安装的,可能需要卸载或者处理依赖问题。 另外,用户可能不知道如何配置nginx.conf来启用RTMP服务。RTMP配置通常放在顶层,设置监听端口1935,application,以及相关的推流和拉流设置。还要考虑HLS切片,存储路径,访问权限等。 还要提醒用户防火墙设置,开放1935端口,检查SELinux是否阻止访问。可能需要配置防火墙规则,比如firewall-cmd --add-port=1935/tcp --permanent,然后重载防火墙。 测试阶段,用户可能需要使用推流工具如OBS,设置rtmp://服务器IP:1935/live/密钥,然后通过VLC等播放器拉流测试。需要确保配置正确,路径存在且有正确权限。 可能遇到的问题包括编译错误,模块路径不正确,配置语法错误,端口被占用或防火墙阻止,以及权限问题。需要指导用户查看Nginx的错误日志,帮助排查问题。 用户可能需要详细的步骤,包括安装依赖、下载源码、配置、编译、安装、修改配置文件、重启服务、测试等。同时,还要考虑是否使用TLS加密,是否开启HLS或其他功能,根据需求调整配置。 最后,总结配置步骤,强调关键点,比如模块编译、配置文件和测试方法,确保用户能一步步完成并验证。</think>--- ### **配置 Nginx 支持 RTMP 的完整流程** RTMP(Real-Time Messaging Protocol)是 Adobe 开发的实时音视频流传输协议,常用于直播场景。Nginx 通过第三方模块 `nginx-rtmp-module` 支持 RTMP,以下是详细配置步骤: --- #### **1. 安装依赖环境** 确保系统中已安装编译工具和依赖库(以 CentOS 为例): ```bash yum install -y gcc pcre-devel openssl-devel zlib-devel wget git ``` --- #### **2. 下载 Nginx 源码与 RTMP 模块** - **下载 Nginx 源码**: ```bash wget http://nginx.org/download/nginx-1.25.3.tar.gz tar -zxvf nginx-1.25.3.tar.gz cd nginx-1.25.3 ``` - **下载 RTMP 模块源码**: ```bash git clone https://github.com/arut/nginx-rtmp-module.git ``` --- #### **3. 编译并安装 Nginx** 配置编译参数时添加 RTMP 模块: ```bash ./configure \ --prefix=/usr/local/nginx \ --with-http_ssl_module \ --with-http_v2_module \ --with-http_flv_module \ --with-http_mp4_module \ --add-module=../nginx-rtmp-module make && make install ``` --- #### **4. 配置 RTMP 服务** 编辑 Nginx 配置文件 `/usr/local/nginx/conf/nginx.conf`,在 **全局层** 添加 RTMP 块: ```nginx # 在 http 块外部添加以下内容 rtmp { server { listen 1935; # RTMP 默认端口 chunk_size 4096; # 传输分片大小 application live { live on; # 启用直播模式 record off; # 关闭录制 allow publish all; # 允许所有推流 allow play all; # 允许所有播放 # 可选:启用 HLS 切片(用于 HTTP 流) hls on; hls_path /tmp/hls; # HLS 切片存储路径 hls_fragment 3s; # 切片时长 } } } ``` --- #### **5. 配置 HTTP 访问(可选)** 若需通过 HTTP 访问 HLS 流,在 `http` 块中添加: ```nginx server { listen 80; server_name localhost; location /hls { types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } root /tmp; # 对应 hls_path 的上级目录 add_header Cache-Control no-cache; } } ``` --- #### **6. 启动 Nginx 并验证** - **启动服务**: ```bash /usr/local/nginx/sbin/nginx ``` - **检查端口监听**: ```bash netstat -tulnp | grep 1935 ``` 预期输出: ```bash tcp 0 0 0.0.0.0:1935 0.0.0.0:* LISTEN PID/nginx ``` --- #### **7. 推流与拉流测试** - **推流(使用 OBS 或 FFmpeg)**: 推流地址:`rtmp://服务器IP:1935/live/自定义流密钥` 示例(FFmpeg): ```bash ffmpeg -re -i input.mp4 -c:v copy -c:a aac -f flv rtmp://192.168.1.100:1935/live/stream1 ``` - **拉流(RTMP 或 HLS)**: - RTMP 播放地址:`rtmp://服务器IP:1935/live/stream1` - HLS 播放地址:`http://服务器IP/hls/stream1.m3u8`(需启用 HLS 配置--- #### **8. 常见问题排查** 1. **端口冲突**: 确保 1935 端口未被其他进程占用。 2. **防火墙拦截**: ```bash # 放行端口(以 firewalld 为例) firewall-cmd --permanent --add-port=1935/tcp firewall-cmd --reload ``` 3. **SELinux 限制(仅限 CentOS/RHEL)**: ```bash # 临时关闭 SELinux setenforce 0 # 或添加规则允许端口 semanage port -a -t rtmp_port_t -p tcp 1935 ``` 4. **查看 Nginx 日志**: ```bash tail -f /usr/local/nginx/logs/error.log ``` --- ### **最终配置示例** 完整 `nginx.conf` 参考: ```nginx user nginx; worker_processes auto; events { worker_connections 1024; } rtmp { server { listen 1935; application live { live on; hls on; hls_path /tmp/hls; hls_fragment 5s; } } } http { server { listen 80; location /hls { types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } root /tmp; add_header Cache-Control no-cache; } } } ``` --- ### **总结** - **核心步骤**:编译 Nginx 时集成 `nginx-rtmp-module`,配置 `rtmp` 块定义流服务。 - **关键功能**:支持 RTMP 推流/拉流、HLS 切片、访问控制。 - **扩展建议**: - 配置 SSL 加密(`rtmp { server { listen 1935 ssl; ... } }`)。 - 使用鉴权模块(如 `nginx-rtmp-module` 的 `on_publish` 回调)。 - 结合 FFmpeg 转码实现多码率适配。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值