zhibo/fix_srs_callback.sh

82 lines
1.9 KiB
Bash

#!/bin/bash
# 修复 SRS 回调配置
echo "停止 SRS 容器..."
docker stop srs-server
docker rm srs-server
echo "创建新的 SRS 配置(包含回调)..."
cat > /opt/live-streaming/docker/srs/srs.conf << 'EOF'
listen 1935;
max_connections 1000;
daemon off;
srs_log_tank console;
http_server {
enabled on;
listen 8080;
dir ./objs/nginx/html;
crossdomain on;
}
http_api {
enabled on;
listen 1985;
crossdomain on;
}
vhost __defaultVhost__ {
# HLS 作为备用
hls {
enabled on;
hls_path ./objs/nginx/html;
hls_fragment 2;
hls_window 4;
hls_cleanup on;
}
# HTTP-FLV 低延迟(主要使用)
http_remux {
enabled on;
mount [vhost]/[app]/[stream].flv;
}
# 低延迟播放配置
play {
gop_cache on;
queue_length 10;
mw_latency 100;
}
# HTTP 回调 - 推流状态通知
http_hooks {
enabled on;
# 推流开始时回调 Java 后端
on_publish http://host.docker.internal:8081/api/front/live/srs/on_publish;
# 推流结束时回调 Java 后端
on_unpublish http://host.docker.internal:8081/api/front/live/srs/on_unpublish;
}
}
EOF
echo "启动 SRS 容器..."
docker run -d --name srs-server \
-p 25002:1935 \
-p 25003:8080 \
-p 1985:1985 \
-v /opt/live-streaming/docker/srs/srs.conf:/usr/local/srs/conf/srs.conf \
--add-host=host.docker.internal:host-gateway \
--restart unless-stopped \
ossrs/srs:5
echo "等待 SRS 启动..."
sleep 3
echo "检查 SRS 状态..."
docker logs srs-server --tail 20
echo ""
echo "完成!现在 OBS 推流时会自动通知 Java 后端更新直播状态。"
echo ""
echo "OBS 推流地址: rtmp://1.15.149.240:25002/live/[stream_key]"