#!/bin/bash
# Monta gli short senza voce: per ogni clip/<nome>.mp4 produce short-<nome>.mp4 a 1080x1920,
# 30 fps, con sopra (se c'è) la grafica immagini/grafica-<nome>.png, un PNG trasparente 9:16
# con titolo, prezzo, pill. La traccia audio è muta apposta: la musica si aggiunge dopo.
#
# Uso: monta_short.sh <cartella_video>
# Cartella video attesa: clip/<nome>.mp4, immagini/grafica-<nome>.png (opzionale)
# Risultato: <cartella_video>/short-<nome>.mp4, uno per clip
set -e
source "$(dirname "$0")/lib_video.sh" || { echo "manca lib_video.sh accanto a $0: va scaricata insieme agli script"; exit 1; }
V=$1
[ -d "$V/clip" ] || { echo "uso: monta_short.sh <cartella_video con clip/>"; exit 1; }
# Il finale si scrive sul disco di sistema e poi si copia (vedi monta_video.sh).
W=${TMPDIR:-/tmp}/monta_short-$$; mkdir -p "$W"
n=0
for clip in "$V"/clip/*.mp4; do
  k=$(basename "$clip" .mp4)
  g="$V/immagini/grafica-$k.png"
  D=$(ffprobe -v error -show_entries format=duration -of csv=p=0 "$clip")
  if [ -f "$g" ]; then
    ffmpeg -v error -y -i "$clip" -loop 1 -i "$g" -f lavfi -i "anullsrc=r=44100:cl=stereo" \
     -filter_complex "[0:v]scale=1080:1920:force_original_aspect_ratio=increase:flags=lanczos,crop=1080:1920,minterpolate=fps=30:mi_mode=blend,setsar=1[s];[1:v]scale=1080:1920,format=rgba,fade=t=in:st=0:d=0.4:alpha=1[g];[s][g]overlay=0:0:shortest=1,format=yuv420p[v]" \
     -map "[v]" -map 2:a -t "$D" -c:v libx264 -preset slow -crf 18 -profile:v high -r 30 -c:a aac -b:a 128k -movflags +faststart "$W/short-$k.mp4"
  else
    _vlog "nessuna grafica per $k (immagini/grafica-$k.png): solo formato e fluidità"
    ffmpeg -v error -y -i "$clip" -f lavfi -i "anullsrc=r=44100:cl=stereo" \
     -filter_complex "[0:v]scale=1080:1920:force_original_aspect_ratio=increase:flags=lanczos,crop=1080:1920,minterpolate=fps=30:mi_mode=blend,setsar=1,format=yuv420p[v]" \
     -map "[v]" -map 1:a -t "$D" -c:v libx264 -preset slow -crf 18 -profile:v high -r 30 -c:a aac -b:a 128k -movflags +faststart "$W/short-$k.mp4"
  fi
  cp "$W/short-$k.mp4" "$V/short-$k.mp4"
  ffprobe -v error -show_entries format=duration,size:stream=width,height -of compact "$V/short-$k.mp4"
  n=$((n+1))
done
rm -rf "$W"
# Niente controlla_audio: la traccia è muta apposta.
_vlog "FATTO: $n short in $V"
