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