Starten einer Webcam-Anwendung in Linux ohne Anzeige

531
GreenPenguin

Ich habe eine Webcam-Anwendung in Linux. Beim Start wird die Webcam initialisiert und das Bild wird in einem neuen Fenster in startx live angezeigt. Einige Berechnungen werden ebenfalls ausgeführt und das Ergebnis wird im Fenster angezeigt. Es gibt auch einige Schaltflächen im Fenster, in denen der Benutzer die Einstellungen vornehmen kann.

Jetzt möchte ich, dass das Programm bei jedem Start von Linux automatisch startet (also die Webcam startet). Das Problem ist, dass das Programm nicht ausgeführt werden kann, wenn ich das Programm in Skripts wie /etc/rc.local stecke und als Hintergrund ausgeführt habe, da die X-Anzeige nicht vorhanden ist. Darüber hinaus möchte ich den Benutzern die Möglichkeit geben, das Livebild und die verarbeiteten Ergebnisse bei Bedarf zu sehen. Nun stelle ich mir einige mögliche Lösungen vor:

(1) Verwenden Sie eine Methode (z. B. VNCserver), um den X-Server zu starten, ohne ihn auf dem Bildschirm anzuzeigen, und leiten Sie dann die Anzeige an den Server um und führen Sie das Programm aus. Wenn der Benutzer das Livebild und die verarbeiteten Ergebnisse sehen möchte, startet er den VNC-Client, um es anzuzeigen.

(2) Verwenden Sie eine Methode, um die Anzeige auf einen Dummy-X-Server umzuleiten, damit das Programm ohne Fehler starten kann. Dann muss es jedoch eine Methode geben, mit der der Benutzer das Programm aufrufen und die Informationen des ausführenden Prozesses übernehmen kann, um das Livebild und die verarbeiteten Ergebnisse bei Bedarf zu sehen.

(3) Ändern Sie das Programm so, dass der Anzeigeteil übersprungen wird, wenn die Anzeige keine X-Fenster unterstützt. Wie bei (2) muss es eine Methode geben, mit der der Benutzer das Programm aufrufen und die Informationen des Ausführungsprozesses übernehmen kann, um das Live-Abbild und die verarbeiteten Ergebnisse bei Bedarf anzuzeigen.

(4) Ändern Sie das Programm und teilen Sie es in zwei Programme auf, sodass das laufende Programm nur die Initialisierung der Webcam übernimmt, die Bilddaten abruft und die Berechnung durchführt, während das andere Programm die Bilddaten und die verarbeiteten Ergebnisse (über den IPC-Shared Memory) abruft ) Wenn Sie vom Benutzer aufgerufen werden, wird das Ergebnis in einem Fenster in X angezeigt.

Während ich glaube, dass (1) und (4) machbar sind, wie sieht es mit (2) und (3) aus? Und welche der möglichen Lösungen wird die beste sein?

0

1 Antwort auf die Frage

0
Hans Deragon

Laut The Webcam HOWTO gibt es mehrere Lösungen . Hier sind einige, die Fotos / Videos aufnehmen könnten. Mit dem Scripting können Sie erreichen, was Sie wollen. Auf der Website finden Sie eine Liste von Tools, die möglicherweise Ihren Bedürfnissen entsprechen.

  • Streamer
  • camE
  • Bewegung
  • Webcam
  • SANE