ashuworkspace/binaural
0
1#!/bin/bash2 3# Stream Pre-rendered Video + Audio Loop to YouTube4# NO real-time generation - just loops files = minimal CPU5 6export STREAM_URL="${YOUTUBE_URL:-rtmp://142.250.193.140/live2}"7 8# Secure Stream Key Handling9STREAM_KEY_FILE=$(mktemp)10echo -n "${YOUTUBE_STREAM_KEY}" > "$STREAM_KEY_FILE"11chmod 600 "$STREAM_KEY_FILE"12trap "rm -f $STREAM_KEY_FILE" EXIT13 14# Pre-rendered files (no real-time generation!)15VIDEO_FILE="${VIDEO_FILE:-delta_1080p_loop.mp4}"16AUDIO_FILE="${AUDIO_FILE:-binaural_jungle_5min.aac}"17 18# Validation19if [ ! -s "$STREAM_KEY_FILE" ]; then20 echo '{"level":"error","msg":"YOUTUBE_STREAM_KEY is not set"}'21 exit 122fi23 24if [ ! -f "$VIDEO_FILE" ]; then25 echo '{"level":"error","msg":"Video file not found: '$VIDEO_FILE'"}'26 exit 127fi28 29if [ ! -f "$AUDIO_FILE" ]; then30 echo '{"level":"error","msg":"Audio file not found: '$AUDIO_FILE'"}'31 exit 132fi33 34echo '{"level":"info","msg":"Starting pre-rendered stream","video":"'$VIDEO_FILE'","audio":"'$AUDIO_FILE'"}'35 36# Auto-Restart Loop - ONLY file loops, no CPU-heavy generation!37while true; do38 STREAM_KEY=$(cat "$STREAM_KEY_FILE")39 40 ffmpeg \41 -stream_loop -1 -re -i "$VIDEO_FILE" \42 -stream_loop -1 -i "$AUDIO_FILE" \43 -map 0:v -map 1:a \44 -c:v copy \45 -c:a aac -b:a 192k -ar 44100 \46 -g 60 -f flv "$STREAM_URL/$STREAM_KEY"47 48 echo '{"level":"warn","msg":"Stream ended, restarting in 5s"}'49 sleep 550done51 