mainsail-crew / crowsnest

Webcam Service for multiple Cams
GNU General Public License v3.0
324 stars 77 forks source link

Multiple identical cameras not correctly logged #190

Open NV4RE opened 1 year ago

NV4RE commented 1 year ago

What happened

When adding multiple cameras (both on the same model), only one detects

crowsnest only detect one camera

...

[10/23/23 02:18:42] crowsnest: INFO: Detect available Devices
[10/23/23 02:18:42] crowsnest: INFO: Found 1 total available Device(s)
[10/23/23 02:18:43] crowsnest: INFO: Found 1 available v4l2 (UVC) camera(s)
...

Hardware

BTT manta m8p (v1.0)
BTT CB1
Camera: ashu h800

software

beacon
 v1.0.0-7 > v1.0.0-8
crowsnest
v4.0.4-6-g767c53aa
klipper
v0.11.0-299-gb1f597c5
Klipper-Adaptive-Meshing-Purging
v1.1.2-4-g2389a994
KlipperScreen
v0.3.6-50-gc14fd4d2
mainsail
v2.8.0
mainsail-config
v1.0.0-16-gc64d3af9
moonraker
v0.8.0-186-g2641fc54
sonar
v0.1.2-0-g7962a122
timelapse
v0.0.1-142-g57bec0de
System
OS-Packages

lsusb

lsusb
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 011: ID 1d50:614e OpenMoko, Inc. stm32g0b1xx
Bus 002 Device 007: ID 1a86:e5e3 QinHeng Electronics USB2IIC_CTP_CONTROL
Bus 002 Device 010: ID 1d50:606f OpenMoko, Inc. Geschwister Schneider CAN adapter
Bus 002 Device 006: ID 0806:0806 SJ-180517-N 1080P Webcam
Bus 002 Device 004: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 002 Device 003: ID 0806:0806 SJ-180517-N 1080P Webcam
Bus 002 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

v4l2-ctl --list-devices

1080P Webcam: 1080P Webcam (usb-5200000.usb-1.1):
        /dev/video0
        /dev/video1
        /dev/media0

1080P Webcam: 1080P Webcam (usb-5200000.usb-1.2.2):
        /dev/video2
        /dev/video3
        /dev/media1

crowsnest.conf

#### 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/biqu/printer_data/logs/crowsnest.log
log_level: verbose                      # Valid Options are quiet/verbose/debug
delete_log: false                       # Deletes log on every restart, if set to true
no_proxy: false

# top
[cam top]
mode: ustreamer                         # ustreamer - Provides mjpg and snapshots. (All devices)
                                        # camera-streamer - Provides webrtc, mjpg and snapshots. (rpi + Raspi OS based only)
enable_rtsp: false                      # If camera-streamer is used, this enables also usage of an rtsp server
rtsp_port: 8554                         # Set different ports for each device!
port: 8080                              # HTTP/MJPG Stream/Snapshot Port
device: /dev/video0                     # See Log for available ...
resolution: 320x240                    # widthxheight format
max_fps: 10                             # 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.
v4l2ctl: saturation=75,hue=0,auto_exposure=1,exposure_time_absolute=350,brightness=2,contrast=1,white_balance_automatic=0,white_balance_temperature=4200

[cam rear]
mode: ustreamer                        
enable_rtsp: false                    
rtsp_port: 8555                        
port: 8081                             
device: /dev/video2                  
resolution: 320x240                   
max_fps: 10                      
v4l2ctl: saturation=75,hue=0,auto_exposure=1,exposure_time_absolute=350,brightness=2,contrast=1,white_balance_automatic=0,white_balance_temperature=4200

crowsnest.log

