1

Я пытаюсь написать фильтр ffmpeg, который берет два видео и смешивает их вместе так, что Y (яркость) первого из них становится красным каналом вывода, а Y второго - синим каналом вывода (зеленый просто устанавливается на нуль).
Другими словами, я хочу это: [v0] [v1] r = v0.y: b = v1.y: g = 0 [out]

1 ответ1

0

Предполагая, что ваши входы YUV и вы хотите упакованный RGB, используйте

ffmpeg -i yr.mp4 -i yb.mp4 -filter_complex
       "[0][1]mergeplanes=0x001000:gbrp,lut=g=0,format=rgb24" -c:v png out.mov 

В 0x001000 первая пара 00 устанавливает первую плоскость (g в gbrp) как первую плоскость первого входа, то есть яркость yr.mp4. Это случайно, так как позже г будет установлен в ноль. Затем 10 , который устанавливает вторую внешнюю плоскость на первую плоскость второго входа, т.е. яркость yb.mp4. Наконец, третья плоскость установлена на яркость первого входа. Затем лут-фильтр сбрасывает плоскость G в ноль. Фильтр формата добавлен, чтобы упаковать пиксели как общий формат rgb24 . Кодек PNG выбран так, чтобы сохранить кодирование RGB.

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