You have to create a [cam] section per camera and name your cameras by placing the name inside the square brackets.
Copy [cam raspi]
mode: camera-streamer
...
[cam logiC270]
mode: ustreamer
...
The word cam
must be set!
This is a keyword to determine that this section belongs to a camera setup.
mode
The streaming mode used by Crowsnest.
Default: mode: ustreamer
Available options:
ustreamerThis mode uses the mjpg protocol and streams with ustreamer. It's basically a series of jpeg images. This mode uses a lot of bandwidth depending on the resolution and frame rate set.
camera-streamerThis mode uses camera-streamer as backend.
camera-streamer is only available on Raspberry Pi's currently, more SBC's will follow.
The greatest advantage of camera-streamer is, it uses the inbuilt GPU of the Pi SBC
to deliver hardware encoded h.264 as format. This allows you to stream your video feed in webrtc, which has the advantage of using less bandwith without loosing quality and/or framerates/resolution.
It also provides simultaniously stream of rtsp (if enabled through `enable_rtsp: true`),
mjpg and snapshots.
enable_rtsp
If `mode: camera-streamer` is used, this will enable the RTSP Server of camera-streamer.
The stream's URL becomes rtsp://<printer-ip-or-name>:<rtsp_port>
/stream.h264
Example: rtsp://mainsailos.local:8554
/stream.h264
rtsp_port
This setting allows you to set a port for the rtsp server. Only available with `mode: camera-streamer`
port
The network port through which the camera is accessible. This setting only affects the mjpg mode (ustreamer).
Default: port: 8080
Note: In MainsailOS, by default four webcam ports are mapped to URLs. Notice that the first URL doesn't contain a number. You can simply add these to the Mainsail settings.
Port Stream URL Snapshot URL /webcam2/?action=snapshot
/webcam3/?action=snapshot
/webcam4/?action=snapshot
A small note on WebRTC
In order to use WebRTC
, please replace ?action=stream
with webrtc
. Keep in mind this will only work if you use mode: camera-streamer
.
Don't change the URL Snapshot
! This will be the same as before.
device
The path of the video device (camera) to be used by the configured streaming service. All available devices are listed in the log file every time Crowsnest is started. You can copy the path from there.
Default: device: /dev/video0
A path in this format is also valid:
Copy device: /dev/v4l/by-id/usb-PixArt_Imaging_Inc._USB2.0_Camera-video-index0
Always prefer full paths as shown above, especcially in Mutlicam setups using /dev/video* will
lead to errors or unexpected behaviours.
resolution
The desired streaming resolution, formatted as height
xwidth
without spaces.
Default: resolution: 640x480
Note: This is case sensitive! Do not use capital 'X' !
The resolution has a big impact on the bandwidth, especially in mjpg mode.
There are two practical ways to determine, which resolutions are supported by your device:
Example log file
Copy [11/16/22 20:16:26] crowsnest: Supported Formats:
[11/16/22 20:16:26] crowsnest: [0]: 'MJPG' ( Motion-JPEG, compressed )
[11/16/22 20:16:26] crowsnest: Size: Discrete 1920x1080
[11/16/22 20:16:26] crowsnest: Interval: Discrete 0.017s ( 60.000 fps )
[11/16/22 20:16:26] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:26] crowsnest: Size: Discrete 3840x2160
[11/16/22 20:16:26] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:26] crowsnest: Size: Discrete 640x480
[11/16/22 20:16:26] crowsnest: Interval: Discrete 0.017s ( 60.000 fps )
[11/16/22 20:16:26] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:26] crowsnest: Size: Discrete 160x120
[11/16/22 20:16:26] crowsnest: Interval: Discrete 0.017s ( 60.000 fps )
[11/16/22 20:16:26] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:26] crowsnest: Size: Discrete 176x144
[11/16/22 20:16:26] crowsnest: Interval: Discrete 0.017s ( 60.000 fps )
[11/16/22 20:16:26] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:26] crowsnest: Size: Discrete 320x180
[11/16/22 20:16:26] crowsnest: Interval: Discrete 0.017s ( 60.000 fps )
[11/16/22 20:16:26] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:26] crowsnest: Size: Discrete 320x240
[11/16/22 20:16:26] crowsnest: Interval: Discrete 0.017s ( 60.000 fps )
[11/16/22 20:16:26] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:26] crowsnest: Size: Discrete 352x288
[11/16/22 20:16:26] crowsnest: Interval: Discrete 0.017s ( 60.000 fps )
[11/16/22 20:16:26] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 340x340
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.017s ( 60.000 fps )
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 424x240
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.017s ( 60.000 fps )
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 440x440
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.017s ( 60.000 fps )
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 480x270
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.017s ( 60.000 fps )
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 640x360
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 800x448
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.017s ( 60.000 fps )
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 800x600
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.017s ( 60.000 fps )
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 848x480
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.017s ( 60.000 fps )
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 960x540
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.017s ( 60.000 fps )
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 1024x576
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.017s ( 60.000 fps )
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 1280x720
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.017s ( 60.000 fps )
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 1600x896
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.017s ( 60.000 fps )
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 2560x1440
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 3840x3104
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 3264x2448
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 2592x1944
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 2048x1536
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 1600x1200
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 1024x768
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.017s ( 60.000 fps )
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:27] crowsnest: [1]: 'YUYV' ( YUYV 4:2:2 )
[11/16/22 20:16:27] crowsnest: Size: Discrete 1920x1080
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.200s ( 5.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 3840x2160
[11/16/22 20:16:27] crowsnest: Interval: Discrete 1.000s ( 1.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 640x480
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 160x120
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 176x144
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 320x180
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 320x240
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 352x288
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 340x340
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 424x240
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:27] crowsnest: Size: Discrete 440x440
[11/16/22 20:16:27] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:28] crowsnest: Size: Discrete 480x270
[11/16/22 20:16:28] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:28] crowsnest: Size: Discrete 640x360
[11/16/22 20:16:28] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:28] crowsnest: Size: Discrete 800x448
[11/16/22 20:16:28] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:28] crowsnest: Size: Discrete 800x600
[11/16/22 20:16:28] crowsnest: Interval: Discrete 0.100s ( 10.000 fps )
[11/16/22 20:16:28] crowsnest: Size: Discrete 848x480
[11/16/22 20:16:28] crowsnest: Interval: Discrete 0.033s ( 30.000 fps )
[11/16/22 20:16:28] crowsnest: Size: Discrete 960x540
[11/16/22 20:16:28] crowsnest: Interval: Discrete 0.100s ( 10.000 fps )
[11/16/22 20:16:28] crowsnest: Size: Discrete 1024x576
[11/16/22 20:16:28] crowsnest: Interval: Discrete 0.100s ( 10.000 fps )
[11/16/22 20:16:28] crowsnest: Size: Discrete 1280x720
[11/16/22 20:16:28] crowsnest: Interval: Discrete 0.100s ( 10.000 fps )
[11/16/22 20:16:28] crowsnest: Size: Discrete 1600x896
[11/16/22 20:16:28] crowsnest: Interval: Discrete 0.200s ( 5.000 fps )
[11/16/22 20:16:28] crowsnest: Size: Discrete 2560x1440
[11/16/22 20:16:28] crowsnest: Interval: Discrete 1.000s ( 1.000 fps )
[11/16/22 20:16:28] crowsnest: Size: Discrete 3840x3104
[11/16/22 20:16:28] crowsnest: Interval: Discrete 1.000s ( 1.000 fps )
[11/16/22 20:16:28] crowsnest: Size: Discrete 3264x2448
[11/16/22 20:16:28] crowsnest: Interval: Discrete 1.000s ( 1.000 fps )
[11/16/22 20:16:28] crowsnest: Size: Discrete 2592x1944
[11/16/22 20:16:28] crowsnest: Interval: Discrete 1.000s ( 1.000 fps )
[11/16/22 20:16:28] crowsnest: Size: Discrete 2048x1536
[11/16/22 20:16:28] crowsnest: Interval: Discrete 1.000s ( 1.000 fps )
[11/16/22 20:16:28] crowsnest: Size: Discrete 1600x1200
[11/16/22 20:16:28] crowsnest: Interval: Discrete 1.000s ( 1.000 fps )
[11/16/22 20:16:28] crowsnest: Size: Discrete 1024x768
[11/16/22 20:16:28] crowsnest: Interval: Discrete 0.100s ( 10.000 fps )
using dev-helper.sh
from tools
directory
Copy cd ~/crowsnest
tools/dev-helper.sh -c
Sample output
Copy crowsnest - dev-helper.sh
v4l2-ctl supported camera ( s ) :
Device /dev/video1:
Symbolic links to /dev/video1:
/dev/v4l/by-id/usb-XCG-220921-J_3DO_Nozzle_Camera_01.00.00-video-index0
/dev/v4l/by-path/platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.1:1.0-video-index0
Supported formats:
[0] : 'MJPG' (Motion-JPEG, compressed )
Size: Discrete 1920x1080
Interval: Discrete 0.017s (60.000 fps )
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 3840x2160
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 640x480
Interval: Discrete 0.017s (60.000 fps )
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 160x120
Interval: Discrete 0.017s (60.000 fps )
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 176x144
Interval: Discrete 0.017s (60.000 fps )
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 320x180
Interval: Discrete 0.017s (60.000 fps )
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 320x240
Interval: Discrete 0.017s (60.000 fps )
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 352x288
Interval: Discrete 0.017s (60.000 fps )
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 340x340
Interval: Discrete 0.017s (60.000 fps )
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 424x240
Interval: Discrete 0.017s (60.000 fps )
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 440x440
Interval: Discrete 0.017s (60.000 fps )
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 480x270
Interval: Discrete 0.017s (60.000 fps )
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 640x360
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 800x448
Interval: Discrete 0.017s (60.000 fps )
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 800x600
Interval: Discrete 0.017s (60.000 fps )
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 848x480
Interval: Discrete 0.017s (60.000 fps )
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 960x540
Interval: Discrete 0.017s (60.000 fps )
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 1024x576
Interval: Discrete 0.017s (60.000 fps )
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 1280x720
Interval: Discrete 0.017s (60.000 fps )
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 1600x896
Interval: Discrete 0.017s (60.000 fps )
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 2560x1440
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 3840x3104
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 3264x2448
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 2592x1944
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 2048x1536
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 1600x1200
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 1024x768
Interval: Discrete 0.017s (60.000 fps )
Interval: Discrete 0.033s (30.000 fps )
[1] : 'YUYV' (YUYV 4:2:2 )
Size: Discrete 1920x1080
Interval: Discrete 0.200s (5.000 fps )
Size: Discrete 3840x2160
Interval: Discrete 1.000s (1.000 fps )
Size: Discrete 640x480
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 160x120
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 176x144
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 320x180
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 320x240
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 352x288
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 340x340
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 424x240
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 440x440
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 480x270
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 640x360
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 800x448
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 800x600
Interval: Discrete 0.100s (10.000 fps )
Size: Discrete 848x480
Interval: Discrete 0.033s (30.000 fps )
Size: Discrete 960x540
Interval: Discrete 0.100s (10.000 fps )
Size: Discrete 1024x576
Interval: Discrete 0.100s (10.000 fps )
Size: Discrete 1280x720
Interval: Discrete 0.100s (10.000 fps )
Size: Discrete 1600x896
Interval: Discrete 0.200s (5.000 fps )
Size: Discrete 2560x1440
Interval: Discrete 1.000s (1.000 fps )
Size: Discrete 3840x3104
Interval: Discrete 1.000s (1.000 fps )
Size: Discrete 3264x2448
Interval: Discrete 1.000s (1.000 fps )
Size: Discrete 2592x1944
Interval: Discrete 1.000s (1.000 fps )
Size: Discrete 2048x1536
Interval: Discrete 1.000s (1.000 fps )
Size: Discrete 1600x1200
Interval: Discrete 1.000s (1.000 fps )
Size: Discrete 1024x768
Interval: Discrete 0.100s (10.000 fps )
Supported Controls:
brightness 0x00980900 (int) : min = -64 max = 64 step = 1 default = -15 value = -15
contrast 0x00980901 (int) : min = 0 max = 95 step = 1 default = 4 value = 2
saturation 0x00980902 (int) : min = 0 max = 100 step = 1 default = 70 value = 70
hue 0x00980903 (int) : min = -2000 max = 2000 step = 1 default = 0 value = 0
white_balance_temperature_auto 0x0098090c (bool) : default = 1 value = 1
gamma 0x00980910 (int) : min = 100 max = 300 step = 1 default = 115 value = 115
power_line_frequency 0x00980918 (menu) : min = 0 max = 2 default = 2 value = 2
0: Disabled
1: 50 Hz
2: 60 Hz
white_balance_temperature 0x0098091a (int) : min = 2800 max = 6500 step = 1 default = 4600 value = 4600 flags = inactive
sharpness 0x0098091b (int) : min = 1 max = 7 step = 1 default = 1 value = 2
backlight_compensation 0x0098091c (int) : min = 0 max = 1 step = 1 default = 0 value = 0
exposure_auto 0x009a0901 (menu) : min = 0 max = 3 default = 3 value = 3
1: Manual Mode
3: Aperture Priority Mode
exposure_absolute 0x009a0902 (int) : min = 3 max = 2047 step = 1 default = 166 value = 166 flags = inactive
focus_absolute 0x009a090a (int) : min = 0 max = 1023 step = 1 default = 0 value = 634 flags = inactive
focus_auto 0x009a090c (bool) : default = 0 value = 1
max_fps
The desired streaming FPS (frames per second).
Default max_fps: 15
Note:
It is necessary to research which FPS in combination with which resolution your camera supports. For detailed information run v4l2-ctl --list-formats-ext
in your SSH session.
The FPS has a big impact on the bandwidth, especially in mjpg mode.
This setting is mostly ignored in rtsp mode.
custom_flags
This setting allows you to pass advanced parameters to ustreamer. It is possible to adjust image parameters such as brightness, contrast and saturation, or to flip the image. The passed parameters are appended to the already configured parameters. However, your camera needs to support these advanced parameters as well.
Default: custom_flags:
Note: The flags are separated by a single space, not by a comma.
You need to take a closer look at the documentation of the ustreamer project . As a guide, we have placed ustreamer's manpage in crowsnest repository .
Please prefer ustreamer's project page. Our manpage may not accurate
v4l2ctl
This option allows to pass parameters for the configured device to V4L2 "the driver". Depending on the camera model, it is possible to pass different parameters, but not all parameters are supported by every camera.
Commented out by default.
Note: It is a very tough topic and is only recommended for advanced users.
All parameters have to be seperated by using a comma !
Example: v4l2ctl: paramter1=value1,parameter2=value2,parameter3=....
There are also two ways to determine what your device is capable of
Example log output:
Copy [11/16/22 20:16:28] crowsnest: Supported Controls:
[11/16/22 20:16:28] crowsnest: brightness 0x00980900 ( int ) : min = -64 max = 64 step = 1 default = -15 value = -15
[11/16/22 20:16:28] crowsnest: contrast 0x00980901 ( int ) : min = 0 max = 95 step = 1 default = 4 value = 2
[11/16/22 20:16:28] crowsnest: saturation 0x00980902 ( int ) : min = 0 max = 100 step = 1 default = 70 value = 70
[11/16/22 20:16:28] crowsnest: hue 0x00980903 ( int ) : min = -2000 max = 2000 step = 1 default = 0 value = 0
[11/16/22 20:16:28] crowsnest: white_balance_temperature_auto 0x0098090c ( bool ) : default = 1 value = 1
[11/16/22 20:16:28] crowsnest: gamma 0x00980910 ( int ) : min = 100 max = 300 step = 1 default = 115 value = 115
[11/16/22 20:16:28] crowsnest: power_line_frequency 0x00980918 ( menu ) : min = 0 max = 2 default = 2 value = 2
[11/16/22 20:16:28] crowsnest: 0: Disabled
[11/16/22 20:16:28] crowsnest: 1: 50 Hz
[11/16/22 20:16:28] crowsnest: 2: 60 Hz
[11/16/22 20:16:28] crowsnest: white_balance_temperature 0x0098091a (int) : min=2800 max=6500 step=1 default=4600 value=4600 flags=inactive
[11/16/22 20:16:28] crowsnest: sharpness 0x0098091b ( int ) : min = 1 max = 7 step = 1 default = 1 value = 2
[11/16/22 20:16:28] crowsnest: backlight_compensation 0x0098091c ( int ) : min = 0 max = 1 step = 1 default = 0 value = 0
[11/16/22 20:16:28] crowsnest: exposure_auto 0x009a0901 ( menu ) : min = 0 max = 3 default = 3 value = 3
[11/16/22 20:16:28] crowsnest: 1: Manual Mode
[11/16/22 20:16:28] crowsnest: 3: Aperture Priority Mode
[11/16/22 20:16:28] crowsnest: exposure_absolute 0x009a0902 (int) : min=3 max=2047 step=1 default=166 value=166 flags=inactive
[11/16/22 20:16:28] crowsnest: focus_absolute 0x009a090a (int) : min=0 max=1023 step=1 default=0 value=634 flags=inactive
[11/16/22 20:16:28] crowsnest: focus_auto 0x009a090c ( bool ) : default = 0 value = 1
or as earlier mentioned using dev-helper.sh
script
Example of an application
A Logitech C920 camera has autofocus activated by default. To get a nice picture, the manual focus should be activated. Until now, one had to use a cronjob that executes a script with v4l2-ctl commands. This was very inconvenient and a lot of set-up.
In Crowsnest you can simply specify these options in the config:
Copy v4l2ctl: focus_auto=0,focus_absolute=30
Restart Crowsnest service via Mainsail and you're good to go.
Take a look at alexz' crowsnest.conf file.