[10/23/23 02:18:42] crowsnest: crowsnest - A webcam Service for multiple Cams and Stream Services.
[10/23/23 02:18:42] crowsnest: Version: v4.0.4-6-g767c53a
[10/23/23 02:18:42] crowsnest: Prepare Startup ...
[10/23/23 02:18:42] crowsnest: INFO: Host information:
[10/23/23 02:18:42] crowsnest: Host Info: Distribution: BTT-CB1 2.3.3 Bullseye
[10/23/23 02:18:42] crowsnest: Host Info: Kernel: Linux 5.16.17-sun50iw9 aarch64
[10/23/23 02:18:42] crowsnest: Host Info: Available CPU Cores: 4
[10/23/23 02:18:42] crowsnest: Host Info: Available Memory: 1010636 kB
[10/23/23 02:18:42] crowsnest: Host Info: Diskspace (avail. / total): 52G / 59G
[10/23/23 02:18:42] crowsnest: INFO: Checking Dependencies
[10/23/23 02:18:42] crowsnest: Dependency: 'crudini' found in /usr/bin/crudini.
[10/23/23 02:18:42] crowsnest: Dependency: 'find' found in /usr/bin/find.
[10/23/23 02:18:42] crowsnest: Dependency: 'xargs' found in /usr/bin/xargs.
[10/23/23 02:18:42] crowsnest: Dependency: 'ustreamer' found in bin/ustreamer/ustreamer.
[10/23/23 02:18:42] crowsnest: Version Control: ustreamer is up to date. (v5.41)
[10/23/23 02:18:42] crowsnest: INFO: Print Configfile: '/home/biqu/printer_data/config/crowsnest.conf'
[10/23/23 02:18:42] crowsnest:      [crowsnest]
[10/23/23 02:18:42] crowsnest:      log_path: /home/biqu/printer_data/logs/crowsnest.log
[10/23/23 02:18:42] crowsnest:      log_level: verbose
[10/23/23 02:18:42] crowsnest:      delete_log: false
[10/23/23 02:18:42] crowsnest:      no_proxy: false
[10/23/23 02:18:42] crowsnest:      
[10/23/23 02:18:42] crowsnest:      [cam top]
[10/23/23 02:18:42] crowsnest:      mode: ustreamer
[10/23/23 02:18:42] crowsnest:      
[10/23/23 02:18:42] crowsnest:      enable_rtsp: false
[10/23/23 02:18:42] crowsnest:      rtsp_port: 8554
[10/23/23 02:18:42] crowsnest:      port: 8080
[10/23/23 02:18:42] crowsnest:      device: /dev/video0
[10/23/23 02:18:42] crowsnest:      resolution: 320x240
[10/23/23 02:18:42] crowsnest:      max_fps: 10
[10/23/23 02:18:42] crowsnest:      v4l2ctl: saturation=75,hue=0,auto_exposure=1,exposure_time_absolute=350,brightness=2,contrast=1,white_balance_automatic=0,white_balance_temperature=4200
[10/23/23 02:18:42] crowsnest:      
[10/23/23 02:18:42] crowsnest:      
[10/23/23 02:18:42] crowsnest:      [cam rear]
[10/23/23 02:18:42] crowsnest:      mode: ustreamer
[10/23/23 02:18:42] crowsnest:      enable_rtsp: false
[10/23/23 02:18:42] crowsnest:      rtsp_port: 8555
[10/23/23 02:18:42] crowsnest:      port: 8081
[10/23/23 02:18:42] crowsnest:      device: /dev/video2
[10/23/23 02:18:42] crowsnest:      resolution: 320x240
[10/23/23 02:18:42] crowsnest:      max_fps: 10
[10/23/23 02:18:42] crowsnest:      v4l2ctl: saturation=75,hue=0,auto_exposure=1,exposure_time_absolute=350,brightness=2,contrast=1,white_balance_automatic=0,white_balance_temperature=4200
[10/23/23 02:18:42] crowsnest:      
[10/23/23 02:18:42] crowsnest: INFO: Detect available Devices
[10/23/23 02:18:42] crowsnest: INFO: Found 1 total available Device(s)
[10/23/23 02:18:43] crowsnest: INFO: Found 1 available v4l2 (UVC) camera(s)
[10/23/23 02:18:43] crowsnest: /dev/v4l/by-id/usb-SJ-180517-N_1080P_Webcam-video-index0 -> /dev/video2
[10/23/23 02:18:43] crowsnest: Supported Formats:
[10/23/23 02:18:43] crowsnest:      [0]: 'MJPG' (Motion-JPEG, compressed)
[10/23/23 02:18:43] crowsnest:      Size: Discrete 640x480
[10/23/23 02:18:43] crowsnest:      Interval: Discrete 0.040s (25.000 fps)
[10/23/23 02:18:43] crowsnest:      Size: Discrete 1920x1080
[10/23/23 02:18:43] crowsnest:      Interval: Discrete 0.040s (25.000 fps)
[10/23/23 02:18:43] crowsnest:      Size: Discrete 1280x720
[10/23/23 02:18:43] crowsnest:      Interval: Discrete 0.040s (25.000 fps)
[10/23/23 02:18:43] crowsnest:      Size: Discrete 320x240
[10/23/23 02:18:43] crowsnest:      Interval: Discrete 0.040s (25.000 fps)
[10/23/23 02:18:43] crowsnest:      Size: Discrete 1024x768
[10/23/23 02:18:43] crowsnest:      Interval: Discrete 0.040s (25.000 fps)
[10/23/23 02:18:43] crowsnest:      Size: Discrete 1280x1024
[10/23/23 02:18:43] crowsnest:      Interval: Discrete 0.040s (25.000 fps)
[10/23/23 02:18:43] crowsnest:      Size: Discrete 160x120
[10/23/23 02:18:43] crowsnest:      Interval: Discrete 0.040s (25.000 fps)
[10/23/23 02:18:43] crowsnest:      Size: Discrete 800x600
[10/23/23 02:18:43] crowsnest:      Interval: Discrete 0.040s (25.000 fps)
[10/23/23 02:18:43] crowsnest:      [1]: 'YUYV' (YUYV 4:2:2)
[10/23/23 02:18:43] crowsnest:      Size: Discrete 640x480
[10/23/23 02:18:43] crowsnest:      Interval: Discrete 0.040s (25.000 fps)
[10/23/23 02:18:43] crowsnest:      Size: Discrete 1920x1080
[10/23/23 02:18:43] crowsnest:      Interval: Discrete 0.200s (5.000 fps)
[10/23/23 02:18:43] crowsnest:      Size: Discrete 1280x720
[10/23/23 02:18:43] crowsnest:      Interval: Discrete 0.167s (6.000 fps)
[10/23/23 02:18:43] crowsnest:      Size: Discrete 320x240
[10/23/23 02:18:43] crowsnest:      Interval: Discrete 0.040s (25.000 fps)
[10/23/23 02:18:43] crowsnest:      Size: Discrete 1024x768
[10/23/23 02:18:43] crowsnest:      Interval: Discrete 0.167s (6.000 fps)
[10/23/23 02:18:43] crowsnest:      Size: Discrete 1280x1024
[10/23/23 02:18:43] crowsnest:      Interval: Discrete 0.167s (6.000 fps)
[10/23/23 02:18:43] crowsnest:      Size: Discrete 160x120
[10/23/23 02:18:43] crowsnest:      Interval: Discrete 0.040s (25.000 fps)
[10/23/23 02:18:43] crowsnest:      Size: Discrete 800x600
[10/23/23 02:18:43] crowsnest:      Interval: Discrete 0.167s (6.000 fps)
[10/23/23 02:18:43] crowsnest: Supported Controls:
[10/23/23 02:18:43] crowsnest:      
[10/23/23 02:18:43] crowsnest:      User Controls
[10/23/23 02:18:43] crowsnest:      
[10/23/23 02:18:43] crowsnest:      brightness 0x00980900 (int)    : min=-64 max=64 step=1 default=0 value=2
[10/23/23 02:18:43] crowsnest:      contrast 0x00980901 (int)    : min=0 max=95 step=1 default=0 value=1
[10/23/23 02:18:43] crowsnest:      saturation 0x00980902 (int)    : min=0 max=100 step=1 default=58 value=75
[10/23/23 02:18:43] crowsnest:      hue 0x00980903 (int)    : min=-2000 max=2000 step=100 default=0 value=0
[10/23/23 02:18:43] crowsnest:      white_balance_automatic 0x0098090c (bool)   : default=1 value=0
[10/23/23 02:18:43] crowsnest:      gamma 0x00980910 (int)    : min=100 max=300 step=1 default=100 value=100
[10/23/23 02:18:43] crowsnest:      power_line_frequency 0x00980918 (menu)   : min=0 max=2 default=1 value=1
[10/23/23 02:18:43] crowsnest:      0: Disabled
[10/23/23 02:18:43] crowsnest:      1: 50 Hz
[10/23/23 02:18:43] crowsnest:      2: 60 Hz
[10/23/23 02:18:43] crowsnest:      white_balance_temperature 0x0098091a (int)    : min=2800 max=6500 step=1 default=4600 value=4200
[10/23/23 02:18:43] crowsnest:      sharpness 0x0098091b (int)    : min=1 max=7 step=1 default=2 value=2
[10/23/23 02:18:43] crowsnest:      backlight_compensation 0x0098091c (int)    : min=0 max=3 step=1 default=0 value=0
[10/23/23 02:18:43] crowsnest:      
[10/23/23 02:18:43] crowsnest:      Camera Controls
[10/23/23 02:18:43] crowsnest:      
[10/23/23 02:18:43] crowsnest:      auto_exposure 0x009a0901 (menu)   : min=0 max=3 default=3 value=1
[10/23/23 02:18:43] crowsnest:      1: Manual Mode
[10/23/23 02:18:43] crowsnest:      3: Aperture Priority Mode
[10/23/23 02:18:43] crowsnest:      exposure_time_absolute 0x009a0902 (int)    : min=78 max=10000 step=1 default=312 value=350
[10/23/23 02:18:43] crowsnest: Try to start configured Cams / Services...
[10/23/23 02:18:46] crowsnest: INFO: Configuration of Section [cam top] looks good. Continue ...
[10/23/23 02:18:48] crowsnest: INFO: Configuration of Section [cam rear] looks good. Continue ...
[10/23/23 02:18:50] crowsnest: V4L2 Control: Device: [cam top]
[10/23/23 02:18:50] crowsnest: V4L2 Control: Options: saturation=75,hue=0,auto_exposure=1,exposure_time_absolute=350,brightness=2,contrast=1,white_balance_automatic=0,white_balance_temperature=4200
[10/23/23 02:18:51] crowsnest: V4L2 Control: Device: [cam rear]
[10/23/23 02:18:51] crowsnest: V4L2 Control: Options: saturation=75,hue=0,auto_exposure=1,exposure_time_absolute=350,brightness=2,contrast=1,white_balance_automatic=0,white_balance_temperature=4200
[10/23/23 02:18:55] crowsnest: Starting ustreamer with Device /dev/video0 ...
[10/23/23 02:18:55] crowsnest: Starting ustreamer with Device /dev/video2 ...
[10/23/23 02:18:59] crowsnest:  ... Done!

