# 接收obs推送视频流,转为hls **Repository Path**: cqugsj/rtmp ## Basic Information - **Project Name**: 接收obs推送视频流,转为hls - **Description**: 接收obs推送视频流,转为hls,并且ngix里面有web显示视频 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-08-16 - **Last Updated**: 2026-03-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RTMP直播服务器 一个简洁的RTMP推流转HLS播放解决方案。 ## 功能特点 ✅ **接收RTMP推流** - 支持OBS、FFmpeg等推流工具 ✅ **转换为HLS格式** - 1秒小切片,低延迟播放 ✅ **Web播放器** - 现代化播放界面 ✅ **流刷新机制** - 解决缓存问题 ## 快速使用 ### 启动服务 ```bash ./start.sh ``` ### 停止服务 ```bash ./stop.sh ``` ### 刷新流(解决VLC显示旧视频) ```bash ./refresh-stream.sh ``` ## 访问地址 | 功能 | 地址 | |------|------| | **推流地址** | `rtmp://47.109.179.40:1935/live/stream` | | **Web播放** | `http://47.109.179.40:8088/` | | **HLS播放** | `http://47.109.179.40:8088/hls/stream.m3u8` | | **状态监控** | `http://47.109.179.40:8088/stat` | ## 推流方法 ### OBS推流 - **服务器**: `rtmp://47.109.179.40:1935/live` - **串流密钥**: `stream` ### FFmpeg推流 ```bash ffmpeg -i input.mp4 -c copy -f flv rtmp://47.109.179.40:1935/live/stream ``` ## 网页播放器自定义 ### 网页文件位置 ``` /usr/local/nginx/html/index.html ``` ### 编辑网页 ```bash # 编辑主页面 nano /usr/local/nginx/html/index.html # 或使用vim vim /usr/local/nginx/html/index.html ``` ### 网页结构说明 ```html RTMP直播播放器 ``` ### 自定义修改点 1. **修改页面标题** ```html 你的直播标题 ``` 2. **修改HLS地址**(如果更换IP) ```javascript const hlsUrl = 'http://你的IP:8088/hls/stream.m3u8'; ``` 3. **修改页面样式** ```css body { background: #你的背景色; color: #你的文字颜色; } ``` 4. **添加自定义按钮** ```html ``` ### 重新加载网页 修改网页后,直接刷新浏览器即可看到效果,无需重启服务。 ## 端口配置 ### Web端口修改 编辑nginx配置文件: ```bash nano /usr/local/nginx/conf/nginx.conf ``` 找到并修改: ```nginx server { listen 8088; # 修改为你想要的端口 ... } ``` ### 防火墙开放端口 ```bash # 开放8088端口 firewall-cmd --add-port=8088/tcp --permanent firewall-cmd --reload # 或使用iptables iptables -A INPUT -p tcp --dport 8088 -j ACCEPT ``` ## 目录结构 ``` /root/rtmp-server/ ├── start.sh # 一键启动脚本 ├── stop.sh # 一键停止脚本 ├── rtmp-to-hls.sh # HLS转换核心脚本 ├── refresh-stream.sh # 流刷新脚本 └── README.md # 本说明文档 /usr/local/nginx/ ├── conf/nginx.conf # Nginx配置文件 └── html/index.html # Web播放器页面 /tmp/hls/ # HLS临时文件目录 ├── seg*.ts # 视频切片文件 └── stream.m3u8 # 播放列表文件 ``` ## 技术参数 - **视频编码**: H.264 - **音频编码**: AAC - **切片大小**: 1秒 - **播放延迟**: 2-3秒 - **支持格式**: RTMP推流 → HLS播放 - **Web端口**: 8088(可自定义) - **RTMP端口**: 1935(标准端口) ## 故障排除 ### 常见问题 1. **推流连接不上** - 检查防火墙1935端口 - 确认nginx正在运行 2. **网页打不开** - 检查防火墙8088端口 - 确认nginx配置正确 3. **VLC显示旧视频** - 运行 `./refresh-stream.sh` - VLC中按Ctrl+R刷新 4. **HLS播放失败** - 检查 `/tmp/hls/` 目录权限 - 确认FFmpeg进程正在运行 ### 查看状态 ```bash # 查看进程状态 ps aux | grep nginx ps aux | grep ffmpeg # 查看端口监听 netstat -tlnp | grep -E "(1935|8088)" # 查看HLS文件 ls -la /tmp/hls/ ``` ## 更新日志 - **v1.0** - 基础RTMP转HLS功能 - **v1.1** - 添加Web播放器 - **v1.2** - 优化切片大小,降低延迟 - **v1.3** - 添加流刷新功能 - **v1.4** - 更换Web端口,完善文档