zhibo/Log/服务搭建/直播-SRS和API服务.md

224 lines
3.9 KiB
Markdown
Raw Normal View History

# 直播服务部署文档 (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
```