85 lines
2.1 KiB
Bash
85 lines
2.1 KiB
Bash
#!/bin/bash
|
|
# deploy-rtsp.sh - SC235HAI RTSP Streaming Server Deployment
|
|
# Usage: ./deploy-rtsp.sh [start|stop|restart]
|
|
|
|
set -e
|
|
|
|
RTSP_DIR="/root"
|
|
MEDIAMTX_VERSION="v1.9.3"
|
|
MEDIAMTX_URL="https://github.com/bluenviron/mediamtx/releases/download/${MEDIAMTX_VERSION}/mediamtx_${MEDIAMTX_VERSION}_linux_arm64v8.tar.gz"
|
|
MEDIAMTX_BIN="${RTSP_DIR}/mediamtx"
|
|
MEDIAMTX_CONFIG="${RTSP_DIR}/mediamtx.yml"
|
|
RTSP_PORT=8554
|
|
|
|
download_mediamtx() {
|
|
if [ ! -f "$MEDIAMTX_BIN" ]; then
|
|
echo "[INFO] Downloading mediamtx ${MEDIAMTX_VERSION}..."
|
|
cd "$RTSP_DIR"
|
|
curl -L -o mediamtx.tar.gz "$MEDIAMTX_URL"
|
|
tar -xzf mediamtx.tar.gz mediamtx mediamtx.yml
|
|
rm -f mediamtx.tar.gz
|
|
chmod +x "$MEDIAMTX_BIN"
|
|
echo "[OK] mediamtx installed at $MEDIAMTX_BIN"
|
|
else
|
|
echo "[OK] mediamtx already installed"
|
|
fi
|
|
}
|
|
|
|
start_rtsp() {
|
|
download_mediamtx
|
|
|
|
# Kill any existing instance
|
|
pkill -f "mediamtx" 2>/dev/null || true
|
|
sleep 1
|
|
|
|
# Copy config from script directory if present
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
if [ -f "${SCRIPT_DIR}/mediamtx.yml" ]; then
|
|
cp "${SCRIPT_DIR}/mediamtx.yml" "$MEDIAMTX_CONFIG"
|
|
echo "[OK] Using mediamtx.yml from script directory"
|
|
fi
|
|
|
|
# Start mediamtx
|
|
cd "$RTSP_DIR"
|
|
nohup "$MEDIAMTX_BIN" "$MEDIAMTX_CONFIG" > /var/log/mediamtx.log 2>&1 &
|
|
PID=$!
|
|
sleep 3
|
|
|
|
# Verify it's running
|
|
if kill -0 $PID 2>/dev/null; then
|
|
echo "[OK] MediaMTX started (PID: $PID)"
|
|
echo "[OK] RTSP stream available at: rtsp://$(hostname -I | awk '{print $1}'):${RTSP_PORT}/cam"
|
|
else
|
|
echo "[ERROR] Failed to start MediaMTX"
|
|
cat /var/log/mediamtx.log
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
stop_rtsp() {
|
|
pkill -f "mediamtx" 2>/dev/null || true
|
|
echo "[OK] MediaMTX stopped"
|
|
}
|
|
|
|
restart_rtsp() {
|
|
stop_rtsp
|
|
sleep 1
|
|
start_rtsp
|
|
}
|
|
|
|
case "${1:-start}" in
|
|
start)
|
|
start_rtsp
|
|
;;
|
|
stop)
|
|
stop_rtsp
|
|
;;
|
|
restart)
|
|
restart_rtsp
|
|
;;
|
|
*)
|
|
echo "Usage: $0 {start|stop|restart}"
|
|
exit 1
|
|
;;
|
|
esac
|