Add complete playout service, chat backend, frontend with HLS player and live chat, Docker integration with health checks, updated CHANGELOG and architecture docs

This commit is contained in:
zwitschi committed 2026-08-02 16:43:12 +02:00
1 parent 0785260689
commit 15a2aaa1a1
23 files changed
+2372 -37

No files matched your search

+18 -6
View File
@@ -2,29 +2,41 @@
set -e
echo "=== Linear Void Playout Service Starting ==="
echo "Playlist path: $PLAYLIST_PATH"
echo "Playlist path: ${PLAYLIST_PATH:=/app/playlist/playlist.txt}"
echo "HLS segment duration: ${HLS_SEGMENT_DURATION:-6}s"
echo "HLS window size: ${HLS_WINDOW_SIZE:-24}"
# Ensure playlist exists or create a demo one
# Ensure playlist directory and file exist
mkdir -p "$(dirname "$PLAYLIST_PATH")"
if [ ! -f "$PLAYLIST_PATH" ]; then
echo "Warning: Playlist not found at $PLAYLIST_PATH. Creating demo playlist."
cat > "$PLAYLIST_PATH" << EOF
# Linear Void Demo Playlist
file '/app/media/demo1.mp4'
file '/app/media/demo2.mp4'
EOF
fi
# Run normalization validation using the Go tool
echo "Validating playlist and enforcing normalization (ADR-001/ADR-003)..."
if ! /app/playlist-manager "$PLAYLIST_PATH"; then
echo "ERROR: Playlist validation failed. Check logs."
exit 1
fi
echo "Playlist validated successfully. Starting continuous HLS playout..."
# Run FFmpeg in a loop for continuous playback
while true; do
echo "[$(date)] Starting FFmpeg playout..."
echo "[$(date)] Starting FFmpeg playout with -c copy (stream copy mode)..."
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_time "${HLS_SEGMENT_DURATION}" \
-hls_list_size "${HLS_WINDOW_SIZE}" \
-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..."
"/app/hls/playlist.m3u8" || echo "FFmpeg exited with error (will restart in 5s per ADR-001 resilience requirements)..."
echo "Playout loop crashed or ended. Restarting in 5 seconds..."
sleep 5