In einem früheren Beitrag habe ich beschrieben, wie mit einem Raspberry Pi Zero und Kameramodul einem Streaming Server (rtsp) aufbaut.
Nach einem Update auf Raspbian Bookworm haben sich einige Änderung ergeben. In Bookworm wurde das Programm raspistill und raspivid durch libcamera ersetzt. Aus diesem Grund folgt ein neuer Beitrag zur Installation.
Die Installation startet mit der Übertragung von Raspberry Pi OS Lite auf eine SD Karte. Die Schritte zur Einrichtung überspringen wir in diesem Beitrag, da es nur um die Installation der Kamera geht.
Die notwendigen Module für die Kamera werden in Bookworm automatisch geladen. Mit dem neuen Programm rpicam können einen ersten Funktionstest durchführen.
Das Programm rpicam-hello gibt uns mehr Informationen zum Modul wie Modell, Auflösung usw.
rpicam-hello
Ein erstes Foto können wir mit dem Programm rpicam-jpeg erstellen.
rpicam-jpeg -o test.jpg
Weitere Informationen gibt es in der Dokumentation vom Raspberry Pi.
Wir wollen jetzt das Straming mit RTSP installieren. Die Software go2rtc wird diese Aufgabe übernehmen.
Wir laden das Programm mit wget von Github runter.
wget https://github.com/AlexxIT/go2rtc/releases/download/v1.8.5/go2rtc_linux_armv6
Das Programm müssen wir noch ausführbar machen.
chmod +x go2rtc_linux_armv6
Das Programm wird mit einer Konfigurationsdatei gestartet. Hier wird das Programm rpicam-vid verwendet. Das Tuning ist für eine NoIR Kamera notwendig. Sonst werden die Farben nicht richtig dargestellt.
vim go2rtc1.yml
streams: unicast: exec:rpicam-vid -t 0 --nopreview --inline --codec h264 --framerate 5 --width 1280 --height 960 --denoise cdn_off --tuning-file /usr/share/libcamera/ipa/rpi/vc4/imx219_noir.json -o - |
Der Aufruf von go2rtc erfolgt wie folgt.
./go2rtc_linux_armv6 -config go2rtc1.yml
Damit ist die Einrichtung des Streaming abgeschlossen.
Die Funktion kann man mit VLC oder FFplay überprüfen.
ffplay rtsp://
Leider musste ich einen entscheiden Nachteil feststellen. Die neuen Programme rpicam-vid mit libcamera verwenden die CPU stärken für die Bildverarbeitung. Die CPU Auslastung steigt auf einem Raspberry Pi Zero auf 50-70 Prozent an. Zuvor lag die Auslastung bei maximal 10 Prozent, da die GPU für die Verarbeitung (codec h264) verwendet wurde.
Also doch eine Rollen rückwärts?
Es gibt die Möglichkeit die alten Treiber (Legacy camera stack) und Module (v4l2) in Bookworm zu aktivieren.
In der Konfiguration müssen wir einige Einstellungen ändern und einen Neustart durchführen.
sudo vim /boot/firmware/config.txt
# Automatically load overlays for detected cameras # camera_auto_detect=0 # Camera V2 (IMX219) # dtoverlay=imx219 start_x=1 gpu_mem=128 awb_auto_is_greyworld=1 |
Wir deaktivieren die Werte camera_auto_detect oder dtoverlay und aktivieren die Werte start_x, gpu_mem und bei einer NoIR Kamera noch awb_auto_is_greyworld.
Nach einem Neustart ist die Umstellung durchgeführt.
sudo reboot
Die Programm rpicam-vid mit go2rtc funktionieren jetzt nicht mehr, aber das Programm v4l2rtspServer wieder.
Für den Raspberry Pi Zero W (armv6l) brauchen wir diese Paket.
wget https://github.com/mpromonet/v4l2rtspserver/releases/download/v0.3.7/v4l2rtspserver-0.3.7-Linux-armv6l-Release.deb
Jetzt erfolgt die Installation vom Paket.
sudo dpkg -i v4l2rtspserver-0.3.7-Linux-armv6l-Release.deb
Der Aufruf von Programm erfolgt mit diesen Parametern.
/usr/local/bin/v4l2rtspserver -r -Q 20 -F 5 -W 1280 -H 720 -P 8554 /dev/video0
Für den automatischen Start können wir Systemd verwenden.
sudo vim /etc/systemd/system/v4l2rtspserver.service
[Unit] Description=V4L2 RTSP server After=network-online.target Wants=network-online.target systemd-networkd-wait-online.service [Service] Type=simple #Environment=LD_PRELOAD=/usr/lib/uv4l/uv4lext/armv6l/libuv4lext.so ExecStart=/usr/local/bin/v4l2rtspserver -r -Q 20 -F 5 -W 1280 -H 960 -P 8554 /dev/video0 User=user Group=user Restart=on-failure RestartSec=15s [Install] WantedBy=multi-user.target |
Die Konfiguration wird geladen.
sudo systemcrl daemon-reload
Der Dienst wird aktiviert und gestartet.
sudo systemctl enable --now v4l2rtspserver.service
Damit ist die Einrichtung vom Steam Server abgeschlossen.
ffplay -sync ext -fflags nobuffer -framedrop rtsp://
Die Auslastung der CPU liegt wieder unter 10 Prozent.
Schreibe einen Kommentar