The goal of this project is to implement a server-side WebRTC application that can process images from a live video stream within a Python OpenCV context in real time. More specifically, we are looking for a Kurento WebRTC Media Server module which can integrate with a Python OpenCV application.
Here’s the gist:
- The server-side WebRTC framework we’re using is called Kurento
- Kurento has documentation for how to create a C++ OpenCV module here: http://doc-kurento.readthedocs.io/en/stable/mastering/develop_kurento_modules.html
- We would like to extend the standard Kurento OpenCV module pattern by passing the C++ OpenCV data into a Python OpenCV context. There are various approaches that allow you to go from C++ OpenCV to Python OpenCV, including: embedding Python, converting Mat to Numpy, sockets, pipes, etc. Choose the approach that works best.
- The complete setup including Kurento Media Server, the OpenCV C++ module and the OpenCV Python process should all run in a standalone Docker container. Kurento has officially supported Docker projects, so extending one of those is likely the way to go.
- OpenCV, especially data structure implementation (i.e. Mat, Numpy, etc)
- C++ to Python communication techniques (e.g. embedding, sockets, pipes, etc)
- Basic familiarity with WebRTC
- Basic familiarity with Docker