.png)
В экспериментальных целях мне нужно отфильтровать видео (используя -vf
option) и изменить, скажем, яркость, но сохранить тот же битрейт, что и в исходном видео.
Просто в целях тестирования я изменяю значения 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
Всегда существует необходимость в максимальном размере для хранения чего-либо. Если указать 100 ТБ в секунду, видео не будет таким уж большим, потому что без добавления отступов в исходном видео просто недостаточно информации, чтобы заполнить столько места. Полностью черный кадр содержит почти нулевую информацию. Это буквально самая простая вещь для сжатия. Следовательно, после того, как он пройдет через алгоритм сжатия, на выходе получится всего пара бит. Это как архивировать файл, содержащий одни нули. Попробуйте сделать каждый пиксель случайным, и ваш файл станет огромным.
Я предлагаю почитать по теории информации.