#!/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 ""