67 lines
1.6 KiB
Bash
Executable File
67 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
# Start the complete streaming stack
|
|
|
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
|
|
|
|
cd "$SCRIPT_DIR"
|
|
|
|
echo "=========================================="
|
|
echo "Starting OBS Live Streaming Stack"
|
|
echo "=========================================="
|
|
echo ""
|
|
|
|
# Start nginx-rtmp via Docker Compose
|
|
echo "Starting nginx-rtmp server..."
|
|
docker-compose up -d
|
|
|
|
echo ""
|
|
echo "Waiting for nginx to be ready..."
|
|
sleep 3
|
|
|
|
# Check if nginx is running
|
|
if ! docker ps | grep -q obs-streaming-server; then
|
|
echo "✗ Failed to start nginx-rtmp server"
|
|
exit 1
|
|
fi
|
|
|
|
echo "✓ nginx-rtmp server is running"
|
|
echo ""
|
|
|
|
# Start HLS uploader in background
|
|
echo "Starting HLS chunk uploader..."
|
|
cd "$PROJECT_DIR"
|
|
|
|
if [ -d "venv" ]; then
|
|
PYTHON="venv/bin/python"
|
|
else
|
|
PYTHON="python3"
|
|
fi
|
|
|
|
# Run HLS uploader in background
|
|
nohup $PYTHON -m obs_uploader.hls_uploader "$SCRIPT_DIR/hls" > "$SCRIPT_DIR/hls-uploader.log" 2>&1 &
|
|
HLS_UPLOADER_PID=$!
|
|
|
|
echo $HLS_UPLOADER_PID > "$SCRIPT_DIR/hls-uploader.pid"
|
|
|
|
echo "✓ HLS uploader started (PID: $HLS_UPLOADER_PID)"
|
|
echo ""
|
|
|
|
echo "=========================================="
|
|
echo "Streaming Stack is Ready!"
|
|
echo "=========================================="
|
|
echo ""
|
|
echo "RTMP URL: rtmp://localhost/live"
|
|
echo "Stream Key: my-stream"
|
|
echo ""
|
|
echo "Local HLS: http://localhost:8081/hls/my-stream.m3u8"
|
|
echo "Live URL: https://videos.jeffemmett.com/live/my-stream/my-stream.m3u8"
|
|
echo ""
|
|
echo "To stop:"
|
|
echo " ./stop-streaming.sh"
|
|
echo ""
|
|
echo "Logs:"
|
|
echo " HLS Uploader: tail -f $SCRIPT_DIR/hls-uploader.log"
|
|
echo " nginx: docker logs -f obs-streaming-server"
|
|
echo ""
|