Заявление об отказе от ответственности :Похоже, это работает не идеально. Он становится немного большим.
Соединить два других ответа здесь относительно просто:
Предполагая, что вам нужен файл размером 10 МБ (10485760 байт ), вы можете использовать ffprobe
, чтобы найти продолжительность и заставить оболочку выполнить расчет.
Просто будьте осторожны, потому что ffprobe будет сообщать о десятичных разрядах, которые сбивают с толку арифметику оболочки. Я использовал ${length%.*}
, чтобы убрать десятичные разряды :
.
size=10485760
length=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 input.mp4)
ffmpeg -i input.mp4 -b $(( $size / ${length%.*} )) output.mp4