Volevo avere alcune idee su come alcuni di voi avrebbero affrontato questo problema. Ho un robot, che esegue Linux e usa una webcam (con un driver v4l2) come uno dei suoi sensori. Ho scritto un pannello di controllo con gtkmm. Sia il server che il client sono scritti in C++. Il server è il robot, il client è il "pannello di controllo". L'analisi delle immagini sta accadendo sul robot, e mi piacerebbe per lo streaming indietro il video dalla telecamera al pannello di controllo per due motivi: A) per il divertimento B) per sovrapporre l'analisi delle immagini risultastreaming di video da e verso più fonti
Quindi la mia domanda è, quali sono alcuni buoni modi per trasmettere video dalla webcam al pannello di controllo e dare priorità al codice del robot per elaborarlo? Non mi interessa scrivere il mio schema di compressione video e metterlo attraverso la porta di rete esistente, una nuova porta di rete (dedicata ai dati video) sarebbe meglio che io pensi. La seconda parte del problema è come faccio a visualizzare i video in gtkmm? I dati video arrivano in modo asincrono e non ho il controllo su main() in gtkmm, quindi penso che sarebbe difficile.
Sono aperto all'utilizzo di cose come vlc, gstreamer o qualsiasi altra libreria di compressione generale che non conosco.
grazie!
MODIFICA: Il robot ha un processore da 1 GHz, con una versione desktop simile a Linux, ma senza X11.
solo un pensiero: è possibile utilizzare una libreria vlc in un'applicazione utente per ottenere video in streaming VLC? In tal caso, potrei avere il flusso vlc e poi fare in modo che l'analisi delle immagini ottenga i dati video da una connessione loopback, e il pannello di controllo faccia lo stesso, ma da remoto. –
non sono sicuro di vlc, ma ffserver è abbastanza facile da incorporare. –
btw, vlc e ffserver sono entrambi basati su ffmpeg (libavcodec/ibavformat) –