Переменным битрейтом с "-VB" и "minrate"/"maxrate" параметров в ffmpeg

для рендеринга требуется совсем другое время.

  • -b 3500K -minrate 0K -maxrate 8000K принимает 1hr 17min
  • vb=3000k занимает 2,5 часа

что это vb 3000k и чем она отличается от -b 3500K -minrate 0K -maxrate 8000K?
Это переменные настройки скорости передачи?

если я изменил -b 3500K -minrate 3500K -maxrate 3500K, это постоянная скорость?

29
задан Der Hochstapler
21.03.2023 6:48 Количество просмотров материала 3376
Распечатать страницу

1 ответ

пожалуйста читать документацию для FFmpeg, и run ffmpeg -h full список опций. Кроме того, посмотрите на эту статью, которую я написал, которая показывает различия между режимами управления скоростью в кодировщиках как x264 и x265.

вообще, вот что означают опции:

  • -b:v (или -vb, то же самое) указывает целевую среднюю скорость передачи данных для кодировщика:

    -b <int> E..VA. установить битрейт (в битах / с) (от 0 до INT_MAX)

  • -minrate задает минимальный допуск для использования:

    -minrate <int> E..VA. Установите минимальный допуск битрейта (в битах / с). Наиболее полезно при настройке CBR кодирования. В противном случае это бесполезно. (от INT_MIN к INT_MAX)

  • -maxrate задает максимальный допуск. Однако, как документация показывает, это только использовано совместно с bufsize:

    -maxrate <int> E..VA. Установите максимальный допуск битрейта (в битах / с). Требуется bufsize должен быть установлен. (от INT_MIN к INT_MAX)

    -bufsize <int> E..VA. установите размер буфера ratecontrol (в битах) (от INT_MIN до INT_MAX)

    это имеет смысл только для кодирования с переменной скоростью передачи, где вместо постоянн битовая скорость или постоянн качественная модель, кодировщик имитируют передачу с виртуальным буфером на дешифраторе. The -minrate/-maxrate/-bufsize параметры управления размером буфера. Вы, как правило, только используете этот режим для потоковой передачи, так как метод ограничит битовую скорость, чтобы не превысить определенное значение, которое заставило бы буфер декодера переполняться или понижаться.

подводя итог, у вас есть несколько вариантов для ограничения битрейт:

  1. чтобы настроить процесс CBR, вы должны проверить, что предлагает кодировщик. Как правило, вы не можете достичь "идеального" постоянного битрейта, так как кодировщик не будет тратить биты. Параметр -b:v,-minrate и -maxrate к тем же уровням добьемся того же, например для libx264:

    ffmpeg -i input.mp4 -c:v libx264 -x264-params "nal-hrd=cbr" -b:v 1M -minrate 1M -maxrate 1M -bufsize 2M output.ts
    

    предупреждение: это может привести к низкому качеству видео, которые трудно кодировать, и он будет тратить биты. Если вам совершенно не нужно достигните выхода постоянн тарифа, не используйте этот вариант.

  2. настройка ограниченной / переменной скорости потока. Используйте -b:v 3500K -maxrate 3500K -bufsize 1000K, например. Очевидно, вам придется настроить размер скорости и буфера в соответствии с контекстом. Чем больше размер буфера, тем выше допустимое изменение битрейта.

  3. использовать постоянное качество целевой и ограничить битрейт только поймать всплески. Например, используйте -c:v libx264 -crf 23 -maxrate 4M -bufsize 4M для кодирования с переменным битрейтом с целевой CRF 23, но ограничить выход максимум 4 Мбит / с.

15
отвечен slhck 2023-03-22 14:36

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх