ayufan/camera-streamer empfangen decodieren und in pyqt anzeigen

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
sauterle
User
Beiträge: 81
Registriert: Mittwoch 27. Juli 2022, 21:33

hallo
ich habe das Kamera-streamer Projekt https://github.com/ayufan/camera-streamer von github auf einem Raspery Pi instaliert und den service gestartet. wie kann ich nun den Videostream empfangen und decodieren und in pyqt anzeigen. ich habe im Netz keinerlei Informationen(weder bei englischsprachiger noch bei deutschsprachiger Suche) gefunden. über irgendwelche Hilfe wäre ich sehr dankbar. Der Fokus dieser Frage ist vor allem das empfangen und decodieren für das anzeigen in pyqt findet sich sicherlich etwas im Netz
LG sauterle
Benutzeravatar
__blackjack__
User
Beiträge: 13116
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Welchen Videostream? Da gibt es ja potentiell mehrere Formate die das Projekt ausliefert.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
sauterle
User
Beiträge: 81
Registriert: Mittwoch 27. Juli 2022, 21:33

Hallo
ich wusste bisher gar nicht dass es unterschiedliche streaming Formate gibt, welches hat pro Pixel die geringste Latenz. Und wie wählt man welches Format man haben will?
Ich habe mit wireshark den Netzwerkkverhkehr von dem Raspery pi aufgezeichnet und gesehen das er abgesehen von ein paar ssh tcp usw. frames nichst regelmäßig "abschickt". Daraufhin habe ich systemctl status camera-streamer-raspi-v2-8MP.service ins terminal eingegeben und folgende Ausgabe erhalten:(ich habe die einzelnen Blöcke die von links nach recht mit den Pfeiltasten einsehbart sind untereinander geschrieben)

camera-streamer-raspi-v2-8MP.service - camera-streamer web camera for Pi Came>
Loaded: loaded (/usr/share/camera-streamer/examples/camera-streamer-raspi->
Active: inactive (dead)
Condition: start condition failed at Mon 2023-10-02 15:06:11 BST; 10min ago
└─ ConditionPathExists=/sys/bus/i2c/drivers/imx219/10-0010/video4l>

Oct 01 19:48:23 roborasp systemd[1]: Condition check resulted in camera-streame>
Oct 02 15:06:11 roborasp systemd[1]: Condition check resulted in camera-streame>
~

camera-streamer web camera for Pi Camera v2.1 8MP on Raspberry PI
treamer/examples/camera-streamer-raspi-v2-8MP.service; enabled; vendor preset: >

on 2023-10-02 15:06:11 BST; 10min ago
/bus/i2c/drivers/imx219/10-0010/video4linux was not met

dition check resulted in camera-streamer web camera for Pi Camera v2.1 8MP on R>
dition check resulted in camera-streamer web camera for Pi Camera v2.1 8MP on R>

a v2.1 8MP on Raspberry PI
2-8MP.service; enabled; vendor preset: enabled)




nux was not met

web camera for Pi Camera v2.1 8MP on Raspberry PI being skipped.
web camera for Pi Camera v2.1 8MP on Raspberry PI being skipped.
~
~

~
instaliert und den service gestartet habe ich folgendermassen:

erstens:
if [[ -e /etc/default/raspberrypi-kernel ]]; then
PACKAGE=camera-streamer-raspi_0.2.6.bullseye_$(dpkg --print-architecture).deb
else
PACKAGE=camera-streamer-generic_0.2.6.bullseye_$(dpkg --print-architecture).deb
fi
wget "https://github.com/ayufan/camera-stream ... 6/$PACKAGE"
sudo apt install "$PWD/$PACKAGE"

zweitens:
systemctl enable /usr/share/camera-streamer/examples/systemctl/camera-streamer-raspi-v2-8MP.service
systemctl start camera-streamer-raspi-v2-8MP.service

ich vermute ich habe irgendein Schritt weggelassen Ich habe bisher noch nichts konfiguriert das wollte ich mache wenn alles andere funktioniert vielleicht liegt da der Fehler
LG sauterle
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das ist doch beileibe nicht dein erstes Rodeo hier. Auch solche Posts werden deutlich besser les- und verstehbar, wenn sie in Code Tags gefasst sind.

Ich würde die Service Geschichten erstmal ignorieren, und den Prozess von Hand starten. Um Fehlerausgaben zu sehen und schneller mit den Argumenten zu spielen.

Und wenn du keine empfangende gegenstelle hast. (Zb VLC), wirst du auch keinen Netzwerkverkehr sehen.
sauterle
User
Beiträge: 81
Registriert: Mittwoch 27. Juli 2022, 21:33

ich habe den Befehl nicht als service ausgeführt. wenn ich mich nicht irre müsste er

Code: Alles auswählen

./camera-streamer --camera-path=/base/soc/i2c0mux/i2c@1/imx219@10 --camera-type=libcamera --camera-format=YUYV --camera-width=3280 --camera-height=2464 --camera-fps=30 --camera-nbufs=2 --camera-snapshot.height=1080 --camera-video.height=720 --camera-stream.height=480 --camera-options=brightness=0.1 --http-listen=0.0.0.0 --http-port=8080 --rtsp-port
sein. das Ergebnis ist eine Fehlermeldung, die da lautet:

Code: Alles auswählen

./camera-streamer Version: 0.2.6 (ff539cd)
util/http/http.c: ?: HTTP listening on 0.0.0.0:8080.
output/rtsp/rtsp.cc: ?: Running RTSP server on '8554'
[0:21:26.585914035] [720]  INFO Camera camera_manager.cpp:297 libcamera v0.0.5+83-bde9b04f
device/libcamera/device.cc: CAMERA: No available cameras
device/libcamera/device.cc: CAMERA: Camera `/base/soc/i2c0mux/i2c@1/imx219@10` was not found.
device/device.c: CAMERA: Can't open device: /base/soc/i2c0mux/i2c@1/imx219@10
LG sauterle
sauterle
User
Beiträge: 81
Registriert: Mittwoch 27. Juli 2022, 21:33

hallo ich habe gerade einmal versucht testweise ein bild aufzunehmen

Code: Alles auswählen

raspistill -o test.jpg
das ging nicht die fehlermeldung war

Code: Alles auswählen

mmal: main: Error opening output file: test.jpg~
No output file will be generated
LG sauterle
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Oben zeigst du eine service unit und wie du die startest. Aber jetzt hast du doch keinen Service benutzt? Das ist verwirrend.

Die erste Fehlermeldung zeigt auf eine Fehlkonfiguration der Kamera, die zweite eher auf ein Rechteproblem.

Beide haben nix hat mit dem eigentliche Thema zu tun - wie den Stream darstellen. Ich würde also erstmal aid Fehlersuche gehen in Bezug auf welche Kamera du hast, und ob die tut, und so weiter.
sauterle
User
Beiträge: 81
Registriert: Mittwoch 27. Juli 2022, 21:33

Entschuldigung ich bin in diesen ganzen rpi/linux sachen leider ein ziemlicher Anfänger dachte die Datei die in der service Datei als auszuführende Datei angegeben ist wäre das Orginalprogramm dass ich ausführen will. wie "startet man den Prozess direkt". Das Problem mit der Testaufnahme mit raspstill hatte sich nach einem Neustart erledigt. Wo liegt der hier der Fehler;

Code: Alles auswählen

camera-streamer Version: 0.2.6 (ff539cd)
util/http/http.c: ?: HTTP listening on 0.0.0.0:8080.
output/rtsp/rtsp.cc: ?: Running RTSP server on '8554'
[0:21:57.808196871] [687]  INFO Camera camera_manager.cpp:297 libcamera v0.0.5+83-bde9b04f
device/libcamera/device.cc: CAMERA: No available cameras
device/libcamera/device.cc: CAMERA: Camera `/base/soc/i2c0mux/i2c@1/imx219@10` was not found.
device/device.c: CAMERA: Can't open device: /base/soc/i2c0mux/i2c@1/imx219@10
das hat zwar nichts mit dem Problem des Video streamens nichts direkt zu tun aber darum kann man sich nun-mal leider nicht kümmern wenn das streamen nicht funktioniert
LG sauterle
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Natürlich muss die Kamera erstmal laufen. War aber nix von zu lesen in deinem ersten Post. Und die Fehlermeldungen die du bekommst können auch wir nur googeln. Hast du das schonmal probiert?
sauterle
User
Beiträge: 81
Registriert: Mittwoch 27. Juli 2022, 21:33

Natürlich habe ich die Fehlermeldung schon gegoogelt, aber ich habe leider rein gar nichts gefunden.
LG sauterle
Benutzeravatar
sparrow
User
Beiträge: 4195
Registriert: Freitag 17. April 2009, 10:28

@sauterle: Glaube ich nicht. Schon der erste Treffer zeigt, dass dort das Problem war, dass die Hardware gar nicht zueinander gepasst hat.
Welche Hardware du verwendest, also welchen Pi und welche Kamera, erwähnst du aber nirgends.

Um das mal in ein anderes Bild zu übertragen: Du bist hier gerade bei der Straßenmeisterei und fragst, welche Reifen du auf dein Auto machen sollst, damit es auf der Autobahn endlich fährt. Und auf Nachfrage stellt sich jetzt heraus: Offensichtlich hat das Auto einen Motorschaden.
Aber nur weil die Straßenmeisterei Straßen baut und wartet, muss es schon mit erheblichem Glück verbunden sein, dass sich da jetzt jemand deinen Motor anguckt. Zumindest würde ich damit in eine Werkstatt schieben.
Das ist, was hier gerade passiert.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Also ich finde da jede Menge. Und wenn dem nicht so wäre, könnte man ja erst recht nur mit den Schultern Zucken. Denn woher soll man sonst wissen, was Phase ist?

Sparrow hat’s schon gesagt: für das Problem fehlen viele Informationen, und im Zweifel ist auch ein anderes Forum dafür sogar besser geeignet, weil fokussiert auf den Pi.
sauterle
User
Beiträge: 81
Registriert: Mittwoch 27. Juli 2022, 21:33

hallo ich glaube das problem liegt daran das ich einen viel zu alten pi verwende sobald ich mir einen neueren bosorgt habe werde ich mich hier nocheinmal melden
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ob der zu alt ist, keine Ahnung. Aber bevor du nicht irgendwie ein Bild aus dem rausbekommen hast, kann auch kein Streaming funktionieren.
Benutzeravatar
__blackjack__
User
Beiträge: 13116
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@sauterle: Die erste Frage wäre ja welches Betriebssystem da drauf ist. Der Dateinamen von dem Package sagt es will Bullseye haben. Und als Hardware ist auch wirklich das hier angeschlossen https://www.raspberrypi.com/products/camera-module-v2/ ? Dann wäre der nächste Schritt auch erst einmal das die Kamera mit Bordmitteln erkannt wird und funktioniert.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
sauterle
User
Beiträge: 81
Registriert: Mittwoch 27. Juli 2022, 21:33

Hallo
Das Programm scheint nun zu laufen und es wird erfolgreich als Service gestartet, welcher Stream hat die geringste Latenz und wie kann man diesen nun empfangen und decodieren
LG sauterle
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Benutz VLC zum empfangen, und probier rum, wie es am besten geht.
sauterle
User
Beiträge: 81
Registriert: Mittwoch 27. Juli 2022, 21:33

der webrtc-stream scheint mir der schnellste zu sein , auch wenn man diesen mit scheinbar mit vlc nicht empfangen kann. wie kann man diesen nun decodieren empfangen und in pyqt anzeigen, gibt es da iergendwelche librarys die da hilfreich sind. ich glaube bei webrtc handelt es sich um eine art h264 stream dessen url http://<ip von raspery pi>:8080/webrtc liegt
LG uns Danke sauterle
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Angeblich ist WebRTC Teil der Qt Webengine, die wuerde ich also mal probieren.
sauterle
User
Beiträge: 81
Registriert: Mittwoch 27. Juli 2022, 21:33

ich finde im internet leider nichts über das empfangen von web real time comunication(webrtc) vdeostreams mit python weiss irgndjemand wie es geht oder den link zu einer guten dokumatation darüber?
LG sautere
Antworten