Domanda

Abbiamo un dispositivo dotato di una telecamera analogica. Abbiamo una carta che i campioni IT e digitalizza esso. Tutto questo è fatto in DirectX. A questo punto nel tempo, sostituzione dell'hardware non è un'opzione, ma abbiamo bisogno di codificare in modo tale che possiamo vedere questo feed video in tempo reale indipendentemente da eventuali modifiche hardware o sistema operativo sottostante si verificano in futuro.

In questa linea, abbiamo scelto Qt per implementare un'interfaccia grafica per visualizzare questo feed fotocamera. Tuttavia, se si passa ad un Linux o altra piattaforma embedded per il futuro e cambiare altro hardware (compreso il dispositivo fisico dove vive il / video campionatore fotocamera), avremo bisogno di cambiare il software di visualizzazione della fotocamera come bene, e che sta per essere un dolore perché abbiamo bisogno di integrarlo nel nostro GUI.

Quello che ho proposto è stato la migrazione a un modello più astratto in cui i dati vengono inviati su un socket per l'interfaccia grafica e il video viene visualizzato in diretta dopo essere stato analizzato dal flusso di corrente.

In primo luogo, questa è una buona idea o una cattiva idea?

In secondo luogo, come è possibile implementare una cosa del genere? Come fanno i campionatori video di solito danno uscita utilizzabile? Come posso spingere questa uscita su un socket? Una volta che sono sul lato sbagliato verificando l'output, come faccio a sapere cosa fare con l'uscita (come nel modo in cui per ottenere il risultato di rendere)? L'unica cosa che mi viene in mente sarebbe quella di scrivere ogni campione in un file e poi per visualizzare il contenuto del file ogni volta che un nuovo campione arriva. Questo mi sembra una soluzione inefficiente per me, se avrebbe funzionato affatto.

Come mi consigliate ho gestire questa situazione? Ci sono delle librerie multipiattaforma disponibile per una cosa del genere?

Grazie.

modifica: Sono disposto ad accettare i suggerimenti di qualcosa di diverso, piuttosto che ciò che è elencato sopra

.
È stato utile?

Soluzione

Tutto ciò che duplica il flusso video sta andando a costare in termini di prestazioni, soprattutto in uno spazio incorporato. Nella maggior parte delle situazioni per il video, credo che è meglio cercare di utilizzare l'accelerazione hardware locale per far saltare il video direttamente sullo schermo. Con un po 'corretta l'incapsulamento, si dovrebbe essere in grado di utilizzare Qt per la GUI che circonda il video, e hanno una classe che è specifica piattaforma che si utilizza per controllare il video vero e proprio disegno per lo schermo (dove disegnare, e quanto grande, etc. ).

Modifica

Si potrebbe anche voler guardare in biblioteca Phonon. Non ho guardato molto, ma sembra sostenere che mostra il video che può essere acquisito da una serie di fonti diverse.

Altri suggerimenti

Hai guardato QVision ? Si tratta di un framework basato Qt per la gestione di video e video di elaborazione. Non è necessario il trattamento, ma penso che farà quello che vuoi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top