Вычисление битрейта
Windows
bitrate.bat
@echo off
IF "%~1"=="" (
echo Error.
pause
exit
)
set "video_file=%~1"
for /f "tokens=*" %%a in ('ffprobe -v error -show_entries format^=duration -of default^=noprint_wrappers^=1:nokey^=1 "%video_file%"') do set "duration=%%a"
set /p "size=File size (X mb): "
set /p "audio_bitrate=Audio bitrate in kbps: "
set /a "size_kb=size*8192"
for /f "usebackq tokens=*" %%a in (`powershell.exe -command "[Math]::Round(%size_kb% / %duration%, 2)"`) do set "video_bitrate=%%a"
set /a "final_bitrate=video_bitrate-audio_bitrate"
echo Max bitrate: %final_bitrate% kbps
pause

Linux
→ https://www.gnu.org/software/bc/
bitrate.sh
#!/bin/sh video_file="$1" if [ -z "$video_file" ]; then echo "Укажите видеофайл в качестве аргумента." exit 1 fi duration=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$video_file") if [ -z "$duration" ]; then echo "Ошибка." exit 1 fi read -p "Целевой размер (X; X.X мб): " megabytes if ! [[ "$megabytes" =~ ^[0-9]+([.][0-9]+)?$ ]]; then echo "Неверное значение." exit 1 fi read -p "Предполагаемый битрейт аудио (X кбит/с): " baudio if ! [[ "$baudio" =~ ^[0-9]+$ ]]; then echo "Неверное значение." exit 1 fi kilobits=$(echo "$megabytes * 8192" | bc) bitrate=$(echo "scale=0; $kilobits / $duration" | bc) video_bitrate=$(echo "$bitrate - $baudio" | bc) echo "Максимальный битрейт видео: $video_bitrate кбит/с"