Wir haben ein Gerät, das eine analoge Kamera hat. Wir haben eine Karte, die es ausprobiert und digitalisiert. Dies alles geschieht in directx. Zu diesem Zeitpunkt ist das Ersetzen von Hardware keine Option, aber wir müssen so programmieren, dass wir diesen Video-Feed in Echtzeit sehen können, unabhängig davon, welche Hardware oder Betriebssystem-Änderungen in der Zukunft auftreten.Implementieren IP-Kamera
Entlang dieser Zeile haben wir Qt gewählt, um eine GUI zu implementieren, um diesen Kamera-Feed anzuzeigen. Wenn wir jedoch in Zukunft zu einem Linux oder einer anderen eingebetteten Plattform wechseln und andere Hardware (einschließlich des physischen Geräts, auf dem der Kamera-/Videosampler lebt) ändern, müssen wir auch die Kamera-Display-Software ändern, und das wird es auch ein Schmerz, weil wir es in unsere GUI integrieren müssen.
Ich schlug vor, zu einem abstrakteren Modell zu migrieren, bei dem Daten über einen Socket an die GUI gesendet werden und das Video nach dem Parsen aus dem Socket-Stream live angezeigt wird.
Erstens, ist das eine gute Idee oder eine schlechte Idee?
Zweitens, wie würden Sie so etwas implementieren? Wie liefern die Videosampler normalerweise brauchbare Ergebnisse? Wie kann ich diesen Ausgang über einen Sockel schieben? Sobald ich am empfangenden Ende die Ausgabe parsing, woher weiß ich, was mit der Ausgabe zu tun ist (wie in wie die Ausgabe zum Rendern bekommen)? Das einzige, was mir einfällt, wäre, jedes Sample in eine Datei zu schreiben und dann den Inhalt der Datei jedes Mal anzuzeigen, wenn ein neues Sample eintrifft. Dies scheint mir eine ineffiziente Lösung zu sein, wenn es überhaupt funktionieren würde.
Wie empfehlen Sie, dass ich damit umgehe? Gibt es für so etwas plattformübergreifende Bibliotheken?
Vielen Dank.
edit: ich bin bereit, Vorschläge von etwas anderes als das, was oben aufgeführt ist, zu akzeptieren.
Ich verstehe, wo Sie herkommen, aber die lokale Hardwarebeschleunigung kann sich auf einem anderen Gerät befinden oder auf demselben Gerät. Gerade jetzt kommt es über USB auf das Display. Wenn wir die Idee von Sockets rauswerfen, was in Ordnung ist, wissen Sie von irgendwelchen LGPL oder proprietären plattformübergreifenden Bibliotheken, die helfen werden, so etwas in Qt zu erreichen? –
Bitte fügen Sie auch einen Platz oder etwas zu Ihrer Antwort hinzu, damit ich es +1 geben kann. Es sagt, die Abstimmung sei zu alt, um sie zu ändern. –