2025-05-14 19:45:19 +08:00
|
|
|
|
source ../environment.sh
|
|
|
|
|
|
|
|
|
|
|
|
if [ -z "$NETWORK" ]; then
|
|
|
|
|
|
echo "错误: 未找到 NETWORK 环境变量"
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
fi
|
|
|
|
|
|
if [ -z "$SRS_NAME" ]; then
|
|
|
|
|
|
echo "错误: 未找到 SRS_NAME 环境变量"
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
fi
|
|
|
|
|
|
if [ -z "$SRS_IMAGE" ]; then
|
|
|
|
|
|
echo "错误: 未找到 SRS_IMAGE 环境变量"
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
fi
|
|
|
|
|
|
if [ -z "$SRS_MEMORY" ]; then
|
|
|
|
|
|
echo "错误: 未找到 SRS_MEMORY 环境变量"
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
fi
|
|
|
|
|
|
if [ -z "$SRS_RTMP_PORT" ]; then
|
|
|
|
|
|
echo "错误: 未找到 SRS_RTMP_PORT 环境变量"
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
fi
|
2025-05-21 11:36:49 +08:00
|
|
|
|
|
2025-05-14 19:45:19 +08:00
|
|
|
|
if [ -z "$SRS_RTC_PORT" ]; then
|
|
|
|
|
|
echo "错误: 未找到 SRS_RTC_PORT 环境变量"
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
fi
|
|
|
|
|
|
if [ -z "$SRS_DATA" ]; then
|
|
|
|
|
|
echo "错误: 未找到 SRS_DATA 环境变量"
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
if docker ps -a | grep -q ${SRS_NAME}; then
|
|
|
|
|
|
echo "停止并删除已存在的 SRS 容器..."
|
|
|
|
|
|
docker stop ${SRS_NAME} >/dev/null 2>&1
|
|
|
|
|
|
docker rm ${SRS_NAME} >/dev/null 2>&1
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
2025-05-21 11:36:49 +08:00
|
|
|
|
# 在容器内检查并创建必要的目录结构
|
|
|
|
|
|
echo "检查SRS目录结构..."
|
|
|
|
|
|
docker run --rm \
|
|
|
|
|
|
-v "${SRS_DATA}:/usr/local/srs/objs/nginx/html" \
|
|
|
|
|
|
$SRS_IMAGE \
|
|
|
|
|
|
/bin/sh -c '
|
|
|
|
|
|
if [ -d "/usr/local/srs/objs/nginx/html/record" ]; then
|
|
|
|
|
|
echo "record目录已存在,跳过创建"
|
|
|
|
|
|
else
|
|
|
|
|
|
echo "创建record目录..."
|
|
|
|
|
|
mkdir -p /usr/local/srs/objs/nginx/html/record
|
|
|
|
|
|
fi
|
|
|
|
|
|
'
|
|
|
|
|
|
|
2025-05-14 19:45:19 +08:00
|
|
|
|
# 启动SRS容器
|
2025-05-21 11:36:49 +08:00
|
|
|
|
# 启动SRS容器 默认也有8080端口
|
2025-06-21 13:27:04 +08:00
|
|
|
|
CANDIDATE=${SRS_DOMAIN}
|
2025-06-20 16:39:53 +08:00
|
|
|
|
#echo ${SRS_DOMAIN}
|
2025-06-21 13:05:37 +08:00
|
|
|
|
# CANDIDATE=${SRS_DOMAIN}
|
2025-06-21 13:27:04 +08:00
|
|
|
|
echo $CANDIDATE
|
2025-06-21 08:40:50 +08:00
|
|
|
|
|
2025-06-21 13:32:06 +08:00
|
|
|
|
# docker run -d \
|
|
|
|
|
|
# --name ${SRS_NAME} \
|
|
|
|
|
|
# --network $NETWORK \
|
|
|
|
|
|
# --memory $SRS_MEMORY \
|
|
|
|
|
|
# --restart unless-stopped \
|
|
|
|
|
|
# -p ${SRS_RTMP_PORT}:1935 \
|
|
|
|
|
|
# -p ${SRS_RTC_PORT}:8000/udp \
|
|
|
|
|
|
# -p ${SRS_SRT_PORT}:10080/udp \
|
|
|
|
|
|
# --env CANDIDATE=$CANDIDATE \
|
|
|
|
|
|
# -v "$(pwd)/volumes/srs/conf/srs.conf:/usr/local/srs/conf/docker.conf" \
|
|
|
|
|
|
# -v "${SRS_DATA}:/usr/local/srs/objs/nginx/html" \
|
|
|
|
|
|
# --mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \
|
|
|
|
|
|
# $SRS_IMAGE
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-06-20 16:56:47 +08:00
|
|
|
|
docker run -d \
|
|
|
|
|
|
--name ${SRS_NAME} \
|
|
|
|
|
|
--network $NETWORK \
|
|
|
|
|
|
--memory $SRS_MEMORY \
|
|
|
|
|
|
--restart unless-stopped \
|
|
|
|
|
|
-p ${SRS_RTMP_PORT}:1935 \
|
2025-06-20 16:57:24 +08:00
|
|
|
|
-p ${SRS_RTC_PORT}:8000/udp \
|
2025-06-21 13:05:37 +08:00
|
|
|
|
-p ${SRS_SRT_PORT}:10080/udp \
|
2025-06-21 13:27:04 +08:00
|
|
|
|
--env CANDIDATE=$CANDIDATE \
|
2025-06-20 16:56:47 +08:00
|
|
|
|
-v "${SRS_DATA}:/usr/local/srs/objs/nginx/html" \
|
|
|
|
|
|
--mount type=bind,source=/etc/localtime,target=/etc/localtime,readonly \
|
2025-06-21 13:32:06 +08:00
|
|
|
|
$SRS_IMAGE ./objs/srs -c conf/srt2rtc.conf
|
2025-06-21 13:05:37 +08:00
|
|
|
|
|
|
|
|
|
|
|
2025-06-21 08:40:50 +08:00
|
|
|
|
|
2025-06-21 13:05:37 +08:00
|
|
|
|
|
2025-06-20 16:39:53 +08:00
|
|
|
|
|
2025-06-21 13:05:37 +08:00
|
|
|
|
# docker run -d --name SRS --network $NETWORK --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 -p 10080:10080/udp -p 8000:8000/udp \
|
2025-06-20 16:56:47 +08:00
|
|
|
|
# $SRS_IMAGE ./objs/srs -c conf/srt2rtc.conf
|
2025-06-20 16:39:53 +08:00
|
|
|
|
|
|
|
|
|
|
|