What did you expect to happen

Detect both camera

How to reproduce

Just use multiple camera

Additional information

No response

NV4RE commented 1 year ago

Possible related to https://github.com/mainsail-crew/crowsnest/issues/109

mryel00 commented 1 year ago

@NV4RE It's not related to the issue you mentioned. The issue you mentioned is about connection problems with a cb1. Your issue is just about crowsnest.log not showing the second identical camera. Crowsnest currently only shows the entry of /dev/v4l/by-id/. The problem about two identical cams is, that it only shows one of them there. So please follow the documentation on using two identical cameras. So this isn't a bug, but more like a "missing" feature that doesn't have that much priority as the amount of users with two identical cams are pretty low. If you use two unidentical USB cams, you will see that both should get printed inside the log.

mryel00 commented 1 year ago

I updated this issue to represent a feature request. Fyi this feature is internally already under development.

mryel00 commented 7 months ago

@NV4RE I need some information for this issue to tackle it correctly. I need the output of following url http://<ip.of.your.pi>:<moonraker_port>/machine/peripherals/video. <moonraker_port is by default 7125 and can be seen inside your moonraker.conf. If that url doesn't work, make sure you are on the latest moonraker version.

NV4RE commented 7 months ago

@NV4RE I need some information for this issue to tackle it correctly. I need the output of following url http://<ip.of.your.pi>:<moonraker_port>/machine/peripherals/video. <moonraker_port is by default 7125 and can be seen inside your moonraker.conf. If that url doesn't work, make sure you are on the latest moonraker version.

