Я пытаюсь заставить OpenCV обрабатывать фрейм в середине канала gstreamer.
У меня есть один канал gstreamer, генерирующий поток и отправляющий его в appsink для получения кода OpenCV:
v4l2src ! ffmpegcolorspace ! jpegenc ! appsink name=sink
И другой канал получает его от appsrc (на который OpenCV отправляет данные) и выводит его на экран:
appsrc name=src ! jpegdec ! xvimagesink
Я открываю каждый кадр с запросом pull-buffer на приемнике и обрабатываю его с помощью OpenCV, затем использую push-buffer на src. Я делаю все это на Python.
По какой-то причине это не работает (ошибка сегментации).
Но я не особо пытаюсь это исправить; в любом случае это ужасно неэффективно. Мне просто интересно, есть ли лучший способ заставить OpenCV обрабатывать кадр до того, как он достигнет приемника вывода?