#!/bin/bash
# Montaje en 2 pasos: (1) convertir clips uno a uno, (2) concat + audio
# Evita OOM que ocurre con 6 inputs 4K HEVC en paralelo

set -e
RAW="/root/instagram-insights/reels/villarroel/raw"
TMP="/root/instagram-insights/reels/villarroel/tmp"
AUDIO="/tmp/villarroel.mp3"
OUT="/root/instagram-insights/reels/villarroel/villarroel_reel.mp4"

mkdir -p "$TMP"

echo "=== PASO 1: Convertir clips individualmente ==="

# Clip 1: 0-2s — Vista aérea calle (hook)
echo "[1/6] IMG_2320 — hook..."
ffmpeg -y -noautorotate -ss 0 -t 2 -i "$RAW/IMG_2320 2.MOV" \
  -vf "transpose=2,scale=1080:1920,fps=30,setsar=1" \
  -c:v libx264 -preset fast -crf 20 -an "$TMP/seg1.mp4" 2>/dev/null
echo "  OK: $(du -sh $TMP/seg1.mp4 | cut -f1)"

# Clip 2: 2-5s — Fachada Eixample (contexto)
echo "[2/6] IMG_2327 — Eixample..."
ffmpeg -y -noautorotate -ss 0 -t 3 -i "$RAW/IMG_2327 2.MOV" \
  -vf "transpose=2,scale=1080:1920,fps=30,setsar=1" \
  -c:v libx264 -preset fast -crf 20 -an "$TMP/seg2.mp4" 2>/dev/null
echo "  OK: $(du -sh $TMP/seg2.mp4 | cut -f1)"

# Clip 3: 5-10s — Producto instalado (corredero + vertical)
echo "[3/6] IMG_2358 — producto..."
ffmpeg -y -noautorotate -ss 2 -t 5 -i "$RAW/IMG_2358 2.MOV" \
  -vf "transpose=2,scale=1080:1920,fps=30,setsar=1" \
  -c:v libx264 -preset fast -crf 20 -an "$TMP/seg3.mp4" 2>/dev/null
echo "  OK: $(du -sh $TMP/seg3.mp4 | cut -f1)"

# Clip 4: 10-15s — Macro tejido microperforado
echo "[4/6] IMG_2343 — tejido..."
ffmpeg -y -noautorotate -ss 0 -t 5 -i "$RAW/IMG_2343 2.MOV" \
  -vf "transpose=2,scale=1080:1920,fps=30,setsar=1" \
  -c:v libx264 -preset fast -crf 20 -an "$TMP/seg4.mp4" 2>/dev/null
echo "  OK: $(du -sh $TMP/seg4.mp4 | cut -f1)"

# Clip 5: 15-20s — Vista desde dentro (privacidad)
echo "[5/6] IMG_2364 — privacidad..."
ffmpeg -y -noautorotate -ss 0 -t 5 -i "$RAW/IMG_2364 2.MOV" \
  -vf "transpose=2,scale=1080:1920,fps=30,setsar=1" \
  -c:v libx264 -preset fast -crf 20 -an "$TMP/seg5.mp4" 2>/dev/null
echo "  OK: $(du -sh $TMP/seg5.mp4 | cut -f1)"

# Clip 6: 20-22.4s — Ático completo con mobiliario (cierre)
echo "[6/6] IMG_2373 — cierre..."
ffmpeg -y -noautorotate -ss 0 -t 2.413 -i "$RAW/IMG_2373 2.MOV" \
  -vf "transpose=2,scale=1080:1920,fps=30,setsar=1" \
  -c:v libx264 -preset fast -crf 20 -an "$TMP/seg6.mp4" 2>/dev/null
echo "  OK: $(du -sh $TMP/seg6.mp4 | cut -f1)"

echo ""
echo "=== PASO 2: Concatenar + audio ==="

# Generar lista para concat demuxer
cat > "$TMP/concat.txt" << EOF
file 'seg1.mp4'
file 'seg2.mp4'
file 'seg3.mp4'
file 'seg4.mp4'
file 'seg5.mp4'
file 'seg6.mp4'
EOF

ffmpeg -y \
  -f concat -safe 0 -i "$TMP/concat.txt" \
  -i "$AUDIO" \
  -c:v copy \
  -c:a aac -b:a 192k \
  -movflags +faststart \
  -shortest \
  "$OUT" 2>/dev/null

echo ""
echo "=== RESULTADO ==="
ls -lh "$OUT"
ffprobe -v quiet -show_entries format=duration -of csv=p=0 "$OUT" 2>/dev/null | xargs printf "Duración: %.1fs\n"

echo "Limpiando temporales..."
rm -rf "$TMP"
echo "✔ Listo: $OUT"
