zweite Kamera starten mit Opencv in Python nicht möglich

  • Hallo zusammen,


    Ich habe drei USB-Kameras an meinen Raspberry angeschlossen.

    Wenn ich ein einfaches Programm starte, um ein Bild zu erzeugen und abzuspeichern, geht das mit allen drei Kameras einzeln einwandfrei.

    Versuche ich allerdings zwei oder alle drei der Kameras in einem Programm zu starten bleibt das Programm beim starten der zweiten Kamera stehen.


    - Raspberry Pi 4 Model B Rev 1.1

    - Raspberry Pi OS (32-bit)

    - Kameras:

    https://www.robotshop.com/de/d…FJkmeOrDMu5xoCA4UQAvD_BwE

    Dieser Code funktioniert, auch mit den anderen Kameras (kamera links/rechts/oben)

    lediglich folgendes wird angeigt:



    Code
    pi@raspberrypi:~/Desktop/client/lro $ sudo python3 l.py
    
    
    [ WARN:0@4.819] global /home/pi/opencv/modules/videoio/src/cap_gstreamer.cpp (1405) open OpenCV | GStreamer warning: Cannot query video position: status=0, value=-1, duration=-1
    
    
    Kamera links gestartet
    
    
    gespeichert


    Versuche ich allerdings mit zwei oder drei Kameras, passiert folgendes: (hier Beispiel mit zwei Kameras)

    starte ich diesen Code, wird folgendes angezeigt und das Programm bleibt stehen (mindestens 20 Minuten abgewartet)



    Code
    pi@raspberrypi:~/Desktop/client/lro $ sudo python3 lr.py
    
    
    [ WARN:0@4.928] global /home/pi/opencv/modules/videoio/src/cap_gstreamer.cpp (1405) open OpenCV | GStreamer warning: Cannot query video position: status=0, value=-1, duration=-1
    
    
    Kamera links gestartet


    weiter läuft das Programm nicht, d.h. die zweite Kamera lässt sich nicht initialisieren.

    Breche ich ab wird folgendes angezeigt:



    Auch wenn ich die funktionierenden Skripte, die nur eine Kamera aufrufen mittels Multithreading parallel laufen lasse, startet nur die Kamera deren Skript als erstes aufgerufen wird...


    Ich habe im Internet aber zahlreiche Beispiele gesehen, dass dies mit mehreren Kameras gleichzeitig geht- z.B.:

    https://www.youtube.com/watch?v=haJfgQz_tKk&t=844s


    Auch am Laptop konnte ich mit Python auf zwei Kameras parallel zugreifen- also an den Kameras sollte es nicht liegen.


    P.S. Ich bezeichne mich eher als Laie und hoffe, dass ich keinen mit möglicher Unverständnis verärgere :saint:



    Ich würde mich sehr über Hilfe dazu freuen:)


    Gruß Paul

    Edited 2 times, last by pk180 ().

  • Ich habe drei USB-Kameras an meinen Raspberry angeschlossen.

    Hängen die drei Cams alle direkt an den USB-Ports des RPi? Falls ja, hast Du evtl. einen aktiven (mit eigenem Netzteil) USB-Hub "rumliegen", den Du zwischen Kameras und den RPi setzen könntest?


    Ich könnte mir jedenfalls vorstellen, dass zwei Kameras zu viel Strom ziehen um gleichzeitig am RPi zu laufen. Du kannst auch mal nachsehen ob es Meldungen dazu in der syslog gibt:


    Code
    cat /var/log/syslog | grep undervoltage
  • Hängen die drei Cams alle direkt an den USB-Ports des RPi?

    Vielen Dank für die Schnelle Antwort.

    Ja die hängen alle drei direkt am RPi.



    hast Du evtl. einen aktiven (mit eigenem Netzteil) USB-Hub "rumliegen", den Du zwischen Kameras und den RPi setzen könntest?

    leider nein.

    Ich könnte mir jedenfalls vorstellen, dass zwei Kameras zu viel Strom ziehen um gleichzeitig am RPi zu laufen. Du kannst auch mal nachsehen ob es Meldungen dazu in der syslog gibt:

    Wenn ich diesen Befehl ausführe kommt nichts zurück, mach ich da was Falsch, oder gibt es dann einfach keine Fehlermeldung?

    Laut Datenblatt der Kamera zieht diese bei 5V maximal 200mA.

    Folgendes hab ich gerade auf der Raspberry Seite gefunden:

    Originally certain models of Raspberry Pi limited the USB ports to a maximum of 600mA. Setting max_usb_current=1 changed this default to 1200mA. However, all firmware now has this flag set by default, so it is no longer necessary to use this option.


    D.h. der Strom müsste in Theorie für alle drei Kameras reichen, und noch wahrscheinlicher für 2.

    Dann hab ich jetzt noch mit dem Befehl max_usb_current=1 die Strombegrenzung hochgesetzt wonach es ja für zwei Kameras bei weitem reichen sollte, aber leider mit gleichem Resultat.

    Edited once, last by pk180 ().

  • Wenn ich diesen Befehl ausführe kommt nichts zurück, mach ich da was Falsch, oder gibt es dann einfach keine Fehlermeldung?

    Dann kommt einfach keine Meldung. Dann wird es vermutlich nicht an der Stromversorgung liegen.


    Folgendes hab ich gerade auf der Raspberry Seite gefunden:

    https://www.raspberrypi.com

    Originally certain models of Raspberry Pi limited the USB ports to a maximum of 600mA. Setting max_usb_current=1 changed this default to 1200mA. However, all firmware now has this flag set by default, so it is no longer necessary to use this option.

    Das ist bei einem aktuellen Raspberry Pi OS nicht mehr nötig, Das ist die per default schon so.


    Theoretisch sollte das für die Kameras ausreichen. :conf: Naja, war nur so eine Idee.


    Btw. Bitte setz auch die die Terminalausgaben in Codeblöcke (), denn die orangene Schrift ist schlecht lesbar und für Zitate gibt es die Sprechblase () im Foreneditor. ;) Danke!

  • Theoretisch sollte das für die Kameras ausreichen. :conf: Naja, war nur so eine Idee.


    Btw. Bitte setz auch die die Terminalausgaben in Codeblöcke (), denn die orangene Schrift ist schlecht lesbar und für Zitate gibt es die Sprechblase () im Foreneditor. ;) Danke!

    ok trotzdem schonmal Danke!

    Und die Layout Tipps sind umgesetzt;)