#!/usr/bin/env bash

INPUT="wellcome.mp4"
OUTPUT="wellcome2.mp4"

TARGET_MB=15
AUDIO_KBPS=96

DURATION=$(ffprobe -v error -show_entries format=duration \
  -of default=noprint_wrappers=1:nokey=1 "$INPUT")

TOTAL_KBPS=$(awk "BEGIN {print int(($TARGET_MB * 8192) / $DURATION)}")
VIDEO_KBPS=$((TOTAL_KBPS - AUDIO_KBPS))

echo "Duración: $DURATION segundos"
echo "Bitrate total: ${TOTAL_KBPS}k"
echo "Bitrate video: ${VIDEO_KBPS}k"
echo "Bitrate audio: ${AUDIO_KBPS}k"

ffmpeg -y -i "$INPUT" \
  -vf "scale='min(1280,iw*2)':'min(720,ih*2)':force_original_aspect_ratio=decrease:force_divisible_by=2:flags=lanczos" \
  -c:v libx264 \
  -profile:v baseline \
  -level 3.1 \
  -pix_fmt yuv420p \
  -b:v "${VIDEO_KBPS}k" \
  -pass 1 \
  -an \
  -f mp4 /dev/null

ffmpeg -y -i "$INPUT" \
  -vf "scale='min(1280,iw*2)':'min(720,ih*2)':force_original_aspect_ratio=decrease:force_divisible_by=2:flags=lanczos" \
  -c:v libx264 \
  -profile:v baseline \
  -level 3.1 \
  -pix_fmt yuv420p \
  -b:v "${VIDEO_KBPS}k" \
  -pass 2 \
  -c:a aac \
  -b:a "${AUDIO_KBPS}k" \
  -ac 2 \
  -ar 44100 \
  -movflags +faststart \
  "$OUTPUT"

rm -f ffmpeg2pass-0.log ffmpeg2pass-0.log.mbtree

ls -lh "$OUTPUT"
