TBD: @Juergen2102 @Juergen2102 • vor 5 Minuten @dr.klipper bei einer anderen Kamera kann man sich mit diesem Befehl - v4l2-ctl -d /dev/video0 –list-ctrls - sämtliche Funktionen anzeigen lassen und dann den Fokus manuell in der Crownest.cfg einstellen, mit z.B. v4l2ctl: focus_auto=0,focus_absolute=80
Vielen Dank an Sven van Beckum von 3D Partner (https://partner-3d.de/) für das Sponsoring der Raspberry Pi V3 Cam!
| CrowsNest | Kamera Typ | Stream Dienst | Hinweise |
|---|---|---|---|
| Version 3 | Raspberry Pi Cam V1 / V2 | ustreamer (Legacy) | Einbindung der Kamera normal über den /dev/videoXX Pfad |
| Raspberry Pi Cam V3 | nicht unterstützt | ||
| ArduCam | nicht unterstützt | ||
| USB Kamera | ustreamer (Legacy) | Einbindung der Kamera normal über den /dev/videoXX Pfad Voraussetzung ist, dass die Kamera vom System erkannt wird |
|
| Version 4 | Raspberry Pi Cam V1 / V2 | camera-streamer | siehe Raspberry Pi Cam |
| Raspberry Pi Cam V3 | camera-streamer | siehe Raspberry Pi Cam | |
| ArduCam | camera-streamer | siehe ArduCam | |
| USB Kamera | camera-streamer | Einbindung der Kamera normal über den /dev/XX Pfad Voraussetzung ist, dass die Kamera vom System erkannt wird siehe USB Cam |
|
| Version 4 (andere SBCs, X86 / X64) | ustreamer (Legacy) |
Hinweis:
Bei älteren Systemen mit Debian Buster ist ein Update auf Bullseye erforderlich!
Die größten Neuerungen in Crowsnest V4 sind folgende:
Hinweis 1
Ab MainSail OS 1.2.0 ist Crowsnest V4 vorinstalliert!
Da könnt ihr euch den ganzen Update Kram also sparen
Hinweis 2
Das Update erfolgt in der SSH Konsole und nicht in MainSail!
Crowsnest V4 lässt sich nicht direkt über den UPDATE Button in Mainsail updaten!
Wenn ihr das angeklickt habt wird Crowsnest sehr wahrscheinlich nicht sauber laufen.
Siehe dazu auch den Hinweis bei Crowsnest V3 deinstallieren.
sudo apt update && sudo apt upgrade -ycd ~/crowsnest git checkout legacy/v3 make uninstallcd ~/crowsnestgit pull origin mastergit checkout mastersudo make installDo you want to add 'update manager' entry to your moonraker.conf mit y beantworten[update_manager crowsnest] anpassen: install_script: tools/install.sh → install_script: tools/pkglist.shsudo nano /boot/config.txtcamera_auto_detect diesen Wert auf 1 setzen bzw. einfügen wenn nicht vorhanden → camera_auto_detect=1 start_x=1 diese Zeile auskommentieren → #start_x=1dtoverlay=vc4-kms-v3d wenn nicht vorhanden diese Zeile ergänzen. Ohne diese Zeile läuft keine Raspberry Pi Cam. (Siehe dazu auch https://www.raspberrypi.com/documentation/computers/camera_software.html)sudo rebootHinweis
Dieser Test funktioniert nur mit einem laufenden X Server (ich nutze dafür MobaXTerm)
sudo systemctl stop crowsnest.servicesudo apt install -y cheesecheese /base/soc/i2c0mux/i2c@1/imx708@1asudo systemctl start crowsnest.service
Damit die Raspberry Pi Kameras korrekt in der crowsnest.conf eingetragen werden können, brauchen wir den korrekten Pfad zum Gerät.
Dies kann u.a. aus dem crowsnest Log ausgelesen werden. Einfacher geht es aber mit folgendem Befehl in der Konsole:
libcamera-vid --list-cameras
Als Ergebniss bekommt man dann folgende Ausgaben für die unterschiedlichen Raspberry Pi Cams:
pi@TestPi3:~ $ libcamera-vid --list-cameras Available cameras ----------------- 0 : ov5647 [2592x1944] (/base/soc/i2c0mux/i2c@1/ov5647@36) Modes: 'SGBRG10_CSI2P' : 640x480 [58.92 fps - (16, 0)/2560x1920 crop] 1296x972 [43.25 fps - (0, 0)/2592x1944 crop] 1920x1080 [30.62 fps - (348, 434)/1928x1080 crop] 2592x1944 [15.63 fps - (0, 0)/2592x1944 crop]
pi@PiTest:/dev $ libcamera-vid --list-cameras Available cameras ----------------- 0 : imx219 [3280x2464] (/base/soc/i2c0mux/i2c@1/imx219@10) Modes: 'SRGGB10_CSI2P' : 640x480 [103.33 fps - (1000, 752)/1280x960 crop] 1640x1232 [41.85 fps - (0, 0)/3280x2464 crop] 1920x1080 [47.57 fps - (680, 692)/1920x1080 crop] 3280x2464 [21.19 fps - (0, 0)/3280x2464 crop] 'SRGGB8' : 640x480 [103.33 fps - (1000, 752)/1280x960 crop] 1640x1232 [41.85 fps - (0, 0)/3280x2464 crop] 1920x1080 [47.57 fps - (680, 692)/1920x1080 crop] 3280x2464 [21.19 fps - (0, 0)/3280x2464 crop]
pi@PiTest:~ $ libcamera-vid --list-cameras Available cameras ----------------- 0 : imx708_wide_noir [4608x2592] (/base/soc/i2c0mux/i2c@1/imx708@1a) Modes: 'SRGGB10_CSI2P' : 1536x864 [120.13 fps - (768, 432)/3072x1728 crop] 2304x1296 [56.03 fps - (0, 0)/4608x2592 crop] 4608x2592 [14.35 fps - (0, 0)/4608x2592 crop]
Von dieser Ausgabe brauchen wir die Angabe die mit /base startet. Im Falle der Pi Cam V3 bei mir z.B. /base/soc/i2c0mux/i2c@1/imx708@1a.
Hier kann man sich auch gleich die Auflösung und mögliche FPS notieren die wir ebenfalls in der corwsnest.conf später eintragen müssen.
ArduCams sollen mit Crowsnest V4 auch laufen. Mangels Hardware konnte ich das noch nicht testen.
Die Einrichtung und Pfad Suche dürfte aber sehr ähnlich wie bei der Raspberry Pi V3 Cam sein.
Wie man den korrekten Device Pfad für USB Kameras ermittelt habe ich schon in einem eigenen Video erklärt:
Kurzfassung
v4l2-ctl --list-devicespi@TestPi3:~ $ v4l2-ctl --list-devices ... USB Camera: USB Camera (usb-3f980000.usb-1.5): /dev/video0 /dev/video1 /dev/media4
/dev/video0v4l2-ctl --device /dev/video0 --list-formats-ext /dev/video0 durchaus ändern kann, bestimmt man besser noch die symbolischen Links zu dem Gerät: udevadm info --root --query=symlink --name=/dev/video0 pi@TestPi3:~ $ udevadm info --root --query=symlink --name=/dev/video0 /dev/v4l/by-path/platform-3f980000.usb-usb-0:1.5:1.0-video-index0 /dev/v4l/by-id/usb-ICT-TEK_USB_Camera_202001010001-video-index0
device: /dev/v4l/by-id/usb-ICT-TEK_USB_Camera_202001010001-video-index0Neben dem manuellen Auslesen der Kamera Pfade / Infos gibt es auch noch das crowsnest Log. Auch hier kann man die meisten Informationen zu den Kameras finden. Der Vollständigkeit halber hier die beiden Möglichkeiten, die Informationen einzusehen:
nano ~/printer_data/logs/crowsnest.log~/crowsnest/tools/dev-helper.sh -c delete_log: false → delete_log: true [cam 1]. Wenn ihr mehrere Kameras angeschlossen habt, dann diesen ganzen Block erstmal so oft anlegen wie ihr Kameras habt. [cam 2] usw. [cam ..] Blöcken den mode umstellen von ustreamer auf camera-streamer.port für jeden cam Eintrag könnt ihr auch anpassen. [cam 1] → port: 8080[cam 2] → port: 8081[cam 3] → port: 8082rtsp_port für jeden cam Eintrag könnt ihr auch anpassen. [cam 1] → port: 8554[cam 2] → port: 8555[cam 3] → port: 8556enable_rtsp: true aktivieren. RTSP kann man z.B. dafür verwenden, um mit VLC auf die Kamera Streams zuzugreifen. Hinweis: Auflösungen und FPS
Der Raspberry Pi Video De-/Encoder kann maximal eine Auflösung von 1920×1080 verarbeiten. Auch wenn ihr die Auflösung größer einstellt wird nicht mehr ausgegeben. Zudem verringern sich die möglichen Bilder pro Sekunde (FPS) wenn mehrere Kameras verwendet werden (Erfahrungen Stefan Dej : 2x 1920x1080f30 ⇒ 1920x1080f15 / 2x 1280x720f30 ⇒ 1280x720f25). Dies ist ein Hardware Limit vom Raspberry Pi.
Siehe auch die Beispiel Konfig für Crowsnest V4 am Ende dieses Beitrags.
Damit die Kameras auch in Mainsail angezeigt werden müssen die hier auch konfiguriert werden.
/webcam/webrtc/webcam/?action=snapshotDie RTSP Streams kann man sich (sofern in der Konfig eingeschaltet) u.a. mit VLC ansehen. Dazu braucht man die IP und den RTSP Port (der ebenfalls in der Konfig eingestellt ist).
Aufrufen kann man das dann wie folgt:
rtsp://<IP>:<PORT>/stream.h264rtsp://<USER>:<PASSWORD>@<IP>:<PORT>/stream.h264cd ~/crowsnest/bin/camera-streamergit pullcd ~/crowsnestmake buildcleanmake build -j4## LEGACY Mode ## ## Disable libcamera (interferes with ustreamer, when using raspicams) #camera_auto_detect=0 ## Enable VideoCore at boot, needed for Crowsnest (Raspicams and DSI devices). #start_x=1 ## libcamera Mode ## dtoverlay=vc4-kms-v3d # CAM V1 #dtoverlay=ov5647 # CAM V2 #dtoverlay=imx219 # CAM V3 #dtoverlay=imx708 # AutoDetect camera_auto_detect=1
#### crowsnest.conf #### This is a typical default config. #### Also used as default in mainsail / MainsailOS #### See: #### https://github.com/mainsail-crew/crowsnest/blob/master/README.md #### for details to configure to your needs. ##################################################################### #### ##### #### Information about ports and according URL's ##### #### ##### ##################################################################### #### ##### #### Port 8080 equals /webcam/?action=[stream/snapshot] ##### #### Port 8081 equals /webcam2/?action=[stream/snapshot] ##### #### Port 8082 equals /webcam3/?action=[stream/snapshot] ##### #### Port 8083 equals /webcam4/?action=[stream/snapshot] ##### #### ##### ##################################################################### [crowsnest] log_path: ~/printer_data/logs/crowsnest.log log_level: verbose # Valid Options are quiet/verbose/debug delete_log: true # Deletes log on every restart, if set to true [cam 1] mode: mjpg # mjpg/rtsp port: 8080 # Port device: /dev/video0 # See Log for available ... resolution: 640x480 # widthxheight format max_fps: 15 # If Hardware Supports this it will be forced, otherwise ignored/coerced. #custom_flags: # You can run the Stream Services with custom flags. #v4l2ctl: # Add v4l2-ctl parameters to setup your camera, see Log what your cam is capable of. [cam 2] mode: mjpg # mjpg/rtsp port: 8081 # Port device: /dev/video1 # See Log for available ... resolution: 640x480 # widthxheight format max_fps: 15 # If Hardware Supports this it will be forced, otherwise ignored/coerced. #custom_flags: # You can run the Stream Services with custom flags. #v4l2ctl: # Add v4l2-ctl parameters to setup your camera, see Log what your cam is capable of.
#### crowsnest.conf
#### This is a typical default config.
#### Also used as default in mainsail / MainsailOS
#### See:
#### https://github.com/mainsail-crew/crowsnest/blob/master/README.md
#### for details to configure to your needs.
#####################################################################
#### #####
#### Information about ports and according URL's #####
#### #####
#####################################################################
#### #####
#### Port 8080 equals /webcam/?action=[stream/snapshot] #####
#### Port 8081 equals /webcam2/?action=[stream/snapshot] #####
#### Port 8082 equals /webcam3/?action=[stream/snapshot] #####
#### Port 8083 equals /webcam4/?action=[stream/snapshot] #####
#### #####
#####################################################################
#### RTSP Stream URL: ( if enabled and supported ) #####
#### rtsp://<ip>:<rtsp_port>/stream.h264 #####
#####################################################################
[crowsnest]
log_path: /home/pi/printer_data/logs/crowsnest.log
log_level: verbose # Valid Options are quiet/verbose/debug
delete_log: true # Deletes log on every restart, if set to true
no_proxy: false
[cam 1]
mode: camera-streamer # ustreamer - Provides mjpg and snapshots. (All devices)
# camera-streamer - Provides webrtc, mjpg and snapshots. (rpi + Raspi OS based only)
enable_rtsp: true # If camera-streamer is used, this enables also usage of an rtsp server
rtsp_port: 8554 # Set different ports for each device!
port: 8080 # Port
#device: /base/soc/i2c0mux/i2c@1/imx708@1a # See Log for available ...
device: /base/soc/i2c0mux/i2c@1/ov5647@36
resolution: 640x480 # widthxheight format
max_fps: 25 # If Hardware Supports this it will be forced, otherwise ignored/coerced.
#custom_flags: # You can run the Stream Services with custom flags.
#v4l2ctl: # Add v4l2-ctl parameters to setup your camera, see Log what your cam is capable of.
[cam 2]
mode: camera-streamer # ustreamer - Provides mjpg and snapshots. (All devices)
# camera-streamer - Provides webrtc, mjpg and snapshots. (rpi + Raspi OS based only)
enable_rtsp: true # If camera-streamer is used, this enables also usage of an rtsp server
rtsp_port: 8555 # Set different ports for each device!
port: 8081 # Port
device: /dev/v4l/by-id/usb-SIT_USB2.0_Camera_SIT_USB2.0_Camera-video-index0 # See Log for available ...
resolution: 640x480 # widthxheight format
max_fps: 25 # If Hardware Supports this it will be forced, otherwise ignored/coerced.
#custom_flags: # You can run the Stream Services with custom flags.
#v4l2ctl: # Add v4l2-ctl parameters to setup your camera, see Log what your cam is capable of.