Что за параметры в ffmpeg

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

-b:v:2 800k  -maxrate:2 856k  -bufsize:2 1200k

-b:v:2 800k // Указываем битрейт видео, он же будет фиксированным даже если у входного файла будет ниже. То есть если входной файл 10мб, а битрейт его 450к, на выходе получим 20м с битрейтом 800k. Верно?

-maxrate:2 856k // Что это за рейты, для чего? C ним так же как и с первым, или все же ограничивает, а не приводит строго к 850k?

-bufsize:2 1200k //Совсем не понятно, что это у видео и для чего?


Ответы (1 шт):

Автор решения: Komdosh

По порядку.

-b:v:2 800k -maxrate:2 856k -minrate:2 756k -bufsize:2 1200k

-b:v:2 - указать усреднённый (average) битрейт для видеопотока 2 (Видеофайлы могут содержать несколько видеопотоков).

-b:v:2 800k - усреднённый битрейт для видеопотока 2, т.е. если входной файл будет иметь "скачки" (к примеру от 450 до 1200) по битрейту во втором видеопотоке, ffmpeg попытается их сгладить и привести общий битрейт видео к примерно к 800 кб/с.

-maxrate:2 856k - жёстко зафиксировать верхнюю границу битрейта для видеопотока 2 в 856 кб/с. Говорим ffmpeg, что выше этого битрейта прыгать нельзя.

-minrate:2 756k - жёстко зафиксировать нижнюю границу битрейта для видеопотока 2 в 756 кб/с. Говорим ffmpeg, что ниже этого битрейта прыгать нельзя.

-bufsize:2 1200k - это опция задаёт: как часто ffmpeg должен вычислять средний битрейт для видеопотока 2.

С bufsize нужно аккуратно поиграться и посмотреть, какой результат вам больше подойдёт. Если вы установите слишком маленький буфер, то это может повлиять на качество выходного видео, так как ffmpeg будет очень часто пытаться вычислить "не вышел ли я за лимиты усреднённого битрейта -b:v". Если установить bufsize большой, то вычисление усреднённого битрейта будет редким, из-за чего могут быть резкие перепады по битрейту к примеру вы хотите разброс в 10кб/с, а при большом bufsize может быть в 100кб/с.

Битрейт так или иначе должен прыгать, в разумных пределах, в зависимости от динамичности сцен. Многие параметры и оптимизации уже сделаны за вас. Вы можете поиграться с параметрами и добиться более подходящего под ваши цели результата, но вам придётся самостоятельно найти эти значения. Почему так происходит? Потому что многие оптимизации сделаны на основе общих ограничений, меняя тот же buffsize вы задаёте другие ограничения для ffmpeg и иногда эти оптимизации перестают работать.

→ Ссылка