Hi, thanks for the follow-up. I apologize that I can't be of more help in testing the fix right now. I actually removed all the webcams from the machine a while back, so I can't send you the output or confirm whether the issue is resolved.

However, I wanted to provide some additional information that might be helpful. Since the last time I interacted with this issue, I tried using multiple webcams with the machine, but from different models and brands. Unfortunately, the problem persisted regardless of the webcams used. This leads me to believe that the root cause might be related to the bandwidth limitations of the BTT Manta M8P's USB chip. It's possible it doesn't have enough capacity to handle multiple webcams efficiently.

mryel00 commented 7 months ago

Ok, then I now understand why you mentioned #109. You are completely correct and the CB1 and CM4 are not capable of multiple cameras, as they only got one USB 2.0 interface. But the detection of the cams should work regardless. So you have here two different issues at once.

  1. The detection of multiple identical cameras isn't working, as you can see in your log.
  2. The CB1/CM4 only capable of using one cam with most cameras.

I will focus in this issue on 1 as 2 got it's own issue. If you still have those 2 identical cams lying around, I would highly appreciate, if you could connect them shortly and get me the output. They don't have to run inside Crowsnest or similar, they just need to be connected to the USB ports.

NV4RE commented 7 months ago

@NV4RE I need some information for this issue to tackle it correctly. I need the output of following url http://<ip.of.your.pi>:<moonraker_port>/machine/peripherals/video. <moonraker_port is by default 7125 and can be seen inside your moonraker.conf. If that url doesn't work, make sure you are on the latest moonraker version.

Hello, I've reinstalled the webcam, but the problem persists. Here's the output of /machine/peripherals/video

