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

У меня есть три видео в оттенках серого, представляющие красный, зеленый и синий каналы из видео. Я извлек их, используя 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?

1 ответ

Решение

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

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

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