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:
1 parent
0785260689
commit
15a2aaa1a1
23 files changed
+2372
-37
No files matched your search
@@ -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
|
||||
|
||||
Reference in new issue
Block a user