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