Слияние каналов RGB в FFMPEG

708
Draconis

У меня есть три видео в оттенках серого, представляющие красный, зеленый и синий каналы из видео. Я извлек их, используя extractplanesфильтр, и отправил их через разные конвейеры.

Теперь я хотел бы объединить их снова. Но пока extractplanesработает отлично, mergeplanesнет. Моя первая попытка была такая:

[r][g][b] mergeplanes=0x001020 [output] 

Это интерпретирует мои каналы RGB как YUV, а это не то, что я хочу. Моя следующая попытка была такая:

[r][g][b] mergeplanes=0x001020:rgb24 [output] 

Но согласно сообщению об ошибке Only planar formats with more than one component are supported.(То же самое для всех других форматов пикселей RGB и RGBA, которые я пробовал).

Есть ли другой способ соединить эти каналы? Или какой-то способ убедить mergeplanesвывести RGB?

0

1 ответ на вопрос

0
Draconis

Как говорится в сообщении об ошибке, mergeplanesвывод возможен только в плоском формате: то есть все значения первого компонента вместе, все значения второго компонента вместе и т. Д. Форматы FFMPEG RGB неплоские: они группируют значения по пикселям, а не по компонентам. Такmergeplanes не могу с ними работать.

Однако FFMPEG поддерживает формат GBRP (зеленый-синий-красный плоский). Таким образом, вы можете mergeplanesэкспортировать в него, а затем конвертировать в RGB. Просто измените порядок компонентов.

Похожие вопросы