#!/bin/bash set -e echo "=== Linear Void Playout Service Starting ===" echo "Playlist path: $PLAYLIST_PATH" echo "HLS segment duration: ${HLS_SEGMENT_DURATION:-6}s" # Ensure playlist exists or create a demo one if [ ! -f "$PLAYLIST_PATH" ]; then echo "Warning: Playlist not found at $PLAYLIST_PATH. Creating demo playlist." cat > "$PLAYLIST_PATH" << EOF file '/app/media/demo1.mp4' file '/app/media/demo2.mp4' EOF fi # Run FFmpeg in a loop for continuous playback while true; do echo "[$(date)] Starting FFmpeg playout..." ffmpeg -re -f concat -safe 0 -i "$PLAYLIST_PATH" \ -c:v copy -c:a copy \ -f hls \ -hls_time ${HLS_SEGMENT_DURATION:-6} \ -hls_list_size ${HLS_WINDOW_SIZE:-24} \ -hls_flags delete_segments+append_list \ -hls_segment_filename "/app/hls/segment_%03d.ts" \ "/app/hls/playlist.m3u8" || echo "FFmpeg exited with error. Restarting in 5s..." echo "Playout loop crashed or ended. Restarting in 5 seconds..." sleep 5 done