Quería obtener algunas ideas sobre cómo algunos de ustedes abordarían este problema. Tengo un robot, que ejecuta Linux y utiliza una cámara web (con un controlador v4l2) como uno de sus sensores. He escrito un panel de control con gtkmm. Tanto el servidor como el cliente están escritos en C++. El servidor es el robot, el cliente es el "panel de control". El análisis de imágenes está sucediendo en el robot, y me gustaría volver a transmitir el vídeo de la cámara al panel de control por dos razones: A) para la diversión B) para superponer los resultados de análisis de imágenestransmisión de video hacia y desde múltiples fuentes
Así que mi pregunta es decir, ¿cuáles son algunas buenas formas de transmitir video desde la cámara web al panel de control, así como dar prioridad al código del robot para procesarlo? No me interesa escribir mi propio esquema de compresión de video y ponerlo a través del puerto de red existente; creo que un nuevo puerto de red (dedicado a los datos de video) sería lo mejor. La segunda parte del problema es ¿cómo se muestra el video en gtkmm? Los datos de video llegan de manera asincrónica y no tengo control sobre main() en gtkmm, así que creo que eso sería complicado.
Estoy abierto a usar cosas como vlc, gstreamer o cualquier otra librería de compresión general que desconozca.
gracias!
EDIT: El robot tiene un procesador de 1GHz, ejecutando un escritorio como la versión de Linux, pero no X11.
solo una idea: ¿es posible utilizar una biblioteca vlc en una aplicación de usuario para obtener vlc video en tiempo real? Si es así, tal vez podría transmitir vlc y luego hacer que el análisis de imagen obtenga los datos de video de una conexión de bucle invertido, y el panel de control haga lo mismo, pero de forma remota. –
no estoy seguro acerca de vlc, pero ffserver es bastante fácil de integrar. –
btw, vlc y ffserver están basados en ffmpeg (libavcodec/ibavformat) –