{
  "result": {
    "v4l2_devices": [
      {
        "device_name": "video0",
        "device_path": "/dev/video0",
        "camera_name": "1080P Webcam: 1080P Webcam",
        "driver_name": "uvcvideo",
        "hardware_bus": "usb-5200000.usb-1.1.2",
        "capabilities": ["VIDEO_CAPTURE", "EXT_PIX_FORMAT", "STREAMING"],
        "version": "5.16.17",
        "path_by_hardware": "/dev/v4l/by-path/platform-5200000.usb-usb-0:1.1.2:1.0-video-index0",
        "path_by_id": null,
        "alt_name": "1080P Webcam: 1080P Webcam",
        "usb_location": "2:5",
        "modes": [
          {
            "format": "MJPG",
            "description": "Motion-JPEG",
            "flags": ["COMPRESSED"],
            "resolutions": [
              "640x480",
              "1920x1080",
              "1280x720",
              "320x240",
              "1024x768",
              "1280x1024",
              "160x120",
              "800x600"
            ]
          },
          {
            "format": "YUYV",
            "description": "YUYV 4:2:2",
            "flags": [],
            "resolutions": [
              "640x480",
              "1920x1080",
              "1280x720",
              "320x240",
              "1024x768",
              "1280x1024",
              "160x120",
              "800x600"
            ]
          }
        ]
      },
      {
        "device_name": "video2",
        "device_path": "/dev/video2",
        "camera_name": "1080P Webcam: 1080P Webcam",
        "driver_name": "uvcvideo",
        "hardware_bus": "usb-5200000.usb-1.1.4",
        "capabilities": ["VIDEO_CAPTURE", "EXT_PIX_FORMAT", "STREAMING"],
        "version": "5.16.17",
        "path_by_hardware": "/dev/v4l/by-path/platform-5200000.usb-usb-0:1.1.4:1.0-video-index0",
        "path_by_id": "/dev/v4l/by-id/usb-SJ-180517-N_1080P_Webcam-video-index0",
        "alt_name": "1080P Webcam: 1080P Webcam",
        "usb_location": "2:16",
        "modes": [
          {
            "format": "MJPG",
            "description": "Motion-JPEG",
            "flags": ["COMPRESSED"],
            "resolutions": [
              "640x480",
              "1920x1080",
              "1280x720",
              "320x240",
              "1024x768",
              "1280x1024",
              "160x120",
              "800x600"
            ]
          },
          {
            "format": "YUYV",
            "description": "YUYV 4:2:2",
            "flags": [],
            "resolutions": [
              "640x480",
              "1920x1080",
              "1280x720",
              "320x240",
              "1024x768",
              "1280x1024",
              "160x120",
              "800x600"
            ]
          }
        ]
      }
    ],
    "libcamera_devices": []
  }
}

crownest.conf

#### 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/biqu/printer_data/logs/crowsnest.log
log_level: verbose                      # Valid Options are quiet/verbose/debug
delete_log: false                       # Deletes log on every restart, if set to true
no_proxy: false

# top
# [cam top]
# mode: ustreamer                         # ustreamer - Provides mjpg and snapshots. (All devices)
#                                         # camera-streamer - Provides webrtc, mjpg and snapshots. (rpi + Raspi OS based only)
# enable_rtsp: false                      # If camera-streamer is used, this enables also usage of an rtsp server
# rtsp_port: 8554                         # Set different ports for each device!
# port: 8080                              # HTTP/MJPG Stream/Snapshot Port
# device:  /dev/v4l/by-path/platform-5200000.usb-usb-0:1.1.3:1.0-video-index0                     # See Log for available ...
# resolution: 1280x1024                    # widthxheight format
# max_fps: 6                             # 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.
# v4l2ctl: pixelformat=YUYV,saturation=75,hue=0,auto_exposure=1,exposure_time_absolute=350,brightness=2,contrast=1,white_balance_automatic=0,white_balance_temperature=4200

[cam rear]
mode: ustreamer                        
enable_rtsp: false                    
rtsp_port: 8555                        
port: 8081                             
device:  /dev/v4l/by-path/platform-5200000.usb-usb-0:1.1.2:1.0-video-index0                 
resolution: 640x480                  
max_fps: 25                     
v4l2ctl: pixelformat=YUYV,saturation=75,hue=-1800,auto_exposure=1,exposure_time_absolute=350,brightness=-6,contrast=1,white_balance_automatic=0,white_balance_temperature=4200,backlight_compensation=3,sharpness=1

[cam test]
mode: ustreamer                        
enable_rtsp: false                    
rtsp_port: 8555                        
port: 8080                             
device: /dev/v4l/by-path/platform-5200000.usb-usb-0:1.1.4:1.0-video-index0         
resolution: 640x480                  
max_fps: 25                     
v4l2ctl: pixelformat=YUYV,saturation=75,hue=-1800,auto_exposure=1,exposure_time_absolute=350,brightness=-6,contrast=1,white_balance_automatic=0,white_balance_temperature=4200,backlight_compensation=3,sharpness=1

