# 接收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端口,完善文档