Aggiunge overlay server-side burn-in e stabilizza diretta live.
Tabellone, badge e brand sono ricodificati nel flusso _air via OverlayRelay; sync punteggio HTTP, volume condiviso rails/sidekiq, qualità 720p migliorata e badge CONNECTING in ripresa da pausa. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,13 +1,33 @@
|
||||
#!/bin/sh
|
||||
# Generate offline slate MP4 for MediaMTX alwaysAvailable (pausa / attesa segnale)
|
||||
# Slate MP4 per MediaMTX alwaysAvailable (pausa / attesa / perdita rete).
|
||||
# H.264 1280x720 30fps + AAC 48kHz mono (allineato all'app Android).
|
||||
set -e
|
||||
OUT_DIR="$(dirname "$0")/../slates"
|
||||
ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
|
||||
OUT_DIR="$(cd "$(dirname "$0")/../slates" && pwd)"
|
||||
BRAND_IMAGE="${BRAND_IMAGE:-$ROOT/brand/CopertinaCanale_6.png}"
|
||||
OUT="$OUT_DIR/offline.mp4"
|
||||
|
||||
if [ ! -f "$BRAND_IMAGE" ]; then
|
||||
echo "Manca immagine brand: $BRAND_IMAGE" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "$OUT_DIR"
|
||||
docker run --rm -v "$OUT_DIR:/out" linuxserver/ffmpeg:latest \
|
||||
-f lavfi -i color=c=0x1a1a1a:s=1280x720:r=30 \
|
||||
-vf "drawtext=text='Match Live TV':fontcolor=white:fontsize=48:x=(w-text_w)/2:y=(h-text_h)/2-40,drawtext=text='Trasmissione in pausa':fontcolor=0xaaaaaa:fontsize=28:x=(w-text_w)/2:y=(h-text_h)/2+20" \
|
||||
-f lavfi -i sine=frequency=440:sample_rate=48000 \
|
||||
-t 30 -c:v libx264 -pix_fmt yuv420p -g 30 -preset fast \
|
||||
-c:a aac -b:a 128k -y /out/offline.mp4
|
||||
echo "Created $OUT"
|
||||
BRAND_DIR="$(cd "$(dirname "$BRAND_IMAGE")" && pwd)"
|
||||
BRAND_FILE="$(basename "$BRAND_IMAGE")"
|
||||
|
||||
docker run --rm \
|
||||
-v "$OUT_DIR:/out" \
|
||||
-v "$BRAND_DIR:/brand:ro" \
|
||||
linuxserver/ffmpeg:latest \
|
||||
-loop 1 -framerate 30 -i "/brand/$BRAND_FILE" \
|
||||
-f lavfi -i anullsrc=r=48000:cl=mono \
|
||||
-filter:v "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2:color=0x0a0a0e" \
|
||||
-map 0:v -map 1:a \
|
||||
-t 30 -c:v libx264 -pix_fmt yuv420p -profile:v baseline -level 3.1 \
|
||||
-x264-params "keyint=30:min-keyint=30:scenecut=0:bframes=0" \
|
||||
-g 30 -keyint_min 30 -force_key_frames "expr:gte(t,n_forced*1)" \
|
||||
-preset fast \
|
||||
-c:a aac -b:a 128k -ac 1 -shortest -y /out/offline.mp4
|
||||
|
||||
echo "Created $OUT from $BRAND_IMAGE"
|
||||
|
||||
Reference in New Issue
Block a user