crowsnest.log

[04/06/24 23:42:48] crowsnest: crowsnest - A webcam Service for multiple Cams and Stream Services.
[04/06/24 23:42:48] crowsnest: Version: v4.1.8-1-g6ac4711
[04/06/24 23:42:48] crowsnest: Prepare Startup ...
[04/06/24 23:42:48] crowsnest: INFO: Host information:
[04/06/24 23:42:48] crowsnest: Host Info: Distribution: BTT-CB1 2.3.3 Bullseye
[04/06/24 23:42:48] crowsnest: Host Info: Kernel: Linux 5.16.17-sun50iw9 aarch64
[04/06/24 23:42:48] crowsnest: Host Info: Available CPU Cores: 4
[04/06/24 23:42:48] crowsnest: Host Info: Available Memory: 1010636 kB
[04/06/24 23:42:48] crowsnest: Host Info: Diskspace (avail. / total): 49G / 59G
[04/06/24 23:42:48] crowsnest: INFO: Checking Dependencies
[04/06/24 23:42:48] crowsnest: Dependency: 'crudini' found in /usr/bin/crudini.
[04/06/24 23:42:48] crowsnest: Dependency: 'find' found in /usr/bin/find.
[04/06/24 23:42:48] crowsnest: Dependency: 'xargs' found in /usr/bin/xargs.
[04/06/24 23:42:48] crowsnest: Dependency: 'ustreamer' found in bin/ustreamer/src/ustreamer.bin.
[04/06/24 23:42:49] crowsnest: Version Control: ustreamer is up to date. (v5.41)
[04/06/24 23:42:49] crowsnest: INFO: Print Configfile: '/home/biqu/printer_data/config/crowsnest.conf'
[04/06/24 23:42:49] crowsnest:      [crowsnest]
[04/06/24 23:42:49] crowsnest:      log_path: /home/biqu/printer_data/logs/crowsnest.log
[04/06/24 23:42:49] crowsnest:      log_level: verbose
[04/06/24 23:42:49] crowsnest:      delete_log: false
[04/06/24 23:42:49] crowsnest:      no_proxy: false
[04/06/24 23:42:49] crowsnest:      
[04/06/24 23:42:49] crowsnest:      
[04/06/24 23:42:49] crowsnest:      
[04/06/24 23:42:49] crowsnest:      [cam rear]
[04/06/24 23:42:49] crowsnest:      mode: ustreamer
[04/06/24 23:42:49] crowsnest:      enable_rtsp: false
[04/06/24 23:42:49] crowsnest:      rtsp_port: 8555
[04/06/24 23:42:49] crowsnest:      port: 8081
[04/06/24 23:42:49] crowsnest:      device:  /dev/v4l/by-path/platform-5200000.usb-usb-0:1.1.2:1.0-video-index0
[04/06/24 23:42:49] crowsnest:      resolution: 640x480
[04/06/24 23:42:49] crowsnest:      max_fps: 25
[04/06/24 23:42:49] crowsnest:      v4l2ctl: pixelformat=YUYV,saturation=75,hue=-1800,auto_exposure=1,exposure_time_absolute=350,brightness=-6,contrast=1,white_balance_automatic=0,white_balance_temperature=4200,backlight_compensation=3,sharpness=1
[04/06/24 23:42:49] crowsnest:      
[04/06/24 23:42:49] crowsnest:      [cam test]
[04/06/24 23:42:49] crowsnest:      mode: ustreamer
[04/06/24 23:42:49] crowsnest:      enable_rtsp: false
[04/06/24 23:42:49] crowsnest:      rtsp_port: 8555
[04/06/24 23:42:49] crowsnest:      port: 8080
[04/06/24 23:42:49] crowsnest:      device: /dev/v4l/by-path/platform-5200000.usb-usb-0:1.1.4:1.0-video-index0
[04/06/24 23:42:49] crowsnest:      resolution: 640x480
[04/06/24 23:42:49] crowsnest:      max_fps: 25
[04/06/24 23:42:49] crowsnest:      v4l2ctl: pixelformat=YUYV,saturation=75,hue=-1800,auto_exposure=1,exposure_time_absolute=350,brightness=-6,contrast=1,white_balance_automatic=0,white_balance_temperature=4200,backlight_compensation=3,sharpness=1
[04/06/24 23:42:49] crowsnest:      
[04/06/24 23:42:49] crowsnest: INFO: Detect available Devices
[04/06/24 23:42:49] crowsnest: INFO: Found 1 total available Device(s)
[04/06/24 23:42:49] crowsnest: INFO: Found 1 available v4l2 (UVC) camera(s)
[04/06/24 23:42:49] crowsnest: /dev/v4l/by-id/usb-SJ-180517-N_1080P_Webcam-video-index0 -> /dev/video2
[04/06/24 23:42:49] crowsnest: Supported Formats:
[04/06/24 23:42:49] crowsnest:      [0]: 'MJPG' (Motion-JPEG, compressed)
[04/06/24 23:42:49] crowsnest:      Size: Discrete 640x480
[04/06/24 23:42:49] crowsnest:      Interval: Discrete 0.040s (25.000 fps)
[04/06/24 23:42:49] crowsnest:      Size: Discrete 1920x1080
[04/06/24 23:42:49] crowsnest:      Interval: Discrete 0.040s (25.000 fps)
[04/06/24 23:42:49] crowsnest:      Size: Discrete 1280x720
[04/06/24 23:42:49] crowsnest:      Interval: Discrete 0.040s (25.000 fps)
[04/06/24 23:42:49] crowsnest:      Size: Discrete 320x240
[04/06/24 23:42:49] crowsnest:      Interval: Discrete 0.040s (25.000 fps)
[04/06/24 23:42:49] crowsnest:      Size: Discrete 1024x768
[04/06/24 23:42:49] crowsnest:      Interval: Discrete 0.040s (25.000 fps)
[04/06/24 23:42:49] crowsnest:      Size: Discrete 1280x1024
[04/06/24 23:42:49] crowsnest:      Interval: Discrete 0.040s (25.000 fps)
[04/06/24 23:42:49] crowsnest:      Size: Discrete 160x120
[04/06/24 23:42:49] crowsnest:      Interval: Discrete 0.040s (25.000 fps)
[04/06/24 23:42:49] crowsnest:      Size: Discrete 800x600
[04/06/24 23:42:49] crowsnest:      Interval: Discrete 0.040s (25.000 fps)
[04/06/24 23:42:49] crowsnest:      [1]: 'YUYV' (YUYV 4:2:2)
[04/06/24 23:42:49] crowsnest:      Size: Discrete 640x480
[04/06/24 23:42:49] crowsnest:      Interval: Discrete 0.040s (25.000 fps)
[04/06/24 23:42:49] crowsnest:      Size: Discrete 1920x1080
[04/06/24 23:42:49] crowsnest:      Interval: Discrete 0.200s (5.000 fps)
[04/06/24 23:42:49] crowsnest:      Size: Discrete 1280x720
[04/06/24 23:42:49] crowsnest:      Interval: Discrete 0.167s (6.000 fps)
[04/06/24 23:42:49] crowsnest:      Size: Discrete 320x240
[04/06/24 23:42:49] crowsnest:      Interval: Discrete 0.040s (25.000 fps)
[04/06/24 23:42:49] crowsnest:      Size: Discrete 1024x768
[04/06/24 23:42:49] crowsnest:      Interval: Discrete 0.167s (6.000 fps)
[04/06/24 23:42:49] crowsnest:      Size: Discrete 1280x1024
[04/06/24 23:42:49] crowsnest:      Interval: Discrete 0.167s (6.000 fps)
[04/06/24 23:42:49] crowsnest:      Size: Discrete 160x120
[04/06/24 23:42:49] crowsnest:      Interval: Discrete 0.040s (25.000 fps)
[04/06/24 23:42:49] crowsnest:      Size: Discrete 800x600
[04/06/24 23:42:49] crowsnest:      Interval: Discrete 0.167s (6.000 fps)
[04/06/24 23:42:49] crowsnest: Supported Controls:
[04/06/24 23:42:49] crowsnest:      
[04/06/24 23:42:49] crowsnest:      User Controls
[04/06/24 23:42:49] crowsnest:      
[04/06/24 23:42:49] crowsnest:      brightness 0x00980900 (int)    : min=-64 max=64 step=1 default=0 value=-6
[04/06/24 23:42:49] crowsnest:      contrast 0x00980901 (int)    : min=0 max=95 step=1 default=0 value=1
[04/06/24 23:42:49] crowsnest:      saturation 0x00980902 (int)    : min=0 max=100 step=1 default=58 value=75
[04/06/24 23:42:49] crowsnest:      hue 0x00980903 (int)    : min=-2000 max=2000 step=100 default=0 value=-1800
[04/06/24 23:42:49] crowsnest:      white_balance_automatic 0x0098090c (bool)   : default=1 value=0
[04/06/24 23:42:49] crowsnest:      gamma 0x00980910 (int)    : min=100 max=300 step=1 default=100 value=100
[04/06/24 23:42:49] crowsnest:      power_line_frequency 0x00980918 (menu)   : min=0 max=2 default=1 value=1
[04/06/24 23:42:49] crowsnest:      0: Disabled
[04/06/24 23:42:49] crowsnest:      1: 50 Hz
[04/06/24 23:42:49] crowsnest:      2: 60 Hz
[04/06/24 23:42:49] crowsnest:      white_balance_temperature 0x0098091a (int)    : min=2800 max=6500 step=1 default=4600 value=4200
[04/06/24 23:42:49] crowsnest:      sharpness 0x0098091b (int)    : min=1 max=7 step=1 default=2 value=1
[04/06/24 23:42:49] crowsnest:      backlight_compensation 0x0098091c (int)    : min=0 max=3 step=1 default=0 value=3
[04/06/24 23:42:49] crowsnest:      
[04/06/24 23:42:49] crowsnest:      Camera Controls
[04/06/24 23:42:49] crowsnest:      
[04/06/24 23:42:49] crowsnest:      auto_exposure 0x009a0901 (menu)   : min=0 max=3 default=3 value=1
[04/06/24 23:42:49] crowsnest:      1: Manual Mode
[04/06/24 23:42:49] crowsnest:      3: Aperture Priority Mode
[04/06/24 23:42:49] crowsnest:      exposure_time_absolute 0x009a0902 (int)    : min=78 max=10000 step=1 default=312 value=350
[04/06/24 23:42:49] crowsnest: Try to start configured Cams / Services...
[04/06/24 23:42:52] crowsnest: INFO: Configuration of Section [cam rear] looks good. Continue ...
[04/06/24 23:42:55] crowsnest: INFO: Configuration of Section [cam test] looks good. Continue ...
[04/06/24 23:42:56] crowsnest: V4L2 Control: Device: [cam rear]
[04/06/24 23:42:56] crowsnest: V4L2 Control: Options: pixelformat=YUYV,saturation=75,hue=-1800,auto_exposure=1,exposure_time_absolute=350,brightness=-6,contrast=1,white_balance_automatic=0,white_balance_temperature=4200,backlight_compensation=3,sharpness=1
[04/06/24 23:42:56] crowsnest: V4L2 Control: Parameter 'pixelformat=YUYV' not available for '/dev/v4l/by-path/platform-5200000.usb-usb-0:1.1.2:1.0-video-index0'. Skipped.
[04/06/24 23:42:57] crowsnest: V4L2 Control: Device: [cam test]
[04/06/24 23:42:57] crowsnest: V4L2 Control: Options: pixelformat=YUYV,saturation=75,hue=-1800,auto_exposure=1,exposure_time_absolute=350,brightness=-6,contrast=1,white_balance_automatic=0,white_balance_temperature=4200,backlight_compensation=3,sharpness=1
[04/06/24 23:42:57] crowsnest: V4L2 Control: Parameter 'pixelformat=YUYV' not available for '/dev/v4l/by-path/platform-5200000.usb-usb-0:1.1.4:1.0-video-index0'. Skipped.
[04/06/24 23:43:02] crowsnest: Starting ustreamer with Device /dev/v4l/by-path/platform-5200000.usb-usb-0:1.1.4:1.0-video-index0 ...
[04/06/24 23:43:02] crowsnest: Starting ustreamer with Device /dev/v4l/by-path/platform-5200000.usb-usb-0:1.1.2:1.0-video-index0 ...
[04/06/24 23:43:05] crowsnest:  ... Done!
mryel00 commented 7 months ago

Thanks for the output. I still didn't implement anything for this. I needed the output to even have a starting point.

Drizzt321 commented 7 months ago

I'm facing something similar. I tried using the by-path, as per https://crowsnest.mainsail.xyz/faq/how-to-use-identical-usb-cam-models-twice, but after editing (via Mainsail, verifying over SSH the changes were saved), and reboot, the crowsnest.conf is reset to using /dev/videoN for my cameras. NOT the by-path. It's super weird, it just automatically resets it.

Although I notice above the bandwidth issue...which I think will be an issue for me as well. Thinking I might need to use an external RPi, but any way I can have crowsnest reference an external source of the video, rather than direct attach USB cameras? Or should I just redo everything, put Mainsail/etc on an RPi or other similar, and use CB1+Manta M8P with the base Klipper/moonraker?

mryel00 commented 7 months ago

@Drizzt321 Please stay on the Discord as I'm the person helping here and on the server. Your issue is different. Here is no place for support, it's just there to identify an issue with the code and not with your setup.

mryel00 commented 7 months ago

And you know it's a different issue, if you right: "It's a similar issue, BUT...."