#!/bin/sh # Slate MP4 per MediaMTX alwaysAvailable (pausa / attesa / perdita rete). # H.264 1280x720 30fps + AAC 48kHz mono (allineato all'app Android). set -e 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" 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"