#!/bin/bash
# Build Sunk Cost Fallacy - FIXED setpts syntax
PROJ="/home/ubuntu/projects/sunk-cost-fallacy"

echo "=== Creating slow-mo scenes (setpts=PTS*2.5) ==="
for i in 1 2 3 4; do
  ffmpeg -y -i "$PROJ/jimeng-scene$i.mp4" \
    -filter:v "setpts=PTS*2.5,fps=24" \
    -an -c:v libx264 -preset fast -pix_fmt yuv420p \
    "$PROJ/slow-scene$i.mp4" 2>&1 | tail -1
  dur=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$PROJ/slow-scene$i.mp4" 2>/dev/null)
  echo "  Scene $i: ${dur}s"
done

echo "=== Building concatenated video with crossfades ==="
# Get scene1 duration for offset calculations
D1=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$PROJ/slow-scene1.mp4" 2>/dev/null)
D2=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$PROJ/slow-scene2.mp4" 2>/dev/null)
D3=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$PROJ/slow-scene3.mp4" 2>/dev/null)
echo "Durations: $D1, $D2, $D3"

# Calculate offsets (scene duration - 1 for crossfade)
O1=$(echo "$D1 - 1" | bc)
O2=$(echo "$D1 + $D2 - 2" | bc)
O3=$(echo "$D1 + $D2 + $D3 - 3" | bc)
echo "Offsets: $O1, $O2, $O3"

ffmpeg -y \
  -i "$PROJ/slow-scene1.mp4" \
  -i "$PROJ/slow-scene2.mp4" \
  -i "$PROJ/slow-scene3.mp4" \
  -i "$PROJ/slow-scene4.mp4" \
  -filter_complex "\
    [0:v]format=pix_fmts=yuv420p,fps=24[v0];\
    [1:v]format=pix_fmts=yuv420p,fps=24[v1];\
    [2:v]format=pix_fmts=yuv420p,fps=24[v2];\
    [3:v]format=pix_fmts=yuv420p,fps=24[v3];\
    [v0][v1]xfade=transition=fade:duration=1:offset=$O1[tmp1];\
    [tmp1][v2]xfade=transition=fade:duration=1:offset=$O2[tmp2];\
    [tmp2][v3]xfade=transition=fade:duration=1:offset=$O3[out]" \
  -map "[out]" -c:v libx264 -preset fast -pix_fmt yuv420p -r 24 \
  "$PROJ/sunk-cost-scenes-noloop.mp4" 2>&1 | tail -5

dur=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$PROJ/sunk-cost-scenes-noloop.mp4" 2>/dev/null)
echo "Concat duration: ${dur}s"

echo "=== Adding voiceover + subs (FontSize=7!) ==="
ffmpeg -y \
  -i "$PROJ/sunk-cost-scenes-noloop.mp4" \
  -i "$PROJ/voiceover.mp3" \
  -c:v libx264 -preset fast -c:a aac \
  -vf "subtitles=$PROJ/subtitles.srt:force_style='FontSize=7,Alignment=2,MarginV=10,FontName=Arial,PrimaryColour=&H00FFFFFF,OutlineColour=&H00000000,BorderStyle=1,Outline=1'" \
  -shortest -pix_fmt yuv420p -r 24 \
  "$PROJ/sunk-cost-horizontal.mp4" 2>&1 | tail -5

echo "=== Converting to vertical 9:16 ==="
ffmpeg -y \
  -i "$PROJ/sunk-cost-horizontal.mp4" \
  -vf "scale=1080:1920:force_original_aspect_ratio=decrease,pad=1080:1920:(ow-iw)/2:(oh-ih)/2:color=#0F0F1E" \
  -c:v libx264 -preset fast -crf 23 -c:a aac -movflags +faststart \
  "$PROJ/sunk-cost-final-noloop.mp4" 2>&1 | tail -5

echo "=== DONE ==="
ls -lh "$PROJ/sunk-cost-final-noloop.mp4"
dur=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$PROJ/sunk-cost-final-noloop.mp4" 2>/dev/null)
echo "Final duration: ${dur}s"