Слияние каналов 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 оттуда. Просто измените порядок компонентов.