Raspberry Pi als E/A für Webcams verwenden

Raspberry Pi als E/A für Webcams verwenden

Ich arbeite an einem Projekt, bei dem ein Raspberry Pi als E/A-Platine für mehrere Servos verwendet wird, die eigentlich von einem anderen Computer gesteuert werden, der über Ethernet mit dem RPi verbunden ist.

Ich muss dem Projekt zwei USB-Webcams hinzufügen und würde sie gerne mit dem RPi verbinden, um den einzelnen Standort für E/A beizubehalten, falls das Sinn ergibt.

Ich suche nach der einfachsten Methode mit der geringsten Latenz, um die Eingaben von den Webcams an den Hostcomputer weiterzuleiten. Ich habe versucht, Usbip und ffmpeg zum Streamen der Daten zu verwenden, aber bei beiden Methoden traten Probleme auf. Gibt es noch andere Vorschläge? Oder sollte ich eine der Methoden weiterverfolgen, die ich ausprobiert habe?

Danke!

Antwort1

Verfügen Ihre Webcams über Hardwarekomprimierung? Oder führen Sie die Komprimierung auf dem RPi durch? Dessen VideoCore-Prozessor ist für diese Art von Arbeit geeignet, aber … Sie müssen OpenMAX verwenden, um auf den VideoCore auszulagern, da der ARM-Coprozessor, auf dem Linux läuft, nicht einmal annähernd in der Lage ist, einen Stream mit niedriger Auflösung zu komprimieren. Programme, die VideoCore-Codecs laden, sind omxplayereinige gstreamerPlugins.

Selbst bei Verwendung von VideoCore kommt es bei der Übertragung der Rohvideodaten über die interne USB-Verbindung zu Bandbreitenproblemen.

Ihre möglichen Optionen sind daher

  1. Kopieren Sie vorkomprimiertes (innerhalb der Webcam selbst) Video von USB auf Ethernet.
  2. Verwenden Sie das RPi-Kameramodul, das mit einem Videoport mit hoher Bandbreite auf dem Raspberry Pi verbunden ist, direkt mit dem VideoCore zur Verarbeitung und Komprimierung.

Bei letzterer Option ist die Latenz wahrscheinlich deutlich geringer, aber Sie erhalten nur einen Stream. Theoretisch ist es möglich, zwei Streams über den einzelnen Videoport zu verschachteln, aber der Codec auf dem VideoCore müsste so ausgelegt sein, dass er die beiden Streams akzeptiert und trennt, und die technischen Daten dafür sind nur den größten Kunden von Broadcom unter Geheimhaltungsvereinbarung zugänglich.

Weitere Informationen zum Entwicklungsprozess von Video-Codecs finden Sie in den Raspberry Pi-Foren. Kurzfassung: Broadcom erledigt den Großteil der Arbeit, die Raspberry Pi Foundation hat zwar Zugriff auf die technischen Daten, aber nicht genügend Ingenieure, und die Geheimhaltungsvereinbarung verbietet es ihnen, die Arbeit auszulagern.

verwandte Informationen