#!/usr/bin/zsh INPUT=${1:a} FRACTION=${2:-0.9} BT=$(ffprobe -i $INPUT 2>&1 | grep Video | grep -o -E '[[:digit:]]+ kb\/s' | cut -d' ' -f1) while [[ "$BT" -gt '50' ]] do BT=$(printf "%0.f" $(( $BT * $FRACTION ))) MX=$(( $BT + 50 )) MM=$(( $BT - 50 )) BS=$(( $BT / 2 )) ffmpeg -y -i $INPUT -c:v libx264 -b:v ${BT}K -maxrate ${MX}K -minrate ${MM}K -bufsize ${BS}K ${INPUT:r}_bt$BT-mx$MX-mm$MM-bs$BS.mp4 & done wait exit $?