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