
Я использую FFMPEG (ввод командной строки) для преобразования моих видео в определенный выходной формат. Проблема, с которой я сталкиваюсь, заключается в том, что когда я пытаюсь передать постоянный битрейт (700 кбит/с) в FFMPEG, результатом является выходное видео с другим битрейтом (скажем, 1000 кбит/с). Это явление неизменно происходит для всех видео. Почему это происходит? Мне нужно поддерживать постоянный битрейт. Может ли кто-нибудь мне помочь.
Моя версия FFMPEG — 0.5
Параметр командной строки, который я передаю в FFMPEG, следующий:
-i {inputfile}
-b 700k -ab 64k
-vcodec libx264
-acodec libfaac -ac 2 -ar 44100
-y -s 320x240
{outputfile}
РЕДАКТИРОВАТЬ:
Мне удалось принудительно задать CBR с колебанием +/- 3%, используя следующие параметры.
ffmpeg -i myfile.avi
-b 4000k -minrate 4000k
-maxrate 4000k -bufsize 1835k out.m2v
Но когда я использовал -maxrate и -minrate вместе с моим набором параметров, я не смог принудительно включить CBR. Мой набор параметров следующий:
-i {inputfile}
-b 1200k -minrate 1200k
-maxrate 1200k -bufsize 1200k
-ab 64k -vcodec libx264
-acodec libfaac -ac 2 -ar 44100
-y -s 320x240
{outputfile}
Почему это происходит?
решение1
Для принудительного CBR следует использовать minrate
, maxrate
и bufsize
(см.здесь)
ffmpeg -i myfile.avi
-b 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k
out.m2v