В экспериментальных целях мне нужно отфильтровать видео (используя опцию -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 ответ1

1

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .