FFmpeg проблема с битрейтом - PullRequest
       20

FFmpeg проблема с битрейтом

0 голосов
/ 30 апреля 2010

Я имею дело с очень большой проблемой, касающейся скорости передачи данных, ffmpeg предоставляет опцию -b для скорости передачи данных и для настройки обеспечивает -minrate и -maxrate, -bufsize, но не работает , Если я даю 256 кбит / с при опции -b, когда транскодирование завершается, это обеспечивает 380 кбит / с. Как мы можем достичь постоянной скорости передачи битов, используя ffmpeg. Если их + -10Kb, это регулируется. но скорость передачи видео всегда превышает 50-100 кбит / с.

Я использую следующую команду

ffmpeg -i "demo.avs" -vcodec libx264 -s 320x240 -aspect 4:3 -r 15 -b 256kb \ 
  -minrate 200kb -maxrate 280kb -bufsize 256kb -acodec libmp3lame -ac 2    \
  -ar 22050 -ab 64kb -y "output.mp4"

Когда транскодирование выполнено, Media Info показывает общую скорость передачи данных 440 КБ (она должна быть 320 КБ).

Это что-то не так в команде. Или я должен использовать какой-то другой параметр? Пожалуйста, предоставьте ваше предложение очень важно.

1 Ответ

1 голос
/ 02 мая 2010

Эти опции не делают то, что вы думаете, они делают. Из FFmpeg FAQ :

3.18 FFmpeg does not adhere to the -maxrate setting, some frames are bigger than
     maxrate/fps.

          Read the MPEG spec about video buffer verifier.

3.19 I want CBR, but no matter what I do frame sizes differ.

          You do not understand what CBR is, please read the MPEG spec. Read 
          about video buffer verifier and constant bitrate. The one sentence 
          summary is that there is a buffer and the input rate is constant, the
          output can vary as needed.

Позвольте мне выделить для вас отправку:

Резюме в одном предложении состоит в том, что имеется буфер и скорость ввода постоянна, при необходимости вывод может меняться.

В сущности, это означает, что -maxrate и другие настройки не управляют скоростью выходного потока, как вы думали.

...