#!/bin/bash
# Concat 6 scenes + add BGM ducked under narration.
set -euo pipefail
V2=/opt/mia/workspace/clientes/px3lab/video_2_0/v2
BGM=/opt/mia/workspace/clientes/px3lab/video_2_0/audio/bgm/tech_corporate_dark_110bpm.wav
OUT=/opt/mia/workspace/clientes/px3lab/video_2_0/video_cloudphotorf_2_0_broll_v2.mp4

# Concat list
cat > /tmp/final_concat.txt <<EOF
file '$V2/scenes/01_hook.mp4'
file '$V2/scenes/02_dor.mp4'
file '$V2/scenes/03_virada.mp4'
file '$V2/scenes/04_diferenciais.mp4'
file '$V2/scenes/05_autoridade.mp4'
file '$V2/scenes/06_cta.mp4'
EOF

# First concat scenes (video + narration audio) -c copy
ffmpeg -y -f concat -safe 0 -i /tmp/final_concat.txt -c copy /tmp/concat_narration.mp4 2>&1 | tail -2

TOTAL_DUR=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 /tmp/concat_narration.mp4)
echo "total duration: ${TOTAL_DUR}s"

# Now mix: narration (from concat) + BGM ducked (-20dB) + light fade in/out
# BGM: loop then trim, apply -20dB (0.1 gain), sidechain compress with narration
ffmpeg -y \
  -i /tmp/concat_narration.mp4 \
  -stream_loop -1 -i "$BGM" \
  -filter_complex "\
[1:a]atrim=0:${TOTAL_DUR},afade=t=in:st=0:d=0.5,afade=t=out:st=$(python3 -c "print($TOTAL_DUR - 0.5)"):d=0.5,volume=0.10[bgm];\
[0:a][bgm]amix=inputs=2:duration=first:dropout_transition=0:normalize=0[aout]" \
  -map 0:v -map "[aout]" \
  -c:v copy \
  -c:a aac -b:a 192k -ar 48000 \
  -shortest \
  "$OUT"

FINAL=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$OUT")
SIZE=$(du -h "$OUT" | cut -f1)
echo "[final] $OUT (${FINAL}s, $SIZE)"
