mujik1
--bitrate - это ABR режим кодирования c диапазоном отклонения указываемым в ratetol.
Чем больше ratetol тем больше отклонения как в макс. так и в мин. стороны (для GOP'a вцелом, а не кадров в GOP'e.*)
Макс. битрейт можно принудительно урезать через vbv-maxrate, vbv-bufsize.
В случаее если bitrate=vbv-maxrate=vbv-bufsize (CBR), то сжатие в 2 проходах нет надобности.
Но это еще не полноценный CBR режим, только добавление флага --filler, к вышеуказанным настройкам, активирует hard-cbr режим, в котором битрейт будет максимально возможно статичен, даже если это существенно повлияет на качество.
Для CRF (VBR) пределы не указываются битрейтами, т.к. вы задаёте параметр "качества" сжатия на квантах, к значению которого кодек будет стремиться.
Конечно верхнюю планку CRF можно ограничить как crf-max так и vbv-maxrate, vbv-bufsize. Но нижнюю планку вы жестко ограничить не можете, разве что через qpstep=crf, но только для соседних кадров, а не в сцене вцелом.
Кодек не будет добавлять лишнего битрейта, если видео с указанным "качеством" (CRF для GOP и CRF минус QPSTEP для кадров) можно сжать в битрейт который ниже vbv-maxrate, vbv-bufsize.
*GOP может достигать например 10 сек, т.е. если взять весь размер GOP'a и поделить на 10, то мы получим усреднённый битрейт, и он будет равен заданному bitrate с отклонением на ratetol, но в тоже время секунды в GOP'e могут весьма сильно отличаться от указанного битрейта. В ABR режиме GOPы между собой представляют больше CBR вид по усреднённому битрейту, а в VBR режиме GOPы могут весьма сильно отличать между собой по усреднённому битрейту.
Поэтому иногда может случиться конфуз, когда например большой фильм с разными вариациями шумов и движения (например фильм "
Поиск" имеют много статичных, простых сцен с редкими вставками быстро движущейся мелкой детализации), сжимают в ABR, то на некоторые GOPы необходимо намного больше битрейта от указанного, дабы сохранить значения квантов и сильно проседают в качестве (и 2 pass не спасает)., либо наоборот, раздувают общий битрейт файла за счет ориентации на такие сцены.
VBR (CRF) режим от такого застрахован, так как не ориентируется на конечный усреднёны битрейт GOP'ов, а на показания квантизера.
По умолчанию, в стандарте h264 не предусмотрены полноценный (hard) CBR и VBR (CRF) режимы, стандарт ориентирован на ABR битрейты и возможность разнообразной вариации.
VBR (CRF) придумали уже позже, на основе вариаций ABR режима. Variable в mediainfo просто информационный доп.флаг.
т.е. для соблюдения стандарта, так таковой жесткой разницы между cbr, abr и vbr - нет, т.к. все три это производные от abr.
Единственная разница в ограничениях, накладываемых хард-спецификацией декодеров.