224 lines
3.9 KiB
Markdown
224 lines
3.9 KiB
Markdown
|
|
# 直播服务部署文档 (SRS + API)
|
||
|
|
|
||
|
|
## 服务信息
|
||
|
|
|
||
|
|
| 服务 | 端口 | 用途 |
|
||
|
|
|------|------|------|
|
||
|
|
| SRS RTMP | 25002 (映射到1935) | 推流地址 |
|
||
|
|
| SRS HTTP-FLV | 25003 (映射到8080) | 拉流播放 |
|
||
|
|
| SRS API | 1985 | SRS管理接口 |
|
||
|
|
| API Server | 25001 (映射到3001) | 后端接口 |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 一、目录结构
|
||
|
|
|
||
|
|
```
|
||
|
|
/opt/live-streaming/
|
||
|
|
├── docker/
|
||
|
|
│ └── srs/
|
||
|
|
│ └── srs.conf # SRS配置文件
|
||
|
|
├── docker-compose.yml # Docker编排文件
|
||
|
|
└── server/ # API服务代码
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 二、SRS配置文件
|
||
|
|
|
||
|
|
位置:`/opt/live-streaming/docker/srs/srs.conf`
|
||
|
|
|
||
|
|
```conf
|
||
|
|
listen 1935;
|
||
|
|
max_connections 1000;
|
||
|
|
srs_log_tank console;
|
||
|
|
daemon off;
|
||
|
|
|
||
|
|
http_api {
|
||
|
|
enabled on;
|
||
|
|
listen 1985;
|
||
|
|
}
|
||
|
|
|
||
|
|
http_server {
|
||
|
|
enabled on;
|
||
|
|
listen 8080;
|
||
|
|
dir ./objs/nginx/html;
|
||
|
|
}
|
||
|
|
|
||
|
|
rtc_server {
|
||
|
|
enabled on;
|
||
|
|
listen 8000;
|
||
|
|
candidate $CANDIDATE;
|
||
|
|
}
|
||
|
|
|
||
|
|
vhost __defaultVhost__ {
|
||
|
|
hls {
|
||
|
|
enabled on;
|
||
|
|
}
|
||
|
|
http_remux {
|
||
|
|
enabled on;
|
||
|
|
mount [vhost]/[app]/[stream].flv;
|
||
|
|
}
|
||
|
|
rtc {
|
||
|
|
enabled on;
|
||
|
|
rtmp_to_rtc on;
|
||
|
|
rtc_to_rtmp on;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 三、Docker启动命令
|
||
|
|
|
||
|
|
### SRS服务
|
||
|
|
```bash
|
||
|
|
docker run -d \
|
||
|
|
--name srs-server \
|
||
|
|
--restart always \
|
||
|
|
-p 25002:1935 \
|
||
|
|
-p 25003:8080 \
|
||
|
|
-p 1985:1985 \
|
||
|
|
-v /opt/live-streaming/docker/srs/srs.conf:/usr/local/srs/conf/srs.conf \
|
||
|
|
ossrs/srs:5
|
||
|
|
```
|
||
|
|
|
||
|
|
### API服务
|
||
|
|
```bash
|
||
|
|
docker run -d \
|
||
|
|
--name api-server \
|
||
|
|
--restart always \
|
||
|
|
-p 25001:3001 \
|
||
|
|
-e PUBLIC_SRS_HOST=1.15.149.240 \
|
||
|
|
-e PUBLIC_SRS_RTMP_PORT=25002 \
|
||
|
|
-e PUBLIC_SRS_HTTP_PORT=25003 \
|
||
|
|
-e SRS_HOST=srs \
|
||
|
|
-e SRS_HTTP_PORT=8080 \
|
||
|
|
-e NODE_ENV=production \
|
||
|
|
live-streaming-api-server
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 四、推流/拉流地址
|
||
|
|
|
||
|
|
### 推流地址 (OBS/手机)
|
||
|
|
```
|
||
|
|
rtmp://1.15.149.240:25002/live/{streamKey}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 拉流地址 (播放器)
|
||
|
|
```
|
||
|
|
# HTTP-FLV (推荐,低延迟)
|
||
|
|
http://1.15.149.240:25003/live/{streamKey}.flv
|
||
|
|
|
||
|
|
# HLS (兼容性好)
|
||
|
|
http://1.15.149.240:25003/live/{streamKey}.m3u8
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 五、常用命令
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 查看服务状态
|
||
|
|
docker ps | grep -E "srs|api"
|
||
|
|
|
||
|
|
# 查看SRS日志
|
||
|
|
docker logs srs-server
|
||
|
|
docker logs -f srs-server # 实时
|
||
|
|
|
||
|
|
# 查看API日志
|
||
|
|
docker logs api-server
|
||
|
|
|
||
|
|
# 重启服务
|
||
|
|
docker restart srs-server
|
||
|
|
docker restart api-server
|
||
|
|
|
||
|
|
# 停止服务
|
||
|
|
docker stop srs-server api-server
|
||
|
|
|
||
|
|
# 启动服务
|
||
|
|
docker start srs-server api-server
|
||
|
|
|
||
|
|
# 查看SRS统计信息
|
||
|
|
curl http://localhost:1985/api/v1/streams
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 六、在新服务器部署
|
||
|
|
|
||
|
|
### 1. 创建目录和配置
|
||
|
|
```bash
|
||
|
|
mkdir -p /opt/live-streaming/docker/srs
|
||
|
|
|
||
|
|
# 创建SRS配置文件
|
||
|
|
cat > /opt/live-streaming/docker/srs/srs.conf << 'EOF'
|
||
|
|
listen 1935;
|
||
|
|
max_connections 1000;
|
||
|
|
srs_log_tank console;
|
||
|
|
daemon off;
|
||
|
|
|
||
|
|
http_api {
|
||
|
|
enabled on;
|
||
|
|
listen 1985;
|
||
|
|
}
|
||
|
|
|
||
|
|
http_server {
|
||
|
|
enabled on;
|
||
|
|
listen 8080;
|
||
|
|
dir ./objs/nginx/html;
|
||
|
|
}
|
||
|
|
|
||
|
|
vhost __defaultVhost__ {
|
||
|
|
hls {
|
||
|
|
enabled on;
|
||
|
|
}
|
||
|
|
http_remux {
|
||
|
|
enabled on;
|
||
|
|
mount [vhost]/[app]/[stream].flv;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
EOF
|
||
|
|
```
|
||
|
|
|
||
|
|
### 2. 启动SRS
|
||
|
|
```bash
|
||
|
|
docker run -d \
|
||
|
|
--name srs-server \
|
||
|
|
--restart always \
|
||
|
|
-p 25002:1935 \
|
||
|
|
-p 25003:8080 \
|
||
|
|
-p 1985:1985 \
|
||
|
|
-v /opt/live-streaming/docker/srs/srs.conf:/usr/local/srs/conf/srs.conf \
|
||
|
|
ossrs/srs:5
|
||
|
|
```
|
||
|
|
|
||
|
|
### 3. 开放防火墙端口
|
||
|
|
```bash
|
||
|
|
# TCP端口
|
||
|
|
firewall-cmd --permanent --add-port=25002/tcp
|
||
|
|
firewall-cmd --permanent --add-port=25003/tcp
|
||
|
|
firewall-cmd --permanent --add-port=1985/tcp
|
||
|
|
firewall-cmd --reload
|
||
|
|
```
|
||
|
|
|
||
|
|
### 4. 云服务器安全组
|
||
|
|
开放以下端口:
|
||
|
|
- TCP 25002 (RTMP推流)
|
||
|
|
- TCP 25003 (HTTP-FLV播放)
|
||
|
|
- TCP 1985 (SRS API)
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 七、验证服务
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 检查SRS版本
|
||
|
|
curl http://localhost:1985/api/v1/versions
|
||
|
|
|
||
|
|
# 检查当前直播流
|
||
|
|
curl http://localhost:1985/api/v1/streams
|
||
|
|
```
|