Фильтрация видео с сохранением битрейта (FFmpeg)

Для экспериментальных целей мне нужно отфильтровать видео (используя -vf вариант) и изменить, скажем, яркость, но сохранить тот же битрейт, что и в оригинальном видео.

Просто для целей тестирования я изменяю значения RGB, чтобы сделать видео полностью черным, используя следующую строку:

ffmpeg -i input.mp4 -vf lutrgb='r=0.0*val:g=0.0*val:b=0.0*val' output.mp4

Пока что я попытался указать битрейт вручную, добавив -b, -minrate/maxrate а также -q опций этой линии, но независимо от того, что я делаю, FFmpeg продолжает сокращать размер выходного видео до нескольких килобайт.

И мой вопрос - возможно ли сохранить битрейт на одном уровне, даже если я изменю значения RGB, чтобы они были полностью черными (как крайний случай).

1 ответ

Всегда существует необходимость в максимальном размере для хранения чего-либо. Если вы укажете 100Tb в секунду, видео будет не таким большим, потому что без добавления отступов в исходном видео просто недостаточно информации, чтобы заполнить это место. Полностью черная рамка имеет практически нулевую информацию. это буквально самая простая вещь для сжатия. Следовательно, после того, как он пройдет через алгоритм сжатия, на выходе будет только пара битов. Это как архивирование файла, содержащего все нули. Попробуйте сделать каждый пиксель случайным, и ваш файл будет огромным.

Я предлагаю читать по теории информации.

Другие вопросы по тегам