Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Breaking changes #85

Closed
KwadFan opened this issue Feb 5, 2023 · 51 comments
Closed

Breaking changes #85

KwadFan opened this issue Feb 5, 2023 · 51 comments
Assignees
Labels
WIP Work in Progress

Comments

@KwadFan
Copy link
Member

KwadFan commented Feb 5, 2023

What happened

Hey there,

I am currently working on the switch to camera-streamer as default backend Raspberry Pi SBC.

What does that mean for future releases?

  1. Crowsnest is able to handle Arducams and probably the new Raspicam V3 module.
  2. We have webrtc streams (Yay, finally) in future releases of mainsail.
  3. We are dropping completly the support for OMX therefor "buster based images", it has to be bullseye from now on.
  4. Non Rpi Devices are limited to MJPG/snapshots as previously due well known ustreamer, Install may fail because I cant test everything yet, but promised I will fix it asap, if reported here as an Issue.

If you want to stay with Version 3 please change branch to legacy/v3 this is a snapshot of current master branch.
Please be aware that this branch will not recieve updates in future. It is only for those who need backwards compatibility

Stay tuned....

Regards Kwad

What did you expect to happen

Breaking things

How to reproduce

We will see how to reproduce ;)

Additional information

No response

@KwadFan KwadFan added the bug Something isn't working label Feb 5, 2023
@KwadFan KwadFan pinned this issue Feb 5, 2023
@KwadFan KwadFan added WIP Work in Progress and removed bug Something isn't working labels Feb 5, 2023
@JD-Harding
Copy link

Tested with RPI Cam v3 and still no joy. Good job on the update though!

@jonp92
Copy link

jonp92 commented Feb 8, 2023

This will break proper Obico streaming FYI. They are still dependent on 32bit RPi images due to them using the OMX encoder in FFMPEG plus a 32bit version of Janus.

@KwadFan
Copy link
Member Author

KwadFan commented Feb 8, 2023

Well, then time to switch for Obico ... OMX is not supported anymore in newer images of RaspiOS.
But FYI, we are in contact with Obico and at some point we will join forces to use the already existing webrtc feature of camera-streamer ...

@KwadFan
Copy link
Member Author

KwadFan commented Feb 8, 2023

Tested with RPI Cam v3 and still no joy. Good job on the update though!

Yes, Implementation of raspicams is on my todo. My V3 Module arrived today, so only a mater of time ;)

@JD-Harding
Copy link

Hey @KwadFan - just wondering if you had any update on the pi cam v3? Really excited to get it working! Thanks!

@KwadFan
Copy link
Member Author

KwadFan commented Feb 25, 2023

Hey @KwadFan - just wondering if you had any update on the pi cam v3? Really excited to get it working! Thanks!

Please headover to https://github.com/roamingthings/spyglass for now. This streamer will find its way also to crowsnest.
Use the method to install as Service from their README and disable crowsnest or manage settings with different ports, then they can run side by side

camera-streamer needs currently some love from ayufan, which is working hard on it, to fully be integrated. Also we have an issue with compiling on older Models of the pi ( due lack of ram and/or compute power) that has to be solved.

Hopefully we can get it managed in the next weeks.

@JD-Harding
Copy link

I'm in no rush and happy to wait (although I am excited to get it working). Just curious as to how you guys were getting on!

@KwadFan
Copy link
Member Author

KwadFan commented Mar 11, 2023

Hey there 👋 ,

today I merged the camera-streamer branch to develop, so feel free to test and report back if any bugs are found, I want to iron them out completly before merging to master.

This is BREAKING!!!! uninstall crowsnest completly before testing!!!

Will work on documentation, for now you have to use mode: multi to use camera-streamer, mjpg stays ustreamer.

NOTE: Raspicam V1 and OMX support are completly dropped! You need to use the legacy/v3 branch to stay compatible, also this will only work on bullseye images with an 5.15.84 kernel at least!

Regards Kwad

@KwadFan KwadFan self-assigned this Mar 11, 2023
@JD-Harding
Copy link

Thanks! Not going to have much time to test this but looking forward to it hitting master!

@benphelps
Copy link

Running under Ubuntu 22.04.2 LTS I had to add the focal universe repo to install the liblivemedia-dev package, it seems to not be part of the jammy universe repo,

sudo add-apt-repository 'deb http://ports.ubuntu.com/ubuntu-ports focal universe'

other than that it built fine. In mainsail, I updated the URL Stream value to /webcam/webrtc and everything is working great.

@benphelps
Copy link

Leaving the URL Stream as the default /webcam/?action=stream does not work for me, and I get a 502 Bad Gateway error from Nginx. The upstream server sends back an empty response, the POST action needs to be sent to /webcam/webrtc.

I'm not sure if this is expected behaviour, but I made a pull request that allows the default Mainsail values to continue working here ayufan/camera-streamer#49

@BreeOge
Copy link

BreeOge commented Mar 19, 2023

Leaving the URL Stream as the default /webcam/?action=stream does not work for me, and I get a 502 Bad Gateway error from Nginx. The upstream server sends back an empty response, the POST action needs to be sent to /webcam/webrtc.

I'm not sure if this is expected behaviour, but I made a pull request that allows the default Mainsail values to continue working here ayufan/camera-streamer#49

Check your v4l2ctl settings. Something changed just the other day and it has affected some of the settings. The setting names changed as well. Mine was doing the same thing till I noticed it.

@benphelps
Copy link

Leaving the URL Stream as the default /webcam/?action=stream does not work for me, and I get a 502 Bad Gateway error from Nginx. The upstream server sends back an empty response, the POST action needs to be sent to /webcam/webrtc.
I'm not sure if this is expected behaviour, but I made a pull request that allows the default Mainsail values to continue working here ayufan/camera-streamer#49

Check your v4l2ctl settings. Something changed just the other day and it has affected some of the settings. The setting names changed as well. Mine was doing the same thing till I noticed it.

Empty for me, the C270 can't be helped with any of the settings, it's just all around poor quality 😂

My issue was just to do with using WebRTC as the service, and leaving the other settings as their defaults. If camera-streamer merges that PR, then it'll work like in the image, otherwise users will have to change the stream URL to /webcam/webrtc.

Screenshot 2023-03-20 at 9 11 53 AM

@meteyou
Copy link
Member

meteyou commented Mar 20, 2023

@benphelps users have to change the url to /webcam/webrtc every time, when they want to use camera-streamer with webrtc. the merge will noch redirect anything of this streamer.

@benphelps
Copy link

@benphelps users have to change the url to /webcam/webrtc every time, when they want to use camera-streamer with webrtc. the merge will noch redirect anything of this streamer.

It just extends the already existing compatibility layer to also handle POST requests to that endpoint. The user would not have to change anything if it's accepted.

I'm just saying it doesn't have to be that way, it can work without needing to change the URL every time, and it's a very simple patch to camera-streamer.

@benphelps
Copy link

Just to expand a little, /webcam/?action=stream is already a redirect to /webcam/stream. So adding another redirect to handle the WebRTC case isn't going against already existing behaviour.

@KwadFan
Copy link
Member Author

KwadFan commented Mar 23, 2023

Just to expand a little, /webcam/?action=stream is already a redirect to /webcam/stream. So adding another redirect to handle the WebRTC case isn't going against already existing behaviour.

This is out of my scope. Please head to ayufan/camera-streamer to get that feature.

@ayufan would this be possible?

@benphelps
Copy link

Just to expand a little, /webcam/?action=stream is already a redirect to /webcam/stream. So adding another redirect to handle the WebRTC case isn't going against already existing behaviour.

This is out of my scope. Please head to ayufan/camera-streamer to get that feature.

@ayufan would this be possible?

I already made a pull request to add that (ayufan/camera-streamer#49), I was just updating this thread on the problems I ran into setting up the new branch.

@KwadFan
Copy link
Member Author

KwadFan commented Apr 10, 2023

Running under Ubuntu 22.04.2 LTS I had to add the focal universe repo to install the liblivemedia-dev package, it seems to not be part of the jammy universe repo,

sudo add-apt-repository 'deb http://ports.ubuntu.com/ubuntu-ports focal universe'

other than that it built fine. In mainsail, I updated the URL Stream value to /webcam/webrtc and everything is working great.

Good point, could you please share some output? Need some hooks to identify board and distro, then I could do a "workaround" inside the installer...

grep "ubuntu" /etc/os-release and path to config.txt(or an equivalent) to it.
Need at least to hooks to clearly differentiate from a Buntu x86

Regards Kwad

@KwadFan
Copy link
Member Author

KwadFan commented Apr 10, 2023

As a notice. Merged new installer to develop.

Things to do are:

  1. Adding function to bump gpu_mem
  2. Changing mode to more appropriate streamer keyword
  3. "Ubuntu ARM Workaround"

Tested install on Debian 11 VM and Raspberrpi OS Lite.
Has to be tested on Ubuntu ARM.

Regards Kwad

@KwadFan
Copy link
Member Author

KwadFan commented Apr 13, 2023

I did it test by myself with Ubuntu Server ARM 22.10 and the last version that contains liblivemedia-dev is focal aka 20.04.

Which in the end leads me to say sorry but there will be no camera-streamer support in Ubuntu ARM, because I dont want to add repositorys from outdated versions to actual versions.

Regards Kwad

@ayufan
Copy link
Contributor

ayufan commented Apr 13, 2023

@KwadFan

Which in the end leads me to say sorry but there will be no camera-streamer support in Ubuntu ARM, because I dont want to add repositorys from outdated versions to actual versions.

camera-streamer does not require liblivemedia-dev. If it will be not found no RTSP backend will be compiled in.

@KwadFan
Copy link
Member Author

KwadFan commented Apr 13, 2023

@KwadFan

Which in the end leads me to say sorry but there will be no camera-streamer support in Ubuntu ARM, because I dont want to add repositorys from outdated versions to actual versions.

camera-streamer does not require liblivemedia-dev. If it will be not found no RTSP backend will be compiled in.

Yes, but camera-streamer is now also my RTSP Server :) So, hard decision, but somehow I have to ensure its working.
And I simply dont want to install outdated Repos to the distro.

@ayufan
Copy link
Contributor

ayufan commented Apr 13, 2023

@KwadFan

I could possible compile in liblivemedia. Unsure if this is worth though :)

@KwadFan
Copy link
Member Author

KwadFan commented Apr 20, 2023

I was testing camera-streamer in the develop branch yesterday on my MainsailOS 1.1.1 on pi 4 with pi camera module v2. The webrtc stream hangs unless I comment out the --camera-format=YUYV option.

This is my crowsnet config:

[crowsnest]
log_path: /home/pi/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

[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                              # HTTP/MJPG Stream/Snapshot Port
device: /base/soc                       # See Log for available ...
resolution: 1640x1232                   # widthxheight format
max_fps: 30                             # 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.

Obviously I have changed my boot config to enable libcamera.

I bet its because your misconfiguration ...

device: /base/soc

This is not a valid device path, please see your log for the correct path.
Tested it right now with Raspicam v1.3 v2 and v3, cant reproduce..
Regards Kwad

@gifter77
Copy link

Hi Kwad,

Thanks for the reply.

Correcting the device path doesn't fix it. Only commenting out start_param+=( --camera-format=YUYV ) in libs/camera-streamer.sh fixes it somehow...

@gifter77
Copy link

More details, with the camera format as YUYV, I get the following in debug logs non stop and no webrtc video:

[04/20/23 19:27:18] crowsnest: DEBUG: camera-streamer [cam 1]: device/links.c: VIDEO:capture:mplane:buf0: Capture image is outdated. Skipped. Now: 446654326, vs 438681259.
[04/20/23 19:27:20] crowsnest: DEBUG: camera-streamer [cam 1]: device/links.c: VIDEO:capture:mplane:buf1: Capture image is outdated. Skipped. Now: 448654399, vs 442680568.
[04/20/23 19:27:22] crowsnest: DEBUG: camera-streamer [cam 1]: device/links.c: VIDEO:capture:mplane:buf0: Capture image is outdated. Skipped. Now: 450654376, vs 444680217.
[04/20/23 19:27:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/links.c: VIDEO:capture:mplane:buf1: Capture image is outdated. Skipped. Now: 452654396, vs 446679869.
[04/20/23 19:27:26] crowsnest: DEBUG: camera-streamer [cam 1]: device/links.c: VIDEO:capture:mplane:buf0: Capture image is outdated. Skipped. Now: 454654413, vs 448679521.
[04/20/23 19:27:28] crowsnest: DEBUG: camera-streamer [cam 1]: device/links.c: VIDEO:capture:mplane:buf1: Capture image is outdated. Skipped. Now: 456654404, vs 450679171.

@KwadFan
Copy link
Member Author

KwadFan commented Apr 20, 2023

More details, with the camera format as YUYV, I get the following in debug logs non stop and no webrtc video:

[04/20/23 19:27:18] crowsnest: DEBUG: camera-streamer [cam 1]: device/links.c: VIDEO:capture:mplane:buf0: Capture image is outdated. Skipped. Now: 446654326, vs 438681259.
[04/20/23 19:27:20] crowsnest: DEBUG: camera-streamer [cam 1]: device/links.c: VIDEO:capture:mplane:buf1: Capture image is outdated. Skipped. Now: 448654399, vs 442680568.
[04/20/23 19:27:22] crowsnest: DEBUG: camera-streamer [cam 1]: device/links.c: VIDEO:capture:mplane:buf0: Capture image is outdated. Skipped. Now: 450654376, vs 444680217.
[04/20/23 19:27:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/links.c: VIDEO:capture:mplane:buf1: Capture image is outdated. Skipped. Now: 452654396, vs 446679869.
[04/20/23 19:27:26] crowsnest: DEBUG: camera-streamer [cam 1]: device/links.c: VIDEO:capture:mplane:buf0: Capture image is outdated. Skipped. Now: 454654413, vs 448679521.
[04/20/23 19:27:28] crowsnest: DEBUG: camera-streamer [cam 1]: device/links.c: VIDEO:capture:mplane:buf1: Capture image is outdated. Skipped. Now: 456654404, vs 450679171.

@ayufan Is that something to worry about?

@KwadFan
Copy link
Member Author

KwadFan commented Apr 20, 2023

Hi Kwad,

Thanks for the reply.

Correcting the device path doesn't fix it. Only commenting out start_param+=( --camera-format=YUYV ) in libs/camera-streamer.sh fixes it somehow...

Dont know why it doesnt work for you, but this is the recommended setup for your cam by camera-streamer
https://github.com/ayufan/camera-streamer/blob/master/service/camera-streamer-raspi-v2-8MP.service

And as already said, cant reproduce it, without my V2 Cam does not work properly

But instead of commenting out I would suggest using custom_flags: to overwrite for a format that works for you

@gifter77
Copy link

Thanks, it works properly if I add --camera-format=NV12 to custom_flags. But that seems very odd that you need YUYV for your V2 CAM to work and I need NV12...

@ayufan
Copy link
Contributor

ayufan commented Apr 20, 2023

Bandwidth issue? YUYV requires 2x NV12 BW.

What does tools/dump_cameras.sh from camera-streamer says?

@gifter77
Copy link

dump_camera.sh output ++ cat /sys/firmware/devicetree/base/model ++ tr -d '\0' + echo 'Raspberry Pi 4 Model B Rev 1.5' Raspberry Pi 4 Model B Rev 1.5 + uname -a Linux voron 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux + v4l2-ctl --list-devices v4l2-ctl | bcm2835-codec-decode (platform:bcm2835-codec): v4l2-ctl | /dev/video10 v4l2-ctl | /dev/video11 v4l2-ctl | /dev/video12 v4l2-ctl | /dev/video18 v4l2-ctl | /dev/video31 v4l2-ctl | /dev/media2 v4l2-ctl | v4l2-ctl | bcm2835-isp (platform:bcm2835-isp): v4l2-ctl | /dev/video13 v4l2-ctl | /dev/video14 v4l2-ctl | /dev/video15 v4l2-ctl | /dev/video16 v4l2-ctl | /dev/video20 v4l2-ctl | /dev/video21 v4l2-ctl | /dev/video22 v4l2-ctl | /dev/video23 v4l2-ctl | /dev/media1 v4l2-ctl | /dev/media3 v4l2-ctl | v4l2-ctl | unicam (platform:fe801000.csi): v4l2-ctl | /dev/video0 v4l2-ctl | /dev/video1 v4l2-ctl | /dev/media4 v4l2-ctl | v4l2-ctl | rpivid (platform:rpivid): v4l2-ctl | /dev/video19 v4l2-ctl | /dev/media0 v4l2-ctl | + libcamera-hello --list-cameras libcamera | Available cameras libcamera | ----------------- libcamera | 0 : imx219 [3280x2464] (/base/soc/i2c0mux/i2c@1/imx219@10) libcamera | Modes: 'SRGGB10_CSI2P' : 640x480 [103.33 fps - (1000, 752)/1280x960 crop] libcamera | 1640x1232 [41.85 fps - (0, 0)/3280x2464 crop] libcamera | 1920x1080 [47.57 fps - (680, 692)/1920x1080 crop] libcamera | 3280x2464 [21.19 fps - (0, 0)/3280x2464 crop] libcamera | 'SRGGB8' : 640x480 [103.33 fps - (1000, 752)/1280x960 crop] libcamera | 1640x1232 [41.85 fps - (0, 0)/3280x2464 crop] libcamera | 1920x1080 [47.57 fps - (680, 692)/1920x1080 crop] libcamera | 3280x2464 [21.19 fps - (0, 0)/3280x2464 crop] ==================================== DEVICE: /dev/video0 ==================================== + v4l2-ctl -d /dev/video0 --info --list-formats-ext --list-fields --list-formats-out --list-fields-out /dev/video0 | Driver Info: /dev/video0 | Driver name : unicam /dev/video0 | Card type : unicam /dev/video0 | Bus info : platform:fe801000.csi /dev/video0 | Driver version : 6.1.21 /dev/video0 | Capabilities : 0xa5a00001 /dev/video0 | Video Capture /dev/video0 | Metadata Capture /dev/video0 | Read/Write /dev/video0 | Streaming /dev/video0 | Extended Pix Format /dev/video0 | Device Capabilities /dev/video0 | Device Caps : 0x25200001 /dev/video0 | Video Capture /dev/video0 | Read/Write /dev/video0 | Streaming /dev/video0 | Extended Pix Format /dev/video0 | Media Driver Info: /dev/video0 | Driver name : unicam /dev/video0 | Model : unicam /dev/video0 | Serial : /dev/video0 | Bus info : platform:fe801000.csi /dev/video0 | Media version : 6.1.21 /dev/video0 | Hardware revision: 0x00000000 (0) /dev/video0 | Driver version : 6.1.21 /dev/video0 | Interface Info: /dev/video0 | ID : 0x03000006 /dev/video0 | Type : V4L Video /dev/video0 | Entity Info: /dev/video0 | ID : 0x00000004 (4) /dev/video0 | Name : unicam-image /dev/video0 | Function : V4L2 I/O /dev/video0 | Flags : default /dev/video0 | Pad 0x01000005 : 0: Sink /dev/video0 | Link 0x02000008: from remote pad 0x1000002 of entity 'imx219 10-0010': Data, Enabled, Immutable /dev/video0 | ioctl: VIDIOC_ENUM_FMT /dev/video0 | Type: Video Capture /dev/video0 | /dev/video0 | [0]: 'YUYV' (YUYV 4:2:2) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [1]: 'UYVY' (UYVY 4:2:2) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [2]: 'YVYU' (YVYU 4:2:2) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [3]: 'VYUY' (VYUY 4:2:2) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [4]: 'RGBP' (16-bit RGB 5-6-5) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [5]: 'RGBR' (16-bit RGB 5-6-5 BE) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [6]: 'RGBO' (16-bit A/XRGB 1-5-5-5) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [7]: 'RGBQ' (16-bit A/XRGB 1-5-5-5 BE) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [8]: 'RGB3' (24-bit RGB 8-8-8) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [9]: 'BGR3' (24-bit BGR 8-8-8) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [10]: 'RGB4' (32-bit A/XRGB 8-8-8-8) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [11]: 'BA81' (8-bit Bayer BGBG/GRGR) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [12]: 'GBRG' (8-bit Bayer GBGB/RGRG) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [13]: 'GRBG' (8-bit Bayer GRGR/BGBG) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [14]: 'RGGB' (8-bit Bayer RGRG/GBGB) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [15]: 'pBAA' (10-bit Bayer BGBG/GRGR Packed) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [16]: 'BG10' (10-bit Bayer BGBG/GRGR) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [17]: 'pGAA' (10-bit Bayer GBGB/RGRG Packed) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [18]: 'GB10' (10-bit Bayer GBGB/RGRG) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [19]: 'pgAA' (10-bit Bayer GRGR/BGBG Packed) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [20]: 'BA10' (10-bit Bayer GRGR/BGBG) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [21]: 'pRAA' (10-bit Bayer RGRG/GBGB Packed) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [22]: 'RG10' (10-bit Bayer RGRG/GBGB) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [23]: 'pBCC' (12-bit Bayer BGBG/GRGR Packed) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [24]: 'BG12' (12-bit Bayer BGBG/GRGR) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [25]: 'pGCC' (12-bit Bayer GBGB/RGRG Packed) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [26]: 'GB12' (12-bit Bayer GBGB/RGRG) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [27]: 'pgCC' (12-bit Bayer GRGR/BGBG Packed) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [28]: 'BA12' (12-bit Bayer GRGR/BGBG) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [29]: 'pRCC' (12-bit Bayer RGRG/GBGB Packed) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [30]: 'RG12' (12-bit Bayer RGRG/GBGB) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [31]: 'pBEE' (14-bit Bayer BGBG/GRGR Packed) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [32]: 'BG14' (14-bit Bayer BGBG/GRGR) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [33]: 'pGEE' (14-bit Bayer GBGB/RGRG Packed) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [34]: 'GB14' (14-bit Bayer GBGB/RGRG) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [35]: 'pgEE' (14-bit Bayer GRGR/BGBG Packed) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [36]: 'GR14' (14-bit Bayer GRGR/BGBG) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [37]: 'pREE' (14-bit Bayer RGRG/GBGB Packed) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [38]: 'RG14' (14-bit Bayer RGRG/GBGB) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [39]: 'GREY' (8-bit Greyscale) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [40]: 'Y10P' (10-bit Greyscale (MIPI Packed)) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [41]: 'Y10 ' (10-bit Greyscale) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [42]: 'Y12P' (12-bit Greyscale (MIPI Packed)) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [43]: 'Y12 ' (12-bit Greyscale) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [44]: 'Y14P' (14-bit Greyscale (MIPI Packed)) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | [45]: 'Y14 ' (14-bit Greyscale) /dev/video0 | Size: Stepwise 16x16 - 16376x16376 with step 1/1 /dev/video0 | Supported Video Fields: /dev/video0 | None /dev/video0 | Top /dev/video0 | Bottom /dev/video0 | Interlaced /dev/video0 | Sequential Top-Bottom /dev/video0 | Sequential Bottom-Top /dev/video0 | Alternating /dev/video0 | Interlaced Top-Bottom /dev/video0 | Interlaced Bottom-Top /dev/video0 | ioctl: VIDIOC_ENUM_FMT /dev/video0 | Type: Video Output /dev/video0 |

====================================
DEVICE: /dev/video1

  • v4l2-ctl -d /dev/video1 --info --list-formats-ext --list-fields --list-formats-out --list-fields-out
    /dev/video1 | Driver Info:
    /dev/video1 | Driver name : unicam
    /dev/video1 | Card type : unicam
    /dev/video1 | Bus info : platform:fe801000.csi
    /dev/video1 | Driver version : 6.1.21
    /dev/video1 | Capabilities : 0xa5a00001
    /dev/video1 | Video Capture
    /dev/video1 | Metadata Capture
    /dev/video1 | Read/Write
    /dev/video1 | Streaming
    /dev/video1 | Extended Pix Format
    /dev/video1 | Device Capabilities
    /dev/video1 | Device Caps : 0x25a00000
    /dev/video1 | Metadata Capture
    /dev/video1 | Read/Write
    /dev/video1 | Streaming
    /dev/video1 | Extended Pix Format
    /dev/video1 | Media Driver Info:
    /dev/video1 | Driver name : unicam
    /dev/video1 | Model : unicam
    /dev/video1 | Serial :
    /dev/video1 | Bus info : platform:fe801000.csi
    /dev/video1 | Media version : 6.1.21
    /dev/video1 | Hardware revision: 0x00000000 (0)
    /dev/video1 | Driver version : 6.1.21
    /dev/video1 | Interface Info:
    /dev/video1 | ID : 0x0300000c
    /dev/video1 | Type : V4L Video
    /dev/video1 | Entity Info:
    /dev/video1 | ID : 0x0000000a (10)
    /dev/video1 | Name : unicam-embedded
    /dev/video1 | Function : V4L2 I/O
    /dev/video1 | Pad 0x0100000b : 0: Sink
    /dev/video1 | Link 0x0200000e: from remote pad 0x1000003 of entity 'imx219 10-0010': Data, Enabled, Immutable
    /dev/video1 | ioctl: VIDIOC_ENUM_FMT
    /dev/video1 | Type: Video Capture
    /dev/video1 |
    /dev/video1 | ioctl: VIDIOC_ENUM_FMT
    /dev/video1 | Type: Video Output
    /dev/video1 |

====================================
DEVICE: /dev/video10

  • v4l2-ctl -d /dev/video10 --info --list-formats-ext --list-fields --list-formats-out --list-fields-out
    /dev/video10 | Driver Info:
    /dev/video10 | Driver name : bcm2835-codec
    /dev/video10 | Card type : bcm2835-codec-decode
    /dev/video10 | Bus info : platform:bcm2835-codec
    /dev/video10 | Driver version : 6.1.21
    /dev/video10 | Capabilities : 0x84204000
    /dev/video10 | Video Memory-to-Memory Multiplanar
    /dev/video10 | Streaming
    /dev/video10 | Extended Pix Format
    /dev/video10 | Device Capabilities
    /dev/video10 | Device Caps : 0x04204000
    /dev/video10 | Video Memory-to-Memory Multiplanar
    /dev/video10 | Streaming
    /dev/video10 | Extended Pix Format
    /dev/video10 | Media Driver Info:
    /dev/video10 | Driver name : bcm2835-codec
    /dev/video10 | Model : bcm2835-codec
    /dev/video10 | Serial : 0000
    /dev/video10 | Bus info : platform:bcm2835-codec
    /dev/video10 | Media version : 6.1.21
    /dev/video10 | Hardware revision: 0x00000001 (1)
    /dev/video10 | Driver version : 6.1.21
    /dev/video10 | Interface Info:
    /dev/video10 | ID : 0x0300000c
    /dev/video10 | Type : V4L Video
    /dev/video10 | Entity Info:
    /dev/video10 | ID : 0x00000001 (1)
    /dev/video10 | Name : bcm2835-codec-decode-source
    /dev/video10 | Function : V4L2 I/O
    /dev/video10 | Pad 0x01000002 : 0: Source
    /dev/video10 | Link 0x02000008: to remote pad 0x1000004 of entity 'bcm2835-codec-decode-proc': Data, Enabled, Immutable
    /dev/video10 | ioctl: VIDIOC_ENUM_FMT
    /dev/video10 | Type: Video Capture Multiplanar
    /dev/video10 |
    /dev/video10 | [0]: 'YU12' (Planar YUV 4:2:0)
    /dev/video10 | Size: Stepwise 32x32 - 1920x1920 with step 2/2
    /dev/video10 | [1]: 'YV12' (Planar YVU 4:2:0)
    /dev/video10 | Size: Stepwise 32x32 - 1920x1920 with step 2/2
    /dev/video10 | [2]: 'NV12' (Y/UV 4:2:0)
    /dev/video10 | Size: Stepwise 32x32 - 1920x1920 with step 2/2
    /dev/video10 | [3]: 'NV21' (Y/VU 4:2:0)
    /dev/video10 | Size: Stepwise 32x32 - 1920x1920 with step 2/2
    /dev/video10 | [4]: 'NC12' (Y/CbCr 4:2:0 (128b cols))
    /dev/video10 | Size: Stepwise 32x32 - 1920x1920 with step 2/2
    /dev/video10 | [5]: 'RGBP' (16-bit RGB 5-6-5)
    /dev/video10 | Size: Stepwise 32x32 - 1920x1920 with step 2/2
    /dev/video10 | Supported Video Fields:
    /dev/video10 | None
    /dev/video10 | Interlaced
    /dev/video10 | Interlaced Top-Bottom
    /dev/video10 | Interlaced Bottom-Top
    /dev/video10 | ioctl: VIDIOC_ENUM_FMT
    /dev/video10 | Type: Video Output Multiplanar
    /dev/video10 |
    /dev/video10 | [0]: 'H264' (H.264, compressed)
    /dev/video10 | [1]: 'MJPG' (Motion-JPEG, compressed)
    /dev/video10 | Supported Video Output Fields:
    /dev/video10 | None
    /dev/video10 | Interlaced
    /dev/video10 | Interlaced Top-Bottom
    /dev/video10 | Interlaced Bottom-Top

====================================
DEVICE: /dev/video11

  • v4l2-ctl -d /dev/video11 --info --list-formats-ext --list-fields --list-formats-out --list-fields-out
    /dev/video11 | Driver Info:
    /dev/video11 | Driver name : bcm2835-codec
    /dev/video11 | Card type : bcm2835-codec-encode
    /dev/video11 | Bus info : platform:bcm2835-codec
    /dev/video11 | Driver version : 6.1.21
    /dev/video11 | Capabilities : 0x84204000
    /dev/video11 | Video Memory-to-Memory Multiplanar
    /dev/video11 | Streaming
    /dev/video11 | Extended Pix Format
    /dev/video11 | Device Capabilities
    /dev/video11 | Device Caps : 0x04204000
    /dev/video11 | Video Memory-to-Memory Multiplanar
    /dev/video11 | Streaming
    /dev/video11 | Extended Pix Format
    /dev/video11 | Media Driver Info:
    /dev/video11 | Driver name : bcm2835-codec
    /dev/video11 | Model : bcm2835-codec
    /dev/video11 | Serial : 0000
    /dev/video11 | Bus info : platform:bcm2835-codec
    /dev/video11 | Media version : 6.1.21
    /dev/video11 | Hardware revision: 0x00000001 (1)
    /dev/video11 | Driver version : 6.1.21
    /dev/video11 | Interface Info:
    /dev/video11 | ID : 0x0300001a
    /dev/video11 | Type : V4L Video
    /dev/video11 | Entity Info:
    /dev/video11 | ID : 0x0000000f (15)
    /dev/video11 | Name : bcm2835-codec-encode-source
    /dev/video11 | Function : V4L2 I/O
    /dev/video11 | Pad 0x01000010 : 0: Source
    /dev/video11 | Link 0x02000016: to remote pad 0x1000012 of entity 'bcm2835-codec-encode-proc': Data, Enabled, Immutable
    /dev/video11 | ioctl: VIDIOC_ENUM_FMT
    /dev/video11 | Type: Video Capture Multiplanar
    /dev/video11 |
    /dev/video11 | [0]: 'H264' (H.264, compressed)
    /dev/video11 | Size: Stepwise 32x32 - 1920x1920 with step 2/2
    /dev/video11 | [1]: 'MJPG' (Motion-JPEG, compressed)
    /dev/video11 | Size: Stepwise 32x32 - 1920x1920 with step 2/2
    /dev/video11 | Supported Video Fields:
    /dev/video11 | None
    /dev/video11 | ioctl: VIDIOC_ENUM_FMT
    /dev/video11 | Type: Video Output Multiplanar
    /dev/video11 |
    /dev/video11 | [0]: 'YU12' (Planar YUV 4:2:0)
    /dev/video11 | [1]: 'YV12' (Planar YVU 4:2:0)
    /dev/video11 | [2]: 'NV12' (Y/UV 4:2:0)
    /dev/video11 | [3]: 'NV21' (Y/VU 4:2:0)
    /dev/video11 | [4]: 'RGBP' (16-bit RGB 5-6-5)
    /dev/video11 | [5]: 'RGB3' (24-bit RGB 8-8-8)
    /dev/video11 | [6]: 'BGR3' (24-bit BGR 8-8-8)
    /dev/video11 | [7]: 'AB24' (32-bit RGBA 8-8-8-8)
    /dev/video11 | [8]: 'BGR4' (32-bit BGRA/X 8-8-8-8)
    /dev/video11 | [9]: 'YUYV' (YUYV 4:2:2)
    /dev/video11 | [10]: 'YVYU' (YVYU 4:2:2)
    /dev/video11 | [11]: 'UYVY' (UYVY 4:2:2)
    /dev/video11 | [12]: 'VYUY' (VYUY 4:2:2)
    /dev/video11 | [13]: 'NC12' (Y/CbCr 4:2:0 (128b cols))
    /dev/video11 | Supported Video Output Fields:
    /dev/video11 | None

====================================
DEVICE: /dev/video12

  • v4l2-ctl -d /dev/video12 --info --list-formats-ext --list-fields --list-formats-out --list-fields-out
    /dev/video12 | Driver Info:
    /dev/video12 | Driver name : bcm2835-codec
    /dev/video12 | Card type : bcm2835-codec-isp
    /dev/video12 | Bus info : platform:bcm2835-codec
    /dev/video12 | Driver version : 6.1.21
    /dev/video12 | Capabilities : 0x84204000
    /dev/video12 | Video Memory-to-Memory Multiplanar
    /dev/video12 | Streaming
    /dev/video12 | Extended Pix Format
    /dev/video12 | Device Capabilities
    /dev/video12 | Device Caps : 0x04204000
    /dev/video12 | Video Memory-to-Memory Multiplanar
    /dev/video12 | Streaming
    /dev/video12 | Extended Pix Format
    /dev/video12 | Media Driver Info:
    /dev/video12 | Driver name : bcm2835-codec
    /dev/video12 | Model : bcm2835-codec
    /dev/video12 | Serial : 0000
    /dev/video12 | Bus info : platform:bcm2835-codec
    /dev/video12 | Media version : 6.1.21
    /dev/video12 | Hardware revision: 0x00000001 (1)
    /dev/video12 | Driver version : 6.1.21
    /dev/video12 | Interface Info:
    /dev/video12 | ID : 0x03000028
    /dev/video12 | Type : V4L Video
    /dev/video12 | Entity Info:
    /dev/video12 | ID : 0x0000001d (29)
    /dev/video12 | Name : bcm2835-codec-isp-source
    /dev/video12 | Function : V4L2 I/O
    /dev/video12 | Pad 0x0100001e : 0: Source
    /dev/video12 | Link 0x02000024: to remote pad 0x1000020 of entity 'bcm2835-codec-isp-proc': Data, Enabled, Immutable
    /dev/video12 | ioctl: VIDIOC_ENUM_FMT
    /dev/video12 | Type: Video Capture Multiplanar
    /dev/video12 |
    /dev/video12 | [0]: 'YUYV' (YUYV 4:2:2)
    /dev/video12 | Size: Stepwise 32x32 - 16384x16384 with step 2/2
    /dev/video12 | [1]: 'YVYU' (YVYU 4:2:2)
    /dev/video12 | Size: Stepwise 32x32 - 16384x16384 with step 2/2
    /dev/video12 | [2]: 'VYUY' (VYUY 4:2:2)
    /dev/video12 | Size: Stepwise 32x32 - 16384x16384 with step 2/2
    /dev/video12 | [3]: 'UYVY' (UYVY 4:2:2)
    /dev/video12 | Size: Stepwise 32x32 - 16384x16384 with step 2/2
    /dev/video12 | [4]: 'YU12' (Planar YUV 4:2:0)
    /dev/video12 | Size: Stepwise 32x32 - 16384x16384 with step 2/2
    /dev/video12 | [5]: 'YV12' (Planar YVU 4:2:0)
    /dev/video12 | Size: Stepwise 32x32 - 16384x16384 with step 2/2
    /dev/video12 | [6]: 'RGB3' (24-bit RGB 8-8-8)
    /dev/video12 | Size: Stepwise 32x32 - 16384x16384 with step 2/2
    /dev/video12 | [7]: 'BGR3' (24-bit BGR 8-8-8)
    /dev/video12 | Size: Stepwise 32x32 - 16384x16384 with step 2/2
    /dev/video12 | [8]: 'AB24' (32-bit RGBA 8-8-8-8)
    /dev/video12 | Size: Stepwise 32x32 - 16384x16384 with step 2/2
    /dev/video12 | [9]: 'BGR4' (32-bit BGRA/X 8-8-8-8)
    /dev/video12 | Size: Stepwise 32x32 - 16384x16384 with step 2/2
    /dev/video12 | [10]: 'RGBP' (16-bit RGB 5-6-5)
    /dev/video12 | Size: Stepwise 32x32 - 16384x16384 with step 2/2
    /dev/video12 | [11]: 'NC12' (Y/CbCr 4:2:0 (128b cols))
    /dev/video12 | Size: Stepwise 32x32 - 16384x16384 with step 2/2
    /dev/video12 | [12]: 'NV12' (Y/UV 4:2:0)
    /dev/video12 | Size: Stepwise 32x32 - 16384x16384 with step 2/2
    /dev/video12 | [13]: 'NV21' (Y/VU 4:2:0)
    /dev/video12 | Size: Stepwise 32x32 - 16384x16384 with step 2/2
    /dev/video12 | Supported Video Fields:
    /dev/video12 | None
    /dev/video12 | ioctl: VIDIOC_ENUM_FMT
    /dev/video12 | Type: Video Output Multiplanar
    /dev/video12 |
    /dev/video12 | [0]: 'BA81' (8-bit Bayer BGBG/GRGR)
    /dev/video12 | [1]: 'RGGB' (8-bit Bayer RGRG/GBGB)
    /dev/video12 | [2]: 'GBRG' (8-bit Bayer GBGB/RGRG)
    /dev/video12 | [3]: 'GRBG' (8-bit Bayer GRGR/BGBG)
    /dev/video12 | [4]: 'pBAA' (10-bit Bayer BGBG/GRGR Packed)
    /dev/video12 | [5]: 'pRAA' (10-bit Bayer RGRG/GBGB Packed)
    /dev/video12 | [6]: 'pGAA' (10-bit Bayer GBGB/RGRG Packed)
    /dev/video12 | [7]: 'pgAA' (10-bit Bayer GRGR/BGBG Packed)
    /dev/video12 | [8]: 'pBCC' (12-bit Bayer BGBG/GRGR Packed)
    /dev/video12 | [9]: 'pRCC' (12-bit Bayer RGRG/GBGB Packed)
    /dev/video12 | [10]: 'pGCC' (12-bit Bayer GBGB/RGRG Packed)
    /dev/video12 | [11]: 'pgCC' (12-bit Bayer GRGR/BGBG Packed)
    /dev/video12 | [12]: 'pBEE' (14-bit Bayer BGBG/GRGR Packed)
    /dev/video12 | [13]: 'pREE' (14-bit Bayer RGRG/GBGB Packed)
    /dev/video12 | [14]: 'pGEE' (14-bit Bayer GBGB/RGRG Packed)
    /dev/video12 | [15]: 'pgEE' (14-bit Bayer GRGR/BGBG Packed)
    /dev/video12 | [16]: 'BYR2' (16-bit Bayer BGBG/GRGR)
    /dev/video12 | [17]: 'RG16' (16-bit Bayer RGRG/GBGB)
    /dev/video12 | [18]: 'GB16' (16-bit Bayer GBGB/RGRG)
    /dev/video12 | [19]: 'GR16' (16-bit Bayer GRGR/BGBG)
    /dev/video12 | [20]: 'GREY' (8-bit Greyscale)
    /dev/video12 | [21]: 'Y10P' (10-bit Greyscale (MIPI Packed))
    /dev/video12 | [22]: 'Y12P' (12-bit Greyscale (MIPI Packed))
    /dev/video12 | [23]: 'Y14P' (14-bit Greyscale (MIPI Packed))
    /dev/video12 | [24]: 'Y16 ' (16-bit Greyscale)
    /dev/video12 | [25]: 'YUYV' (YUYV 4:2:2)
    /dev/video12 | [26]: 'YVYU' (YVYU 4:2:2)
    /dev/video12 | [27]: 'VYUY' (VYUY 4:2:2)
    /dev/video12 | [28]: 'UYVY' (UYVY 4:2:2)
    /dev/video12 | [29]: 'YU12' (Planar YUV 4:2:0)
    /dev/video12 | [30]: 'YV12' (Planar YVU 4:2:0)
    /dev/video12 | [31]: 'RGB3' (24-bit RGB 8-8-8)
    /dev/video12 | [32]: 'BGR3' (24-bit BGR 8-8-8)
    /dev/video12 | [33]: 'AB24' (32-bit RGBA 8-8-8-8)
    /dev/video12 | [34]: 'BGR4' (32-bit BGRA/X 8-8-8-8)
    /dev/video12 | [35]: 'RGBP' (16-bit RGB 5-6-5)
    /dev/video12 | [36]: 'NC12' (Y/CbCr 4:2:0 (128b cols))
    /dev/video12 | [37]: 'NV12' (Y/UV 4:2:0)
    /dev/video12 | [38]: 'NV21' (Y/VU 4:2:0)
    /dev/video12 | [39]: 'BG10' (10-bit Bayer BGBG/GRGR)
    /dev/video12 | [40]: 'RG10' (10-bit Bayer RGRG/GBGB)
    /dev/video12 | [41]: 'GB10' (10-bit Bayer GBGB/RGRG)
    /dev/video12 | [42]: 'BA10' (10-bit Bayer GRGR/BGBG)
    /dev/video12 | [43]: 'BG12' (12-bit Bayer BGBG/GRGR)
    /dev/video12 | [44]: 'RG12' (12-bit Bayer RGRG/GBGB)
    /dev/video12 | [45]: 'GB12' (12-bit Bayer GBGB/RGRG)
    /dev/video12 | [46]: 'BA12' (12-bit Bayer GRGR/BGBG)
    /dev/video12 | [47]: 'BG14' (14-bit Bayer BGBG/GRGR)
    /dev/video12 | [48]: 'RG14' (14-bit Bayer RGRG/GBGB)
    /dev/video12 | [49]: 'GB14' (14-bit Bayer GBGB/RGRG)
    /dev/video12 | [50]: 'GR14' (14-bit Bayer GRGR/BGBG)
    /dev/video12 | [51]: 'Y10 ' (10-bit Greyscale)
    /dev/video12 | [52]: 'Y12 ' (12-bit Greyscale)
    /dev/video12 | [53]: 'Y14 ' (14-bit Greyscale)
    /dev/video12 | Supported Video Output Fields:
    /dev/video12 | None

====================================
DEVICE: /dev/video13

  • v4l2-ctl -d /dev/video13 --info --list-formats-ext --list-fields --list-formats-out --list-fields-out
    FAIL: could not find device 81:1 in topology
    /dev/video13 | Driver Info:
    /dev/video13 | Driver name : bcm2835-isp
    /dev/video13 | Card type : bcm2835-isp
    /dev/video13 | Bus info : platform:bcm2835-isp
    /dev/video13 | Driver version : 6.1.21
    /dev/video13 | Capabilities : 0x84200002
    /dev/video13 | Video Output
    /dev/video13 | Streaming
    /dev/video13 | Extended Pix Format
    /dev/video13 | Device Capabilities
    /dev/video13 | Device Caps : 0x04200002
    /dev/video13 | Video Output
    /dev/video13 | Streaming
    /dev/video13 | Extended Pix Format
    /dev/video13 | Media Driver Info:
    /dev/video13 | Driver name : bcm2835-isp
    /dev/video13 | Model : bcm2835-isp
    /dev/video13 | Serial :
    /dev/video13 | Bus info : platform:bcm2835-isp
    /dev/video13 | Media version : 6.1.21
    /dev/video13 | Hardware revision: 0x00000000 (0)
    /dev/video13 | Driver version : 6.1.21
    /dev/video13 | ioctl: VIDIOC_ENUM_FMT
    /dev/video13 | Type: Video Capture
    /dev/video13 |
    /dev/video13 | ioctl: VIDIOC_ENUM_FMT
    /dev/video13 | Type: Video Output
    /dev/video13 |
    /dev/video13 | [0]: 'BA81' (8-bit Bayer BGBG/GRGR)
    /dev/video13 | [1]: 'RGGB' (8-bit Bayer RGRG/GBGB)
    /dev/video13 | [2]: 'GBRG' (8-bit Bayer GBGB/RGRG)
    /dev/video13 | [3]: 'GRBG' (8-bit Bayer GRGR/BGBG)
    /dev/video13 | [4]: 'pBAA' (10-bit Bayer BGBG/GRGR Packed)
    /dev/video13 | [5]: 'pRAA' (10-bit Bayer RGRG/GBGB Packed)
    /dev/video13 | [6]: 'pGAA' (10-bit Bayer GBGB/RGRG Packed)
    /dev/video13 | [7]: 'pgAA' (10-bit Bayer GRGR/BGBG Packed)
    /dev/video13 | [8]: 'pBCC' (12-bit Bayer BGBG/GRGR Packed)
    /dev/video13 | [9]: 'pRCC' (12-bit Bayer RGRG/GBGB Packed)
    /dev/video13 | [10]: 'pGCC' (12-bit Bayer GBGB/RGRG Packed)
    /dev/video13 | [11]: 'pgCC' (12-bit Bayer GRGR/BGBG Packed)
    /dev/video13 | [12]: 'pBEE' (14-bit Bayer BGBG/GRGR Packed)
    /dev/video13 | [13]: 'pREE' (14-bit Bayer RGRG/GBGB Packed)
    /dev/video13 | [14]: 'pGEE' (14-bit Bayer GBGB/RGRG Packed)
    /dev/video13 | [15]: 'pgEE' (14-bit Bayer GRGR/BGBG Packed)
    /dev/video13 | [16]: 'BYR2' (16-bit Bayer BGBG/GRGR)
    /dev/video13 | [17]: 'RG16' (16-bit Bayer RGRG/GBGB)
    /dev/video13 | [18]: 'GB16' (16-bit Bayer GBGB/RGRG)
    /dev/video13 | [19]: 'GR16' (16-bit Bayer GRGR/BGBG)
    /dev/video13 | [20]: 'GREY' (8-bit Greyscale)
    /dev/video13 | [21]: 'Y10P' (10-bit Greyscale (MIPI Packed))
    /dev/video13 | [22]: 'Y12P' (12-bit Greyscale (MIPI Packed))
    /dev/video13 | [23]: 'Y14P' (14-bit Greyscale (MIPI Packed))
    /dev/video13 | [24]: 'Y16 ' (16-bit Greyscale)
    /dev/video13 | [25]: 'YUYV' (YUYV 4:2:2)
    /dev/video13 | [26]: 'YVYU' (YVYU 4:2:2)
    /dev/video13 | [27]: 'VYUY' (VYUY 4:2:2)
    /dev/video13 | [28]: 'UYVY' (UYVY 4:2:2)
    /dev/video13 | [29]: 'YU12' (Planar YUV 4:2:0)
    /dev/video13 | [30]: 'YV12' (Planar YVU 4:2:0)
    /dev/video13 | [31]: 'RGB3' (24-bit RGB 8-8-8)
    /dev/video13 | [32]: 'BGR3' (24-bit BGR 8-8-8)
    /dev/video13 | [33]: 'XB24' (32-bit RGBX 8-8-8-8)
    /dev/video13 | [34]: 'XR24' (32-bit BGRX 8-8-8-8)
    /dev/video13 | [35]: 'RGBP' (16-bit RGB 5-6-5)
    /dev/video13 | [36]: 'NV12' (Y/UV 4:2:0)
    /dev/video13 | [37]: 'NV21' (Y/VU 4:2:0)
    /dev/video13 | [38]: 'BG10' (10-bit Bayer BGBG/GRGR)
    /dev/video13 | [39]: 'RG10' (10-bit Bayer RGRG/GBGB)
    /dev/video13 | [40]: 'GB10' (10-bit Bayer GBGB/RGRG)
    /dev/video13 | [41]: 'BA10' (10-bit Bayer GRGR/BGBG)
    /dev/video13 | [42]: 'BG12' (12-bit Bayer BGBG/GRGR)
    /dev/video13 | [43]: 'RG12' (12-bit Bayer RGRG/GBGB)
    /dev/video13 | [44]: 'GB12' (12-bit Bayer GBGB/RGRG)
    /dev/video13 | [45]: 'BA12' (12-bit Bayer GRGR/BGBG)
    /dev/video13 | [46]: 'BG14' (14-bit Bayer BGBG/GRGR)
    /dev/video13 | [47]: 'RG14' (14-bit Bayer RGRG/GBGB)
    /dev/video13 | [48]: 'GB14' (14-bit Bayer GBGB/RGRG)
    /dev/video13 | [49]: 'GR14' (14-bit Bayer GRGR/BGBG)
    /dev/video13 | [50]: 'Y10 ' (10-bit Greyscale)
    /dev/video13 | [51]: 'Y12 ' (12-bit Greyscale)
    /dev/video13 | [52]: 'Y14 ' (14-bit Greyscale)
    /dev/video13 | Supported Video Output Fields:
    /dev/video13 | None

====================================
DEVICE: /dev/video14

  • v4l2-ctl -d /dev/video14 --info --list-formats-ext --list-fields --list-formats-out --list-fields-out
    FAIL: could not find device 81:2 in topology
    /dev/video14 | Driver Info:
    /dev/video14 | Driver name : bcm2835-isp
    /dev/video14 | Card type : bcm2835-isp
    /dev/video14 | Bus info : platform:bcm2835-isp
    /dev/video14 | Driver version : 6.1.21
    /dev/video14 | Capabilities : 0x84200001
    /dev/video14 | Video Capture
    /dev/video14 | Streaming
    /dev/video14 | Extended Pix Format
    /dev/video14 | Device Capabilities
    /dev/video14 | Device Caps : 0x04200001
    /dev/video14 | Video Capture
    /dev/video14 | Streaming
    /dev/video14 | Extended Pix Format
    /dev/video14 | Media Driver Info:
    /dev/video14 | Driver name : bcm2835-isp
    /dev/video14 | Model : bcm2835-isp
    /dev/video14 | Serial :
    /dev/video14 | Bus info : platform:bcm2835-isp
    /dev/video14 | Media version : 6.1.21
    /dev/video14 | Hardware revision: 0x00000000 (0)
    /dev/video14 | Driver version : 6.1.21
    /dev/video14 | ioctl: VIDIOC_ENUM_FMT
    /dev/video14 | Type: Video Capture
    /dev/video14 |
    /dev/video14 | [0]: 'YUYV' (YUYV 4:2:2)
    /dev/video14 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video14 | [1]: 'YVYU' (YVYU 4:2:2)
    /dev/video14 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video14 | [2]: 'VYUY' (VYUY 4:2:2)
    /dev/video14 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video14 | [3]: 'UYVY' (UYVY 4:2:2)
    /dev/video14 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video14 | [4]: 'YU12' (Planar YUV 4:2:0)
    /dev/video14 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video14 | [5]: 'YV12' (Planar YVU 4:2:0)
    /dev/video14 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video14 | [6]: 'RGB3' (24-bit RGB 8-8-8)
    /dev/video14 | Size: Stepwise 64x64 - 16384x16384 with step 1/1
    /dev/video14 | [7]: 'BGR3' (24-bit BGR 8-8-8)
    /dev/video14 | Size: Stepwise 64x64 - 16384x16384 with step 1/1
    /dev/video14 | [8]: 'XB24' (32-bit RGBX 8-8-8-8)
    /dev/video14 | Size: Stepwise 64x64 - 16384x16384 with step 1/1
    /dev/video14 | [9]: 'XR24' (32-bit BGRX 8-8-8-8)
    /dev/video14 | Size: Stepwise 64x64 - 16384x16384 with step 1/1
    /dev/video14 | [10]: 'RGBP' (16-bit RGB 5-6-5)
    /dev/video14 | Size: Stepwise 64x64 - 16384x16384 with step 1/1
    /dev/video14 | [11]: 'NV12' (Y/UV 4:2:0)
    /dev/video14 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video14 | [12]: 'NV21' (Y/VU 4:2:0)
    /dev/video14 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video14 | Supported Video Fields:
    /dev/video14 | None
    /dev/video14 | ioctl: VIDIOC_ENUM_FMT
    /dev/video14 | Type: Video Output
    /dev/video14 |

====================================
DEVICE: /dev/video15

  • v4l2-ctl -d /dev/video15 --info --list-formats-ext --list-fields --list-formats-out --list-fields-out
    FAIL: could not find device 81:4 in topology
    /dev/video15 | Driver Info:
    /dev/video15 | Driver name : bcm2835-isp
    /dev/video15 | Card type : bcm2835-isp
    /dev/video15 | Bus info : platform:bcm2835-isp
    /dev/video15 | Driver version : 6.1.21
    /dev/video15 | Capabilities : 0x84200001
    /dev/video15 | Video Capture
    /dev/video15 | Streaming
    /dev/video15 | Extended Pix Format
    /dev/video15 | Device Capabilities
    /dev/video15 | Device Caps : 0x04200001
    /dev/video15 | Video Capture
    /dev/video15 | Streaming
    /dev/video15 | Extended Pix Format
    /dev/video15 | Media Driver Info:
    /dev/video15 | Driver name : bcm2835-isp
    /dev/video15 | Model : bcm2835-isp
    /dev/video15 | Serial :
    /dev/video15 | Bus info : platform:bcm2835-isp
    /dev/video15 | Media version : 6.1.21
    /dev/video15 | Hardware revision: 0x00000000 (0)
    /dev/video15 | Driver version : 6.1.21
    /dev/video15 | ioctl: VIDIOC_ENUM_FMT
    /dev/video15 | Type: Video Capture
    /dev/video15 |
    /dev/video15 | [0]: 'YUYV' (YUYV 4:2:2)
    /dev/video15 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video15 | [1]: 'YVYU' (YVYU 4:2:2)
    /dev/video15 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video15 | [2]: 'VYUY' (VYUY 4:2:2)
    /dev/video15 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video15 | [3]: 'UYVY' (UYVY 4:2:2)
    /dev/video15 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video15 | [4]: 'YU12' (Planar YUV 4:2:0)
    /dev/video15 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video15 | [5]: 'YV12' (Planar YVU 4:2:0)
    /dev/video15 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video15 | [6]: 'NV12' (Y/UV 4:2:0)
    /dev/video15 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video15 | [7]: 'NV21' (Y/VU 4:2:0)
    /dev/video15 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video15 | Supported Video Fields:
    /dev/video15 | None
    /dev/video15 | ioctl: VIDIOC_ENUM_FMT
    /dev/video15 | Type: Video Output
    /dev/video15 |

====================================
DEVICE: /dev/video16

  • v4l2-ctl -d /dev/video16 --info --list-formats-ext --list-fields --list-formats-out --list-fields-out
    FAIL: could not find device 81:5 in topology
    /dev/video16 | Driver Info:
    /dev/video16 | Driver name : bcm2835-isp
    /dev/video16 | Card type : bcm2835-isp
    /dev/video16 | Bus info : platform:bcm2835-isp
    /dev/video16 | Driver version : 6.1.21
    /dev/video16 | Capabilities : 0x84a00000
    /dev/video16 | Metadata Capture
    /dev/video16 | Streaming
    /dev/video16 | Extended Pix Format
    /dev/video16 | Device Capabilities
    /dev/video16 | Device Caps : 0x04a00000
    /dev/video16 | Metadata Capture
    /dev/video16 | Streaming
    /dev/video16 | Extended Pix Format
    /dev/video16 | Media Driver Info:
    /dev/video16 | Driver name : bcm2835-isp
    /dev/video16 | Model : bcm2835-isp
    /dev/video16 | Serial :
    /dev/video16 | Bus info : platform:bcm2835-isp
    /dev/video16 | Media version : 6.1.21
    /dev/video16 | Hardware revision: 0x00000000 (0)
    /dev/video16 | Driver version : 6.1.21
    /dev/video16 | ioctl: VIDIOC_ENUM_FMT
    /dev/video16 | Type: Video Capture
    /dev/video16 |
    /dev/video16 | ioctl: VIDIOC_ENUM_FMT
    /dev/video16 | Type: Video Output
    /dev/video16 |

====================================
DEVICE: /dev/video18

  • v4l2-ctl -d /dev/video18 --info --list-formats-ext --list-fields --list-formats-out --list-fields-out
    /dev/video18 | Driver Info:
    /dev/video18 | Driver name : bcm2835-codec
    /dev/video18 | Card type : bcm2835-codec-image_fx
    /dev/video18 | Bus info : platform:bcm2835-codec
    /dev/video18 | Driver version : 6.1.21
    /dev/video18 | Capabilities : 0x84204000
    /dev/video18 | Video Memory-to-Memory Multiplanar
    /dev/video18 | Streaming
    /dev/video18 | Extended Pix Format
    /dev/video18 | Device Capabilities
    /dev/video18 | Device Caps : 0x04204000
    /dev/video18 | Video Memory-to-Memory Multiplanar
    /dev/video18 | Streaming
    /dev/video18 | Extended Pix Format
    /dev/video18 | Media Driver Info:
    /dev/video18 | Driver name : bcm2835-codec
    /dev/video18 | Model : bcm2835-codec
    /dev/video18 | Serial : 0000
    /dev/video18 | Bus info : platform:bcm2835-codec
    /dev/video18 | Media version : 6.1.21
    /dev/video18 | Hardware revision: 0x00000001 (1)
    /dev/video18 | Driver version : 6.1.21
    /dev/video18 | Interface Info:
    /dev/video18 | ID : 0x03000036
    /dev/video18 | Type : V4L Video
    /dev/video18 | Entity Info:
    /dev/video18 | ID : 0x0000002b (43)
    /dev/video18 | Name : bcm2835-codec-image_fx-source
    /dev/video18 | Function : V4L2 I/O
    /dev/video18 | Pad 0x0100002c : 0: Source
    /dev/video18 | Link 0x02000032: to remote pad 0x100002e of entity 'bcm2835-codec-image_fx-proc': Data, Enabled, Immutable
    /dev/video18 | ioctl: VIDIOC_ENUM_FMT
    /dev/video18 | Type: Video Capture Multiplanar
    /dev/video18 |
    /dev/video18 | [0]: 'YU12' (Planar YUV 4:2:0)
    /dev/video18 | Size: Stepwise 32x32 - 1920x1920 with step 2/2
    /dev/video18 | [1]: 'NC12' (Y/CbCr 4:2:0 (128b cols))
    /dev/video18 | Size: Stepwise 32x32 - 1920x1920 with step 2/2
    /dev/video18 | [2]: 'AB24' (32-bit RGBA 8-8-8-8)
    /dev/video18 | Size: Stepwise 32x32 - 1920x1920 with step 2/2
    /dev/video18 | [3]: 'RGBP' (16-bit RGB 5-6-5)
    /dev/video18 | Size: Stepwise 32x32 - 1920x1920 with step 2/2
    /dev/video18 | Supported Video Fields:
    /dev/video18 | None
    /dev/video18 | Interlaced
    /dev/video18 | Interlaced Top-Bottom
    /dev/video18 | Interlaced Bottom-Top
    /dev/video18 | ioctl: VIDIOC_ENUM_FMT
    /dev/video18 | Type: Video Output Multiplanar
    /dev/video18 |
    /dev/video18 | [0]: 'YU12' (Planar YUV 4:2:0)
    /dev/video18 | [1]: 'NC12' (Y/CbCr 4:2:0 (128b cols))
    /dev/video18 | [2]: 'AB24' (32-bit RGBA 8-8-8-8)
    /dev/video18 | [3]: 'RGBP' (16-bit RGB 5-6-5)
    /dev/video18 | Supported Video Output Fields:
    /dev/video18 | None
    /dev/video18 | Interlaced
    /dev/video18 | Interlaced Top-Bottom
    /dev/video18 | Interlaced Bottom-Top

====================================
DEVICE: /dev/video19

  • v4l2-ctl -d /dev/video19 --info --list-formats-ext --list-fields --list-formats-out --list-fields-out
    /dev/video19 | Driver Info:
    /dev/video19 | Driver name : rpivid
    /dev/video19 | Card type : rpivid
    /dev/video19 | Bus info : platform:rpivid
    /dev/video19 | Driver version : 6.1.21
    /dev/video19 | Capabilities : 0x84204000
    /dev/video19 | Video Memory-to-Memory Multiplanar
    /dev/video19 | Streaming
    /dev/video19 | Extended Pix Format
    /dev/video19 | Device Capabilities
    /dev/video19 | Device Caps : 0x04204000
    /dev/video19 | Video Memory-to-Memory Multiplanar
    /dev/video19 | Streaming
    /dev/video19 | Extended Pix Format
    /dev/video19 | Media Driver Info:
    /dev/video19 | Driver name : rpivid
    /dev/video19 | Model : rpivid
    /dev/video19 | Serial :
    /dev/video19 | Bus info : platform:rpivid
    /dev/video19 | Media version : 6.1.21
    /dev/video19 | Hardware revision: 0x00000000 (0)
    /dev/video19 | Driver version : 6.1.21
    /dev/video19 | Interface Info:
    /dev/video19 | ID : 0x0300000c
    /dev/video19 | Type : V4L Video
    /dev/video19 | Entity Info:
    /dev/video19 | ID : 0x00000001 (1)
    /dev/video19 | Name : rpivid-source
    /dev/video19 | Function : V4L2 I/O
    /dev/video19 | Pad 0x01000002 : 0: Source
    /dev/video19 | Link 0x02000008: to remote pad 0x1000004 of entity 'rpivid-proc': Data, Enabled, Immutable
    /dev/video19 | ioctl: VIDIOC_ENUM_FMT
    /dev/video19 | Type: Video Capture Multiplanar
    /dev/video19 |
    /dev/video19 | [0]: 'NC12' (Y/CbCr 4:2:0 (128b cols))
    /dev/video19 | [1]: 'NC30' (10-bit Y/CbCr 4:2:0 (128b cols))
    /dev/video19 | Supported Video Fields:
    /dev/video19 | None
    /dev/video19 | ioctl: VIDIOC_ENUM_FMT
    /dev/video19 | Type: Video Output Multiplanar
    /dev/video19 |
    /dev/video19 | [0]: 'S265' (HEVC Parsed Slice Data, compressed)
    /dev/video19 | Supported Video Output Fields:
    /dev/video19 | None

====================================
DEVICE: /dev/video20

  • v4l2-ctl -d /dev/video20 --info --list-formats-ext --list-fields --list-formats-out --list-fields-out
    /dev/video20 | Driver Info:
    /dev/video20 | Driver name : bcm2835-isp
    /dev/video20 | Card type : bcm2835-isp
    /dev/video20 | Bus info : platform:bcm2835-isp
    /dev/video20 | Driver version : 6.1.21
    /dev/video20 | Capabilities : 0x84200002
    /dev/video20 | Video Output
    /dev/video20 | Streaming
    /dev/video20 | Extended Pix Format
    /dev/video20 | Device Capabilities
    /dev/video20 | Device Caps : 0x04200002
    /dev/video20 | Video Output
    /dev/video20 | Streaming
    /dev/video20 | Extended Pix Format
    /dev/video20 | Media Driver Info:
    /dev/video20 | Driver name : bcm2835-isp
    /dev/video20 | Model : bcm2835-isp
    /dev/video20 | Serial :
    /dev/video20 | Bus info : platform:bcm2835-isp
    /dev/video20 | Media version : 6.1.21
    /dev/video20 | Hardware revision: 0x00000000 (0)
    /dev/video20 | Driver version : 6.1.21
    /dev/video20 | Interface Info:
    /dev/video20 | ID : 0x03000008
    /dev/video20 | Type : V4L Video
    /dev/video20 | Entity Info:
    /dev/video20 | ID : 0x00000006 (6)
    /dev/video20 | Name : bcm2835-isp0-output0
    /dev/video20 | Function : V4L2 I/O
    /dev/video20 | Pad 0x01000007 : 0: Source
    /dev/video20 | Link 0x0200000a: to remote pad 0x1000002 of entity 'bcm2835_isp0': Data, Enabled, Immutable
    /dev/video20 | ioctl: VIDIOC_ENUM_FMT
    /dev/video20 | Type: Video Capture
    /dev/video20 |
    /dev/video20 | ioctl: VIDIOC_ENUM_FMT
    /dev/video20 | Type: Video Output
    /dev/video20 |
    /dev/video20 | [0]: 'BA81' (8-bit Bayer BGBG/GRGR)
    /dev/video20 | [1]: 'RGGB' (8-bit Bayer RGRG/GBGB)
    /dev/video20 | [2]: 'GBRG' (8-bit Bayer GBGB/RGRG)
    /dev/video20 | [3]: 'GRBG' (8-bit Bayer GRGR/BGBG)
    /dev/video20 | [4]: 'pBAA' (10-bit Bayer BGBG/GRGR Packed)
    /dev/video20 | [5]: 'pRAA' (10-bit Bayer RGRG/GBGB Packed)
    /dev/video20 | [6]: 'pGAA' (10-bit Bayer GBGB/RGRG Packed)
    /dev/video20 | [7]: 'pgAA' (10-bit Bayer GRGR/BGBG Packed)
    /dev/video20 | [8]: 'pBCC' (12-bit Bayer BGBG/GRGR Packed)
    /dev/video20 | [9]: 'pRCC' (12-bit Bayer RGRG/GBGB Packed)
    /dev/video20 | [10]: 'pGCC' (12-bit Bayer GBGB/RGRG Packed)
    /dev/video20 | [11]: 'pgCC' (12-bit Bayer GRGR/BGBG Packed)
    /dev/video20 | [12]: 'pBEE' (14-bit Bayer BGBG/GRGR Packed)
    /dev/video20 | [13]: 'pREE' (14-bit Bayer RGRG/GBGB Packed)
    /dev/video20 | [14]: 'pGEE' (14-bit Bayer GBGB/RGRG Packed)
    /dev/video20 | [15]: 'pgEE' (14-bit Bayer GRGR/BGBG Packed)
    /dev/video20 | [16]: 'BYR2' (16-bit Bayer BGBG/GRGR)
    /dev/video20 | [17]: 'RG16' (16-bit Bayer RGRG/GBGB)
    /dev/video20 | [18]: 'GB16' (16-bit Bayer GBGB/RGRG)
    /dev/video20 | [19]: 'GR16' (16-bit Bayer GRGR/BGBG)
    /dev/video20 | [20]: 'GREY' (8-bit Greyscale)
    /dev/video20 | [21]: 'Y10P' (10-bit Greyscale (MIPI Packed))
    /dev/video20 | [22]: 'Y12P' (12-bit Greyscale (MIPI Packed))
    /dev/video20 | [23]: 'Y14P' (14-bit Greyscale (MIPI Packed))
    /dev/video20 | [24]: 'Y16 ' (16-bit Greyscale)
    /dev/video20 | [25]: 'YUYV' (YUYV 4:2:2)
    /dev/video20 | [26]: 'YVYU' (YVYU 4:2:2)
    /dev/video20 | [27]: 'VYUY' (VYUY 4:2:2)
    /dev/video20 | [28]: 'UYVY' (UYVY 4:2:2)
    /dev/video20 | [29]: 'YU12' (Planar YUV 4:2:0)
    /dev/video20 | [30]: 'YV12' (Planar YVU 4:2:0)
    /dev/video20 | [31]: 'RGB3' (24-bit RGB 8-8-8)
    /dev/video20 | [32]: 'BGR3' (24-bit BGR 8-8-8)
    /dev/video20 | [33]: 'XB24' (32-bit RGBX 8-8-8-8)
    /dev/video20 | [34]: 'XR24' (32-bit BGRX 8-8-8-8)
    /dev/video20 | [35]: 'RGBP' (16-bit RGB 5-6-5)
    /dev/video20 | [36]: 'NV12' (Y/UV 4:2:0)
    /dev/video20 | [37]: 'NV21' (Y/VU 4:2:0)
    /dev/video20 | [38]: 'BG10' (10-bit Bayer BGBG/GRGR)
    /dev/video20 | [39]: 'RG10' (10-bit Bayer RGRG/GBGB)
    /dev/video20 | [40]: 'GB10' (10-bit Bayer GBGB/RGRG)
    /dev/video20 | [41]: 'BA10' (10-bit Bayer GRGR/BGBG)
    /dev/video20 | [42]: 'BG12' (12-bit Bayer BGBG/GRGR)
    /dev/video20 | [43]: 'RG12' (12-bit Bayer RGRG/GBGB)
    /dev/video20 | [44]: 'GB12' (12-bit Bayer GBGB/RGRG)
    /dev/video20 | [45]: 'BA12' (12-bit Bayer GRGR/BGBG)
    /dev/video20 | [46]: 'BG14' (14-bit Bayer BGBG/GRGR)
    /dev/video20 | [47]: 'RG14' (14-bit Bayer RGRG/GBGB)
    /dev/video20 | [48]: 'GB14' (14-bit Bayer GBGB/RGRG)
    /dev/video20 | [49]: 'GR14' (14-bit Bayer GRGR/BGBG)
    /dev/video20 | [50]: 'Y10 ' (10-bit Greyscale)
    /dev/video20 | [51]: 'Y12 ' (12-bit Greyscale)
    /dev/video20 | [52]: 'Y14 ' (14-bit Greyscale)
    /dev/video20 | Supported Video Output Fields:
    /dev/video20 | None

====================================
DEVICE: /dev/video21

  • v4l2-ctl -d /dev/video21 --info --list-formats-ext --list-fields --list-formats-out --list-fields-out
    /dev/video21 | Driver Info:
    /dev/video21 | Driver name : bcm2835-isp
    /dev/video21 | Card type : bcm2835-isp
    /dev/video21 | Bus info : platform:bcm2835-isp
    /dev/video21 | Driver version : 6.1.21
    /dev/video21 | Capabilities : 0x84200001
    /dev/video21 | Video Capture
    /dev/video21 | Streaming
    /dev/video21 | Extended Pix Format
    /dev/video21 | Device Capabilities
    /dev/video21 | Device Caps : 0x04200001
    /dev/video21 | Video Capture
    /dev/video21 | Streaming
    /dev/video21 | Extended Pix Format
    /dev/video21 | Media Driver Info:
    /dev/video21 | Driver name : bcm2835-isp
    /dev/video21 | Model : bcm2835-isp
    /dev/video21 | Serial :
    /dev/video21 | Bus info : platform:bcm2835-isp
    /dev/video21 | Media version : 6.1.21
    /dev/video21 | Hardware revision: 0x00000000 (0)
    /dev/video21 | Driver version : 6.1.21
    /dev/video21 | Interface Info:
    /dev/video21 | ID : 0x0300000e
    /dev/video21 | Type : V4L Video
    /dev/video21 | Entity Info:
    /dev/video21 | ID : 0x0000000c (12)
    /dev/video21 | Name : bcm2835-isp0-capture1
    /dev/video21 | Function : V4L2 I/O
    /dev/video21 | Pad 0x0100000d : 0: Sink
    /dev/video21 | Link 0x02000010: from remote pad 0x1000003 of entity 'bcm2835_isp0': Data, Enabled, Immutable
    /dev/video21 | ioctl: VIDIOC_ENUM_FMT
    /dev/video21 | Type: Video Capture
    /dev/video21 |
    /dev/video21 | [0]: 'YUYV' (YUYV 4:2:2)
    /dev/video21 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video21 | [1]: 'YVYU' (YVYU 4:2:2)
    /dev/video21 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video21 | [2]: 'VYUY' (VYUY 4:2:2)
    /dev/video21 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video21 | [3]: 'UYVY' (UYVY 4:2:2)
    /dev/video21 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video21 | [4]: 'YU12' (Planar YUV 4:2:0)
    /dev/video21 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video21 | [5]: 'YV12' (Planar YVU 4:2:0)
    /dev/video21 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video21 | [6]: 'RGB3' (24-bit RGB 8-8-8)
    /dev/video21 | Size: Stepwise 64x64 - 16384x16384 with step 1/1
    /dev/video21 | [7]: 'BGR3' (24-bit BGR 8-8-8)
    /dev/video21 | Size: Stepwise 64x64 - 16384x16384 with step 1/1
    /dev/video21 | [8]: 'XB24' (32-bit RGBX 8-8-8-8)
    /dev/video21 | Size: Stepwise 64x64 - 16384x16384 with step 1/1
    /dev/video21 | [9]: 'XR24' (32-bit BGRX 8-8-8-8)
    /dev/video21 | Size: Stepwise 64x64 - 16384x16384 with step 1/1
    /dev/video21 | [10]: 'RGBP' (16-bit RGB 5-6-5)
    /dev/video21 | Size: Stepwise 64x64 - 16384x16384 with step 1/1
    /dev/video21 | [11]: 'NV12' (Y/UV 4:2:0)
    /dev/video21 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video21 | [12]: 'NV21' (Y/VU 4:2:0)
    /dev/video21 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video21 | Supported Video Fields:
    /dev/video21 | None
    /dev/video21 | ioctl: VIDIOC_ENUM_FMT
    /dev/video21 | Type: Video Output
    /dev/video21 |

====================================
DEVICE: /dev/video22

  • v4l2-ctl -d /dev/video22 --info --list-formats-ext --list-fields --list-formats-out --list-fields-out
    /dev/video22 | Driver Info:
    /dev/video22 | Driver name : bcm2835-isp
    /dev/video22 | Card type : bcm2835-isp
    /dev/video22 | Bus info : platform:bcm2835-isp
    /dev/video22 | Driver version : 6.1.21
    /dev/video22 | Capabilities : 0x84200001
    /dev/video22 | Video Capture
    /dev/video22 | Streaming
    /dev/video22 | Extended Pix Format
    /dev/video22 | Device Capabilities
    /dev/video22 | Device Caps : 0x04200001
    /dev/video22 | Video Capture
    /dev/video22 | Streaming
    /dev/video22 | Extended Pix Format
    /dev/video22 | Media Driver Info:
    /dev/video22 | Driver name : bcm2835-isp
    /dev/video22 | Model : bcm2835-isp
    /dev/video22 | Serial :
    /dev/video22 | Bus info : platform:bcm2835-isp
    /dev/video22 | Media version : 6.1.21
    /dev/video22 | Hardware revision: 0x00000000 (0)
    /dev/video22 | Driver version : 6.1.21
    /dev/video22 | Interface Info:
    /dev/video22 | ID : 0x03000014
    /dev/video22 | Type : V4L Video
    /dev/video22 | Entity Info:
    /dev/video22 | ID : 0x00000012 (18)
    /dev/video22 | Name : bcm2835-isp0-capture2
    /dev/video22 | Function : V4L2 I/O
    /dev/video22 | Pad 0x01000013 : 0: Sink
    /dev/video22 | Link 0x02000016: from remote pad 0x1000004 of entity 'bcm2835_isp0': Data, Enabled, Immutable
    /dev/video22 | ioctl: VIDIOC_ENUM_FMT
    /dev/video22 | Type: Video Capture
    /dev/video22 |
    /dev/video22 | [0]: 'YUYV' (YUYV 4:2:2)
    /dev/video22 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video22 | [1]: 'YVYU' (YVYU 4:2:2)
    /dev/video22 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video22 | [2]: 'VYUY' (VYUY 4:2:2)
    /dev/video22 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video22 | [3]: 'UYVY' (UYVY 4:2:2)
    /dev/video22 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video22 | [4]: 'YU12' (Planar YUV 4:2:0)
    /dev/video22 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video22 | [5]: 'YV12' (Planar YVU 4:2:0)
    /dev/video22 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video22 | [6]: 'NV12' (Y/UV 4:2:0)
    /dev/video22 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video22 | [7]: 'NV21' (Y/VU 4:2:0)
    /dev/video22 | Size: Stepwise 64x64 - 16384x16384 with step 2/2
    /dev/video22 | Supported Video Fields:
    /dev/video22 | None
    /dev/video22 | ioctl: VIDIOC_ENUM_FMT
    /dev/video22 | Type: Video Output
    /dev/video22 |

====================================
DEVICE: /dev/video23

  • v4l2-ctl -d /dev/video23 --info --list-formats-ext --list-fields --list-formats-out --list-fields-out
    /dev/video23 | Driver Info:
    /dev/video23 | Driver name : bcm2835-isp
    /dev/video23 | Card type : bcm2835-isp
    /dev/video23 | Bus info : platform:bcm2835-isp
    /dev/video23 | Driver version : 6.1.21
    /dev/video23 | Capabilities : 0x84a00000
    /dev/video23 | Metadata Capture
    /dev/video23 | Streaming
    /dev/video23 | Extended Pix Format
    /dev/video23 | Device Capabilities
    /dev/video23 | Device Caps : 0x04a00000
    /dev/video23 | Metadata Capture
    /dev/video23 | Streaming
    /dev/video23 | Extended Pix Format
    /dev/video23 | Media Driver Info:
    /dev/video23 | Driver name : bcm2835-isp
    /dev/video23 | Model : bcm2835-isp
    /dev/video23 | Serial :
    /dev/video23 | Bus info : platform:bcm2835-isp
    /dev/video23 | Media version : 6.1.21
    /dev/video23 | Hardware revision: 0x00000000 (0)
    /dev/video23 | Driver version : 6.1.21
    /dev/video23 | Interface Info:
    /dev/video23 | ID : 0x0300001a
    /dev/video23 | Type : V4L Video
    /dev/video23 | Entity Info:
    /dev/video23 | ID : 0x00000018 (24)
    /dev/video23 | Name : bcm2835-isp0-capture3
    /dev/video23 | Function : V4L2 I/O
    /dev/video23 | Pad 0x01000019 : 0: Sink
    /dev/video23 | Link 0x0200001c: from remote pad 0x1000005 of entity 'bcm2835_isp0': Data, Enabled, Immutable
    /dev/video23 | ioctl: VIDIOC_ENUM_FMT
    /dev/video23 | Type: Video Capture
    /dev/video23 |
    /dev/video23 | ioctl: VIDIOC_ENUM_FMT
    /dev/video23 | Type: Video Output
    /dev/video23 |

====================================
DEVICE: /dev/video31

  • v4l2-ctl -d /dev/video31 --info --list-formats-ext --list-fields --list-formats-out --list-fields-out
    /dev/video31 | Driver Info:
    /dev/video31 | Driver name : bcm2835-codec
    /dev/video31 | Card type : bcm2835-codec-encode_image
    /dev/video31 | Bus info : platform:bcm2835-codec
    /dev/video31 | Driver version : 6.1.21
    /dev/video31 | Capabilities : 0x84204000
    /dev/video31 | Video Memory-to-Memory Multiplanar
    /dev/video31 | Streaming
    /dev/video31 | Extended Pix Format
    /dev/video31 | Device Capabilities
    /dev/video31 | Device Caps : 0x04204000
    /dev/video31 | Video Memory-to-Memory Multiplanar
    /dev/video31 | Streaming
    /dev/video31 | Extended Pix Format
    /dev/video31 | Media Driver Info:
    /dev/video31 | Driver name : bcm2835-codec
    /dev/video31 | Model : bcm2835-codec
    /dev/video31 | Serial : 0000
    /dev/video31 | Bus info : platform:bcm2835-codec
    /dev/video31 | Media version : 6.1.21
    /dev/video31 | Hardware revision: 0x00000001 (1)
    /dev/video31 | Driver version : 6.1.21
    /dev/video31 | Interface Info:
    /dev/video31 | ID : 0x03000044
    /dev/video31 | Type : V4L Video
    /dev/video31 | Entity Info:
    /dev/video31 | ID : 0x00000039 (57)
    /dev/video31 | Name : bcm2835-codec-encode_image-source
    /dev/video31 | Function : V4L2 I/O
    /dev/video31 | Pad 0x0100003a : 0: Source
    /dev/video31 | Link 0x02000040: to remote pad 0x100003c of entity 'bcm2835-codec-encode_image-proc': Data, Enabled, Immutable
    /dev/video31 | ioctl: VIDIOC_ENUM_FMT
    /dev/video31 | Type: Video Capture Multiplanar
    /dev/video31 |
    /dev/video31 | [0]: 'JPEG' (JFIF JPEG, compressed)
    /dev/video31 | Size: Stepwise 32x32 - 1920x1920 with step 2/2
    /dev/video31 | Supported Video Fields:
    /dev/video31 | None
    /dev/video31 | ioctl: VIDIOC_ENUM_FMT
    /dev/video31 | Type: Video Output Multiplanar
    /dev/video31 |
    /dev/video31 | [0]: 'RGBP' (16-bit RGB 5-6-5)
    /dev/video31 | [1]: 'RGB3' (24-bit RGB 8-8-8)
    /dev/video31 | [2]: 'BGR3' (24-bit BGR 8-8-8)
    /dev/video31 | [3]: 'AB24' (32-bit RGBA 8-8-8-8)
    /dev/video31 | [4]: 'BGR4' (32-bit BGRA/X 8-8-8-8)
    /dev/video31 | [5]: 'YU12' (Planar YUV 4:2:0)
    /dev/video31 | [6]: 'YUYV' (YUYV 4:2:2)
    /dev/video31 | [7]: 'YVYU' (YVYU 4:2:2)
    /dev/video31 | [8]: 'VYUY' (VYUY 4:2:2)
    /dev/video31 | [9]: 'UYVY' (UYVY 4:2:2)
    /dev/video31 | Supported Video Output Fields:
    /dev/video31 | None

@ayufan
Copy link
Contributor

ayufan commented Apr 20, 2023

Hmm. I don't know. Maybe we should apply default to be YU12 or NV12? They will work fine as well for camera output, but also reduce memory usage.

So, maybe memory usage is problem in your case? What is in /boot/config.txt?

@gifter77
Copy link

I have gpu_mem set to 256. The pi is a 8GB model.

@gifter77
Copy link

Also I forgot to mention my installation is 64 bits.

@ayufan
Copy link
Contributor

ayufan commented Apr 20, 2023

Nah. Impossible. Interesting. Can you try YUV420 ?

@gifter77
Copy link

YUV420 works. What is impossible?

@KwadFan
Copy link
Member Author

KwadFan commented Apr 20, 2023

I dont mind to change, based on your recommendation @ayufan

@gifter77
Copy link

gifter77 commented Apr 20, 2023

Also @ayufan why does the video output automatically gets configured to 1437x1080 when the h264 encode should be able to handle more than that?

[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: [1:15:32.974267447] [12311]  INFO RPI raspberrypi.cpp:851 Sensor: /base/soc/i2c0mux/i2c@1/imx219@10 - Selected sensor format: 3280x2464-SBGGR10_1X10 - Selected unicam format: 3280x2464-pBAA
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: CAMERA:capture:1: Using: 1437x1080/YU12, bytesperline=1472, sizeimage=0.0MiB
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: CAMERA:capture:1: Opened 3 buffers. Memory used: 6.8 MiB
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device.c: SNAPSHOT: Device path=/dev/video31 fd=40 opened
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer_list.c: SNAPSHOT:output:mplane: Requested resolution=1437x1080 is unavailable. Got 1437x1088.
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: SNAPSHOT:output:mplane: Using: 1408x1056/YU12, bytesperline=1472, sizeimage=2.2MiB
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: SNAPSHOT:output:mplane: Opened 3 buffers. Memory used: 0.0 MiB
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: SNAPSHOT:capture:mplane: Using: 1408x1056/JPEG, bytesperline=0, sizeimage=4.0MiB
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: SNAPSHOT:capture:mplane: Opened 3 buffers. Memory used: 12.0 MiB
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device.c: VIDEO: Device path=/dev/video11 fd=44 opened
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: VIDEO:output:mplane: Using: 1437x1080/YU12, bytesperline=1472, sizeimage=2.3MiB
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: VIDEO:output:mplane: Opened 3 buffers. Memory used: 0.0 MiB
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: VIDEO:capture:mplane: Using: 1437x1080/H264, bytesperline=0, sizeimage=0.8MiB
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: VIDEO:capture:mplane: Opened 3 buffers. Memory used: 2.2 MiB
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/device.c: CAMERA: Setting frame interval_us=0 for FPS=30
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: SNAPSHOT: Configuring option compressionquality (009d0903) = 80
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option repeatsequenceheader (009909e2) = 1
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option videobitratemode (009909ce) = 0
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option videobitrate (009909cf) = 2000000
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option repeatsequenceheader (009909e2) = 5000000
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option h264iframeperiod (00990a66) = 30
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option h264level (00990a67) = 11
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option h264profile (00990a6b) = 4
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option h264minimumqpvalue (00990a61) = 16
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option h264maximumqpvalue (00990a62) = 32
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option h264level (00990a67) = 13
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/links.c: ?: Link 0: CAMERA:capture:1[1437x1080/YU12/3] => [SNAPSHOT:output:mplane[1408x1056/YU12/3], VIDEO:output:mplane[1437x1080/YU12/3]]
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/links.c: ?: Link 1: SNAPSHOT:capture:mplane[1408x1056/JPEG/3] => [SNAPSHOT-CAPTURE, STREAM-CAPTURE]
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/links.c: ?: Link 2: VIDEO:capture:mplane[1437x1080/H264/3] => [VIDEO-CAPTURE]
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: CAMERA:capture:1: Streaming started... Was 0 of 3 enqueud
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: SNAPSHOT:output:mplane: Streaming started... Was 0 of 3 enqueud
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: VIDEO:output:mplane: Streaming started... Was 0 of 3 enqueud
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: SNAPSHOT:capture:mplane: Streaming started... Was 0 of 3 enqueud
[04/20/23 20:35:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: VIDEO:capture:mplane: Streaming started... Was 0 of 3 enqueud

@ayufan
Copy link
Contributor

ayufan commented Apr 20, 2023

@gifter77

The 1640x1232 is larger than the default set via --camera-snapshot.height=1080.

@ytugarev
Copy link

ytugarev commented May 24, 2023

I thought it would be useful for ppl with old raspi cams #112 (comment) @KwadFan thanks a lot - my old v1 raspberri pi camera (and Pi itself is also quite old - v2 B) works again on a new stack.

[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: 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: /base/soc/i2c0mux/i2c@1/ov5647@36  # See Log for available ...
resolution: 2592x1944                     # 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.

@KwadFan
Copy link
Member Author

KwadFan commented May 24, 2023

I thought it would be useful for ppl with old raspi cams #112 (comment) @KwadFan thanks a lot - my old v1 raspberri pi camera (and Pi itself is also quite old - v2 B) works again on a new stack.

[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: 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: /base/soc/i2c0mux/i2c@1/ov5647@36  # See Log for available ...
resolution: 2592x1944                     # 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.

Will update the docs, and use your setup as example, if that is ok.

@MikeEitel
Copy link

HI
I have a strange issue with Manta-8M CM4 and Raspicam V3
Tried different configs with device: /dev/video0 # and also /dev/v4l/by-path/platform-fe801000.csi-video-index0
Other device: xxxx show complete errors to device is probably addressed correctly in both versions.

Also locking for the camera in system seems ok
pi@MeVoron:~ $ v4l2-ctl --list-devices
bcm2835-codec-decode (platform:bcm2835-codec):
/dev/video10
/dev/video11
/dev/video12
/dev/video18
/dev/video31
/dev/media3

bcm2835-isp (platform:bcm2835-isp):
/dev/video13
/dev/video14
/dev/video15
/dev/video16
/dev/video20
/dev/video21
/dev/video22
/dev/video23
/dev/media1
/dev/media2

unicam (platform:fe801000.csi):
/dev/video0
/dev/video1
/dev/media4

rpivid (platform:rpivid):
/dev/video19
/dev/media0

AND HERE THE long DEBUG LOG:
05/24/23 13:22:19] crowsnest: crowsnest - A webcam Service for multiple Cams and Stream Services.
[05/24/23 13:22:19] crowsnest: Version: v4.0.2
[05/24/23 13:22:19] crowsnest: Prepare Startup ...
[05/24/23 13:22:19] crowsnest: INFO: Host information:
[05/24/23 13:22:19] crowsnest: Host Info: Distribution: Raspbian GNU/Linux 11 (bullseye)
[05/24/23 13:22:19] crowsnest: Host Info: Release: MainsailOS release 1.0.1 (bullseye)
[05/24/23 13:22:19] crowsnest: Host Info: Kernel: Linux 6.1.21-v8+ aarch64
[05/24/23 13:22:19] crowsnest: Host Info: Model: Raspberry Pi Compute Module 4 Rev 1.0
[05/24/23 13:22:19] crowsnest: Host Info: Available CPU Cores: 4
[05/24/23 13:22:19] crowsnest: Host Info: Available Memory: 3705504 kB
[05/24/23 13:22:19] crowsnest: Host Info: Diskspace (avail. / total): 20G / 29G
[05/24/23 13:22:19] crowsnest: INFO: Checking Dependencys
[05/24/23 13:22:19] crowsnest: Dependency: 'crudini' found in /usr/bin/crudini.
[05/24/23 13:22:19] crowsnest: Dependency: 'find' found in /usr/bin/find.
[05/24/23 13:22:19] crowsnest: Dependency: 'xargs' found in /usr/bin/xargs.
[05/24/23 13:22:19] crowsnest: Dependency: 'ustreamer' found in bin/ustreamer/ustreamer.
[05/24/23 13:22:19] crowsnest: Dependency: 'camera-streamer' found in bin/camera-streamer/camera-streamer.
[05/24/23 13:22:20] crowsnest: Version Control: ustreamer is up to date. (v5.38)
[05/24/23 13:22:20] crowsnest: Version Control: camera-streamer is up to date. ((9106d2c))
[05/24/23 13:22:20] crowsnest: INFO: Print Configfile: '/home/pi/printer_data/config/crowsnest.conf'
[05/24/23 13:22:20] crowsnest: [crowsnest]
[05/24/23 13:22:20] crowsnest: log_path: /home/pi/printer_data/logs/crowsnest.log
[05/24/23 13:22:20] crowsnest: log_level: debug
[05/24/23 13:22:20] crowsnest: delete_log: true
[05/24/23 13:22:20] crowsnest: no_proxy: false
[05/24/23 13:22:20] crowsnest:
[05/24/23 13:22:20] crowsnest: [cam 1]
[05/24/23 13:22:20] crowsnest: mode: camera-streamer
[05/24/23 13:22:20] crowsnest:
[05/24/23 13:22:20] crowsnest: enable_rtsp: false
[05/24/23 13:22:20] crowsnest: rtsp_port: 8554
[05/24/23 13:22:20] crowsnest: port: 8080
[05/24/23 13:22:20] crowsnest: device: /dev/video0
[05/24/23 13:22:20] crowsnest: resolution: 640x480
[05/24/23 13:22:20] crowsnest: max_fps: 15
[05/24/23 13:22:20] crowsnest: custom_flags:
[05/24/23 13:22:20] crowsnest: INFO: Detect available Devices
[05/24/23 13:22:20] crowsnest: INFO: Found 1 total available Device(s)
[05/24/23 13:22:20] crowsnest: Detected 'libcamera' device -> /base/soc/i2c0mux/i2c@1/imx708@1a
[05/24/23 13:22:20] crowsnest: Try to start configured Cams / Services...
[05/24/23 13:22:22] crowsnest: INFO: Configuration of Section [cam 1] looks good. Continue ...
[05/24/23 13:22:23] crowsnest: Starting camera-streamer with Device /dev/video0 ...
[05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: Parameters: --http-port=8080 --camera-path=/dev/video0 --camera-type=v4l2 --camera-snapshot.height=1080 --camera-width=640 --camera-height=480 --camera-fps=15 --camera-auto_reconnect=1
[05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device.c: CAMERA: Device path=/dev/video0 fd=14 opened
[05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: CAMERA: Configuring option horizontalflip (00980914) = 0
[05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: CAMERA: Configuring option verticalflip (00980915) = 0
[05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: CAMERA:capture: Using: 640x480/pBAA, buffers=3, bytesperline=800, sizeimage=0.4MiB
[05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: CAMERA:capture: Opened 3 buffers. Memory used: 1.1 MiB
[05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device.c: ISP: Device path=/dev/video13 fd=19 opened
[05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: ISP:output: Using: 640x480/pBAA, buffers=3, bytesperline=800, sizeimage=0.4MiB
[05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: ISP:output: Opened 3 buffers. Memory used: 0.0 MiB
[05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer_list.c: ISP:capture: Device path=/dev/video14 fd=20 opened
[05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: ISP:capture: Using: 640x480/YUYV, buffers=3, bytesperline=1280, sizeimage=0.6MiB
[05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: ISP:capture: Opened 3 buffers. Memory used: 1.8 MiB
[05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device.c: SNAPSHOT: Device path=/dev/video31 fd=24 opened
[05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: SNAPSHOT:output:mplane: Using: 640x480/YUYV, buffers=3, bytesperline=1280, sizeimage=0.6MiB
[05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: SNAPSHOT:output:mplane: Opened 3 buffers. Memory used: 0.0 MiB
[05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: SNAPSHOT:capture:mplane: Using: 640x480/JPEG, buffers=3, bytesperline=0, sizeimage=4.0MiB
[05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: SNAPSHOT:capture:mplane: Opened 3 buffers. Memory used: 12.0 MiB
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device.c: VIDEO: Device path=/dev/video11 fd=28 opened
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: VIDEO:output:mplane: Using: 640x480/YUYV, buffers=3, bytesperline=1280, sizeimage=0.6MiB
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: VIDEO:output:mplane: Opened 3 buffers. Memory used: 0.0 MiB
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: VIDEO:capture:mplane: Using: 640x480/H264, buffers=3, bytesperline=0, sizeimage=0.5MiB
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: VIDEO:capture:mplane: Opened 3 buffers. Memory used: 1.5 MiB
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device.c: CAMERA: ioctl(ret=-1, errno=25): Can't set FPS
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/device.c: CAMERA: Setting frame interval_us=66666 for FPS=15
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: CAMERA: The 'AfTrigger=1' was failed to find.
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: SNAPSHOT: Configuring option compressionquality (009d0903) = 80
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option repeatsequenceheader (009909e2) = 1
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option videobitratemode (009909ce) = 0
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option videobitrate (009909cf) = 2000000
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option repeatsequenceheader (009909e2) = 5000000
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option h264iframeperiod (00990a66) = 30
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option h264level (00990a67) = 11
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option h264profile (00990a6b) = 4
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option h264minimumqpvalue (00990a61) = 16
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option h264maximumqpvalue (00990a62) = 32
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/links.c: ?: Link 0: CAMERA:capture[640x480/pBAA/3] => [ISP:output[640x480/pBAA/3]]
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/links.c: ?: Link 1: ISP:capture[640x480/YUYV/3] => [SNAPSHOT:output:mplane[640x480/YUYV/3], VIDEO:output:mplane[640x480/YUYV/3]]
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/links.c: ?: Link 2: SNAPSHOT:capture:mplane[640x480/JPEG/3] => [SNAPSHOT-CAPTURE, STREAM-CAPTURE]
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/links.c: ?: Link 3: VIDEO:capture:mplane[640x480/H264/3] => [VIDEO-CAPTURE]
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: CAMERA:capture: Streaming started... Was 0 of 3 enqueud
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: ISP:output: Streaming started... Was 0 of 3 enqueud
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: ISP:capture: Streaming started... Was 0 of 3 enqueud
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: SNAPSHOT:output:mplane: Streaming started... Was 0 of 3 enqueud
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: VIDEO:output:mplane: Streaming started... Was 0 of 3 enqueud
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: SNAPSHOT:capture:mplane: Streaming started... Was 0 of 3 enqueud
[05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: VIDEO:capture:mplane: Streaming started... Was 0 of 3 enqueud
[05/24/23 13:22:24] crowsnest: ... Done!
[05/24/23 13:22:37] crowsnest: DEBUG: camera-streamer [cam 1]: util/http/http.c: HTTP8080/0: Client connected 127.0.0.1 (fd=4).
[05/24/23 13:22:37] crowsnest: DEBUG: camera-streamer [cam 1]: util/http/http.c: HTTP8080/0: Request 'GET' '/' 'action=stream'
[05/24/23 13:22:37] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer.
[05/24/23 13:22:38] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer.
[05/24/23 13:22:38] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer.
[05/24/23 13:22:38] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer.
[05/24/23 13:22:38] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer.
[05/24/23 13:22:38] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer.
[05/24/23 13:22:38] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer.
[05/24/23 13:22:38] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer.
[05/24/23 13:22:38] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer.
[05/24/23 13:22:38] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer.
[05/24/23 13:22:38] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer.
[05/24/23 13:22:39] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer.
[05/24/23 13:22:39] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer.
[05/24/23 13:22:39] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer.
[05/24/23 13:22:39] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer.
[05/24/23 13:22:39] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer.
[05/24/23 13:22:39] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer.
[05/24/23 13:22:39] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer.
[05/24/23 13:22:39] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer.
[05/24/23 13:22:39] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer.
[05/24/23 13:22:39] crowsnest: DEBUG: camera-streamer [cam 1]: util/http/http.c: HTTP8080/0: Client disconnected 127.0.0.1.

@ytugarev
Copy link

HI I have a strange issue with Manta-8M CM4 and Raspicam V3 Tried different configs with device: /dev/video0 # and also /dev/v4l/by-path/platform-fe801000.csi-video-index0 Other device: xxxx show complete errors to device is probably addressed correctly in both versions.

Also locking for the camera in system seems ok pi@MeVoron:~ $ v4l2-ctl --list-devices bcm2835-codec-decode (platform:bcm2835-codec): /dev/video10 /dev/video11 /dev/video12 /dev/video18 /dev/video31 /dev/media3

bcm2835-isp (platform:bcm2835-isp): /dev/video13 /dev/video14 /dev/video15 /dev/video16 /dev/video20 /dev/video21 /dev/video22 /dev/video23 /dev/media1 /dev/media2

unicam (platform:fe801000.csi): /dev/video0 /dev/video1 /dev/media4

rpivid (platform:rpivid): /dev/video19 /dev/media0

AND HERE THE long DEBUG LOG: 05/24/23 13:22:19] crowsnest: crowsnest - A webcam Service for multiple Cams and Stream Services. [05/24/23 13:22:19] crowsnest: Version: v4.0.2 [05/24/23 13:22:19] crowsnest: Prepare Startup ... [05/24/23 13:22:19] crowsnest: INFO: Host information: [05/24/23 13:22:19] crowsnest: Host Info: Distribution: Raspbian GNU/Linux 11 (bullseye) [05/24/23 13:22:19] crowsnest: Host Info: Release: MainsailOS release 1.0.1 (bullseye) [05/24/23 13:22:19] crowsnest: Host Info: Kernel: Linux 6.1.21-v8+ aarch64 [05/24/23 13:22:19] crowsnest: Host Info: Model: Raspberry Pi Compute Module 4 Rev 1.0 [05/24/23 13:22:19] crowsnest: Host Info: Available CPU Cores: 4 [05/24/23 13:22:19] crowsnest: Host Info: Available Memory: 3705504 kB [05/24/23 13:22:19] crowsnest: Host Info: Diskspace (avail. / total): 20G / 29G [05/24/23 13:22:19] crowsnest: INFO: Checking Dependencys [05/24/23 13:22:19] crowsnest: Dependency: 'crudini' found in /usr/bin/crudini. [05/24/23 13:22:19] crowsnest: Dependency: 'find' found in /usr/bin/find. [05/24/23 13:22:19] crowsnest: Dependency: 'xargs' found in /usr/bin/xargs. [05/24/23 13:22:19] crowsnest: Dependency: 'ustreamer' found in bin/ustreamer/ustreamer. [05/24/23 13:22:19] crowsnest: Dependency: 'camera-streamer' found in bin/camera-streamer/camera-streamer. [05/24/23 13:22:20] crowsnest: Version Control: ustreamer is up to date. (v5.38) [05/24/23 13:22:20] crowsnest: Version Control: camera-streamer is up to date. ((9106d2c)) [05/24/23 13:22:20] crowsnest: INFO: Print Configfile: '/home/pi/printer_data/config/crowsnest.conf' [05/24/23 13:22:20] crowsnest: [crowsnest] [05/24/23 13:22:20] crowsnest: log_path: /home/pi/printer_data/logs/crowsnest.log [05/24/23 13:22:20] crowsnest: log_level: debug [05/24/23 13:22:20] crowsnest: delete_log: true [05/24/23 13:22:20] crowsnest: no_proxy: false [05/24/23 13:22:20] crowsnest: [05/24/23 13:22:20] crowsnest: [cam 1] [05/24/23 13:22:20] crowsnest: mode: camera-streamer [05/24/23 13:22:20] crowsnest: [05/24/23 13:22:20] crowsnest: enable_rtsp: false [05/24/23 13:22:20] crowsnest: rtsp_port: 8554 [05/24/23 13:22:20] crowsnest: port: 8080 [05/24/23 13:22:20] crowsnest: device: /dev/video0 [05/24/23 13:22:20] crowsnest: resolution: 640x480 [05/24/23 13:22:20] crowsnest: max_fps: 15 [05/24/23 13:22:20] crowsnest: custom_flags: [05/24/23 13:22:20] crowsnest: INFO: Detect available Devices [05/24/23 13:22:20] crowsnest: INFO: Found 1 total available Device(s) [05/24/23 13:22:20] crowsnest: Detected 'libcamera' device -> /base/soc/i2c0mux/i2c@1/imx708@1a [05/24/23 13:22:20] crowsnest: Try to start configured Cams / Services... [05/24/23 13:22:22] crowsnest: INFO: Configuration of Section [cam 1] looks good. Continue ... [05/24/23 13:22:23] crowsnest: Starting camera-streamer with Device /dev/video0 ... [05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: Parameters: --http-port=8080 --camera-path=/dev/video0 --camera-type=v4l2 --camera-snapshot.height=1080 --camera-width=640 --camera-height=480 --camera-fps=15 --camera-auto_reconnect=1 [05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device.c: CAMERA: Device path=/dev/video0 fd=14 opened [05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: CAMERA: Configuring option horizontalflip (00980914) = 0 [05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: CAMERA: Configuring option verticalflip (00980915) = 0 [05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: CAMERA:capture: Using: 640x480/pBAA, buffers=3, bytesperline=800, sizeimage=0.4MiB [05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: CAMERA:capture: Opened 3 buffers. Memory used: 1.1 MiB [05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device.c: ISP: Device path=/dev/video13 fd=19 opened [05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: ISP:output: Using: 640x480/pBAA, buffers=3, bytesperline=800, sizeimage=0.4MiB [05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: ISP:output: Opened 3 buffers. Memory used: 0.0 MiB [05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer_list.c: ISP:capture: Device path=/dev/video14 fd=20 opened [05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: ISP:capture: Using: 640x480/YUYV, buffers=3, bytesperline=1280, sizeimage=0.6MiB [05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: ISP:capture: Opened 3 buffers. Memory used: 1.8 MiB [05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device.c: SNAPSHOT: Device path=/dev/video31 fd=24 opened [05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: SNAPSHOT:output:mplane: Using: 640x480/YUYV, buffers=3, bytesperline=1280, sizeimage=0.6MiB [05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: SNAPSHOT:output:mplane: Opened 3 buffers. Memory used: 0.0 MiB [05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: SNAPSHOT:capture:mplane: Using: 640x480/JPEG, buffers=3, bytesperline=0, sizeimage=4.0MiB [05/24/23 13:22:23] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: SNAPSHOT:capture:mplane: Opened 3 buffers. Memory used: 12.0 MiB [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device.c: VIDEO: Device path=/dev/video11 fd=28 opened [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: VIDEO:output:mplane: Using: 640x480/YUYV, buffers=3, bytesperline=1280, sizeimage=0.6MiB [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: VIDEO:output:mplane: Opened 3 buffers. Memory used: 0.0 MiB [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: VIDEO:capture:mplane: Using: 640x480/H264, buffers=3, bytesperline=0, sizeimage=0.5MiB [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: VIDEO:capture:mplane: Opened 3 buffers. Memory used: 1.5 MiB [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device.c: CAMERA: ioctl(ret=-1, errno=25): Can't set FPS [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/device.c: CAMERA: Setting frame interval_us=66666 for FPS=15 [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: CAMERA: The 'AfTrigger=1' was failed to find. [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: SNAPSHOT: Configuring option compressionquality (009d0903) = 80 [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option repeatsequenceheader (009909e2) = 1 [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option videobitratemode (009909ce) = 0 [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option videobitrate (009909cf) = 2000000 [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option repeatsequenceheader (009909e2) = 5000000 [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option h264iframeperiod (00990a66) = 30 [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option h264level (00990a67) = 11 [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option h264profile (00990a6b) = 4 [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option h264minimumqpvalue (00990a61) = 16 [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option h264maximumqpvalue (00990a62) = 32 [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/links.c: ?: Link 0: CAMERA:capture[640x480/pBAA/3] => [ISP:output[640x480/pBAA/3]] [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/links.c: ?: Link 1: ISP:capture[640x480/YUYV/3] => [SNAPSHOT:output:mplane[640x480/YUYV/3], VIDEO:output:mplane[640x480/YUYV/3]] [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/links.c: ?: Link 2: SNAPSHOT:capture:mplane[640x480/JPEG/3] => [SNAPSHOT-CAPTURE, STREAM-CAPTURE] [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/links.c: ?: Link 3: VIDEO:capture:mplane[640x480/H264/3] => [VIDEO-CAPTURE] [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: CAMERA:capture: Streaming started... Was 0 of 3 enqueud [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: ISP:output: Streaming started... Was 0 of 3 enqueud [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: ISP:capture: Streaming started... Was 0 of 3 enqueud [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: SNAPSHOT:output:mplane: Streaming started... Was 0 of 3 enqueud [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: VIDEO:output:mplane: Streaming started... Was 0 of 3 enqueud [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: SNAPSHOT:capture:mplane: Streaming started... Was 0 of 3 enqueud [05/24/23 13:22:24] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: VIDEO:capture:mplane: Streaming started... Was 0 of 3 enqueud [05/24/23 13:22:24] crowsnest: ... Done! [05/24/23 13:22:37] crowsnest: DEBUG: camera-streamer [cam 1]: util/http/http.c: HTTP8080/0: Client connected 127.0.0.1 (fd=4). [05/24/23 13:22:37] crowsnest: DEBUG: camera-streamer [cam 1]: util/http/http.c: HTTP8080/0: Request 'GET' '/' 'action=stream' [05/24/23 13:22:37] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer. [05/24/23 13:22:38] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer. [05/24/23 13:22:38] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer. [05/24/23 13:22:38] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer. [05/24/23 13:22:38] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer. [05/24/23 13:22:38] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer. [05/24/23 13:22:38] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer. [05/24/23 13:22:38] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer. [05/24/23 13:22:38] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer. [05/24/23 13:22:38] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer. [05/24/23 13:22:38] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer. [05/24/23 13:22:39] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer. [05/24/23 13:22:39] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer. [05/24/23 13:22:39] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer. [05/24/23 13:22:39] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer. [05/24/23 13:22:39] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer. [05/24/23 13:22:39] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer. [05/24/23 13:22:39] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer. [05/24/23 13:22:39] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer. [05/24/23 13:22:39] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer.c: CAMERA:capture:buf0: ioctl(ret=-1, errno=22): Can't queue buffer. [05/24/23 13:22:39] crowsnest: DEBUG: camera-streamer [cam 1]: util/http/http.c: HTTP8080/0: Client disconnected 127.0.0.1.

Try /base/soc/i2c0mux/i2c@1/imx708@1a as a device and use "mode: camera-streamer "

@ytugarev
Copy link

ytugarev commented May 24, 2023

I thought it would be useful for ppl with old raspi cams #112 (comment) @KwadFan thanks a lot - my old v1 raspberri pi camera (and Pi itself is also quite old - v2 B) works again on a new stack.

[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: 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: /base/soc/i2c0mux/i2c@1/ov5647@36  # See Log for available ...
resolution: 2592x1944                     # 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.

Will update the docs, and use your setup as example, if that is ok.

Sure! This one below is better from CPU utilization (Again RPi v2 B). With the one below ~10% CPU load when watching camera, and if 2592x1944 - it is easely goes up to 30%.

[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: 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: /base/soc/i2c0mux/i2c@1/ov5647@36 # See Log for available ...
resolution: 1280x720                      # 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.

Also as a pre-check has to work correctly

libcamera-still -o img.jpg -v

I do not update Rasp OS due to the fact it bricks my setup but I also use these settings in /boot/config.txt (not sure if everything absolutely necessary but it works)

## Disable libcamera (interferes with ustreamer, when using raspicams)
camera_auto_detect=0
dtoverlay=ov5647

## Enable VideoCore at boot, needed for Crowsnest (Raspicams and DSI devices).
#start_x=1

@MikeEitel
Copy link

WOW

IT WORKS

had tried /base/soc/i2c0mux/i2c@1/imx708@1 before BUT with ustreamer.

MANY THX Weeks of waiting and finally success. Super Job !!

@meteyou meteyou changed the title Breaking changes on its way .... Breaking changes - Upgrade from v3 to v4 May 28, 2023
@meteyou meteyou changed the title Breaking changes - Upgrade from v3 to v4 Breaking changes May 28, 2023
@thetic
Copy link

thetic commented May 30, 2023

I cannot get my picam working after the update.

[crowsnest]
log_path: /home/pi/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


[cam pi]
mode: camera-streamer
enable_rtsp: false
rtsp_port: 8554
port: 8080
device: /base/soc/i2c0mux/i2c@1/imx219@10
resolution: 1640x1232
max_fps: 15


[cam angry]
mode: camera-streamer
port: 8081
device: /dev/v4l/by-id/usb-Sonix_Technology_Co.__Ltd._USB_2.0_1080P_Camera_SN0001-video-index0
resolution: 1600x1200
max_fps: 15
v4l2ctl: focus_automatic_continuous=0,focus_absolute=30
$ libcamera-hello --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]
$ libcamera-still -o img.jpg -v
Options:
    verbose: 2
    info_text:#%frame (%fps fps) exp %exp ag %ag dg %dg
    timeout: 5000
    width: 0
    height: 0
    output: img.jpg
    post_process_file:
    rawfull: 0
    preview: default
    qt-preview: 0
    transform: identity
    roi: all
    metering: centre
    exposure: normal
    ev: 0
    awb: auto
    flush: false
    wrap: 0
    brightness: 0
    contrast: 1
    saturation: 1
    sharpness: 1
    framerate: 30
    denoise: auto
    viewfinder-width: 0
    viewfinder-height: 0
    tuning-file: (libcamera)
    lores-width: 0
    lores-height: 0
    autofocus-range: normal
    autofocus-speed: normal
    autofocus-window: all
    mode: unspecified
    viewfinder-mode: unspecified
    metadata:
    metadata-format: json
    encoding: jpg
    quality: 93
    raw: 0
    restart: 0
    timelapse: 0
    framestart: 0
    datetime: 0
    timestamp: 0
    keypress: 0
    signal: 0
    thumbnail width: 320
    thumbnail height: 240
    thumbnail quality: 70
    latest:
    immediate 0
    AF on capture: 0
Preview window unavailable
Running without preview window
Opening camera...
[0:06:52.587079820] [2610]  INFO Camera camera_manager.cpp:299 libcamera v0.0.4+22-923f5d70
[0:06:52.627759024] [2614]  WARN RPI raspberrypi.cpp:1357 Mismatch between Unicam and CamHelper for embedded data usage!
[0:06:52.629342753] [2614]  INFO RPI raspberrypi.cpp:1476 Registered camera /base/soc/i2c0mux/i2c@1/imx219@10 to Unicam device /dev/media2 and ISP device /dev/media0
Acquired camera /base/soc/i2c0mux/i2c@1/imx219@10
Configuring viewfinder...
Viewfinder size chosen is 1640x1232
[0:06:52.632676414] [2610]  INFO Camera camera.cpp:1028 configuring streams: (0) 1640x1232-YUV420
[0:06:52.633194188] [2614]  INFO RPI raspberrypi.cpp:851 Sensor: /base/soc/i2c0mux/i2c@1/imx219@10 - Selected sensor format: 1640x1232-SBGGR10_1X10 - Selected unicam format: 1640x1232-pBAA
Camera streams configured
Available controls:
    AeEnable : [false..true]
    AeMeteringMode : [0..3]
    AeConstraintMode : [0..3]
    ExposureValue : [-8.000000..8.000000]
    ScalerCrop : [(0, 0)/128x128..(0, 0)/3280x2464]
    Sharpness : [0.000000..16.000000]
    Contrast : [0.000000..32.000000]
    NoiseReductionMode : [0..4]
    FrameDurationLimits : [23894..11767556]
    Brightness : [-1.000000..1.000000]
    ExposureTime : [75..11766829]
    AwbMode : [0..7]
    ColourGains : [0.000000..32.000000]
    AwbEnable : [false..true]
    AnalogueGain : [1.000000..10.666667]
    ColourCorrectionMatrix : [-16.000000..16.000000]
    AeExposureMode : [0..3]
    Saturation : [0.000000..32.000000]
[0:06:52.644651050] [2614] ERROR V4L2 v4l2_videodevice.cpp:1248 /dev/video14[14:cap]: Not enough buffers provided by V4L2VideoDevice
Closing Libcamera application(frames displayed 0, dropped 0)
Camera stopped!
Tearing down requests, buffers and configuration
Camera closed
ERROR: *** failed to allocate capture buffers ***

@pl4nkt0n
Copy link

pl4nkt0n commented Jun 1, 2023

Experiencing the same as @thetic on
Version: v0.11.0-210-g0539e9f2-dirty
OS: Debian GNU/Linux 11 (bullseye)
Distro: MainsailOS 1.2.0 (bullseye):

  • same camera and same config
  • pi CM4
  • the pi camera can be found with libcamera-hello --list-camera
  • crowsnest log reports that it found a pi cam /base/soc/i2c0mux/i2c@1/imx219@10,
    ---but fails to start:
    ----crowsnest: DEBUG: camera-streamer [cam raspi]: xargs: /home/pi/crowsnest/bin/camera-streamer/camera-streamer: exited with status 255; aborting
    ----crowsnest: ERROR: Start of camera-streamer [cam raspi] failed!

also libcamera-still fails.

USB Cam on the same setup works fine.
before, both cams (USB + raspi simultaneously) worked fine - raspi cam also still works on another setup with a pi4.
so it's not a hardware problem.

/boot/config.txt was edited as described in crowsnest FAQ:
dtoverlay=vc4-fkms-v3d
camera_auto_detect=1
#start_x=1

anyone else struggling with this setup or can find a mistake from myself?

@MrDananas
Copy link

@gifter77

The 1640x1232 is larger than the default set via --camera-snapshot.height=1080.

Hello! How do I go about changing the default? I am trying the enable the full resolution of my RPi HQ camera (4056x3040@10fps) and not having much luck. I tried adding "--camera-snapshot.height=3040" as a flag but nothing. Everything works without it of course but it seems the resolutions gets limited despite "resolution: 4056x3040". I could get the full resolution when running OctoPrint + Klipper.
This is my config:

[crowsnest]
log_path: /home/pi/printer_data/logs/crowsnest.log
log_level: debug                                          # Valid Options are quiet/verbose/debug
delete_log: false                                         # 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: 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: /base/soc/i2c0mux/i2c@1/imx477@1a                 # See Log for available ...
resolution: 4056x3040                                     # widthxheight format
max_fps: 10                                               # If Hardware Supports this it will be forced, otherwise ignored/coerced.
custom_flags: --camera-snapshot.height=3040               # 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.

Here is the log:

[06/24/23 16:15:55] crowsnest: Shutdown or Killed by User!
[06/24/23 16:15:55] crowsnest: Please come again :)
[06/24/23 16:15:55] crowsnest: crowsnest - A webcam Service for multiple Cams and Stream Services.
[06/24/23 16:15:55] crowsnest: Version: v4.0.2-2-g8b54eae
[06/24/23 16:15:55] crowsnest: Prepare Startup ...
[06/24/23 16:15:55] crowsnest: INFO: Host information:
[06/24/23 16:15:55] crowsnest: Host Info: Distribution: Debian GNU/Linux 11 (bullseye)
[06/24/23 16:15:55] crowsnest: Host Info: Release: MainsailOS release 1.2.1 (bullseye)
[06/24/23 16:15:55] crowsnest: Host Info: Kernel: Linux 6.1.21-v8+ aarch64
[06/24/23 16:15:55] crowsnest: Host Info: Model:  Raspberry Pi 4 Model B Rev 1.2
[06/24/23 16:15:55] crowsnest: Host Info: Available CPU Cores: 4
[06/24/23 16:15:55] crowsnest: Host Info: Available Memory: 3705524 kB
[06/24/23 16:15:55] crowsnest: Host Info: Diskspace (avail. / total): 107G / 117G
[06/24/23 16:15:55] crowsnest: INFO: Checking Dependencys
[06/24/23 16:15:55] crowsnest: Dependency: 'crudini' found in /usr/bin/crudini.
[06/24/23 16:15:55] crowsnest: Dependency: 'find' found in /usr/bin/find.
[06/24/23 16:15:56] crowsnest: Dependency: 'xargs' found in /usr/bin/xargs.
[06/24/23 16:15:56] crowsnest: Dependency: 'ustreamer' found in bin/ustreamer/ustreamer.
[06/24/23 16:15:56] crowsnest: Dependency: 'camera-streamer' found in bin/camera-streamer/camera-streamer.
[06/24/23 16:15:56] crowsnest: Version Control: ustreamer is up to date. (v5.41)
[06/24/23 16:15:56] crowsnest: Version Control: camera-streamer is up to date. ((ef8f6a4))
[06/24/23 16:15:56] crowsnest: INFO: Print Configfile: '/home/pi/printer_data/config/crowsnest.conf'
[06/24/23 16:15:56] crowsnest:		[crowsnest]
[06/24/23 16:15:56] crowsnest:		log_path: /home/pi/printer_data/logs/crowsnest.log
[06/24/23 16:15:56] crowsnest:		log_level: debug
[06/24/23 16:15:56] crowsnest:		delete_log: false
[06/24/23 16:15:56] crowsnest:		no_proxy: false
[06/24/23 16:15:56] crowsnest:		
[06/24/23 16:15:56] crowsnest:		[cam 1]
[06/24/23 16:15:56] crowsnest:		mode: camera-streamer
[06/24/23 16:15:56] crowsnest:		
[06/24/23 16:15:56] crowsnest:		enable_rtsp: false
[06/24/23 16:15:56] crowsnest:		rtsp_port: 8554
[06/24/23 16:15:56] crowsnest:		port: 8080
[06/24/23 16:15:56] crowsnest:		device: /base/soc/i2c0mux/i2c@1/imx477@1a
[06/24/23 16:15:56] crowsnest:		resolution: 4056x3040
[06/24/23 16:15:56] crowsnest:		max_fps: 10
[06/24/23 16:15:56] crowsnest:		custom_flags: --camera-snapshot.height=3040
[06/24/23 16:15:56] crowsnest: INFO: Detect available Devices
[06/24/23 16:15:56] crowsnest: INFO: Found 1 total available Device(s)
[06/24/23 16:15:56] crowsnest: Detected 'libcamera' device -> /base/soc/i2c0mux/i2c@1/imx477@1a
[06/24/23 16:15:56] crowsnest: Try to start configured Cams / Services...
[06/24/23 16:15:57] crowsnest: INFO: Configuration of Section [cam 1] looks good. Continue ...
[06/24/23 16:15:59] crowsnest: Starting camera-streamer with Device /base/soc/i2c0mux/i2c@1/imx477@1a ...
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: Parameters: --http-port=8080 --camera-path=/base/soc/i2c0mux/i2c@1/imx477@1a --camera-type=libcamera --camera-format=YUYV --camera-snapshot.height=1080 --camera-width=4056 --camera-height=3040 --camera-fps=10 --camera-auto_reconnect=1 --camera-snapshot.height=3040
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: /home/pi/crowsnest/bin/camera-streamer/camera-streamer Version:  (ef8f6a4)
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: [1:28:03.925211500] [6140] �[1;32m INFO �[1;37mCamera �[1;34mcamera_manager.cpp:299 �[0mlibcamera v0.0.4+22-923f5d70
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: [1:28:03.967273891] [6151] �[1;32m INFO �[1;37mRPI �[1;34mraspberrypi.cpp:1476 �[0mRegistered camera /base/soc/i2c0mux/i2c@1/imx477@1a to Unicam device /dev/media3 and ISP device /dev/media0
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/libcamera/device.cc: CAMERA: Device path=/base/soc/i2c0mux/i2c@1/imx477@1a opened
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: [1:28:03.968285751] [6140] �[1;32m INFO �[1;37mCamera �[1;34mcamera.cpp:1028 �[0mconfiguring streams: (0) 1920x1439-YUYV
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: [1:28:03.968620378] [6151] �[1;32m INFO �[1;37mRPI �[1;34mraspberrypi.cpp:851 �[0mSensor: /base/soc/i2c0mux/i2c@1/imx477@1a - Selected sensor format: 2028x1520-SBGGR12_1X12 - Selected unicam format: 2028x1520-pBCC
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: [1:28:03.970850282] [6140] �[1;32m INFO �[1;37mCamera �[1;34mcamera.cpp:1028 �[0mconfiguring streams: (0) 1920x1439-YUYV (1) 4056x3040-SBGGR12_CSI2P
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: [1:28:03.971136501] [6151] �[1;32m INFO �[1;37mRPI �[1;34mraspberrypi.cpp:851 �[0mSensor: /base/soc/i2c0mux/i2c@1/imx477@1a - Selected sensor format: 4056x3040-SBGGR12_1X12 - Selected unicam format: 4056x3040-pBCC
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: CAMERA:capture: Using: 1920x1439/YUYV, buffers=3, bytesperline=3840, sizeimage=0.0MiB
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: CAMERA:capture: Opened 3 buffers. Memory used: 15.8 MiB
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: CAMERA:capture:1: Using: 4056x3040/BG12, buffers=3, bytesperline=6112, sizeimage=0.0MiB
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: CAMERA:capture:1: Opened 3 buffers. Memory used: 53.2 MiB
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device.c: SNAPSHOT: Device path=/dev/video31 fd=40 opened
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer_list.c: SNAPSHOT:output:mplane: Requested resolution=1920x1439 is unavailable. Got 1920x1440.
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: SNAPSHOT:output:mplane: Using: 1920x1408/YUYV, buffers=3, bytesperline=3840, sizeimage=5.2MiB
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: SNAPSHOT:output:mplane: Opened 3 buffers. Memory used: 0.0 MiB
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: SNAPSHOT:capture:mplane: Using: 1920x1408/JPEG, buffers=3, bytesperline=0, sizeimage=4.0MiB
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: SNAPSHOT:capture:mplane: Opened 3 buffers. Memory used: 12.0 MiB
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device.c: VIDEO: Device path=/dev/video11 fd=44 opened
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: VIDEO:output:mplane: Using: 1920x1439/YUYV, buffers=3, bytesperline=3840, sizeimage=5.3MiB
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: VIDEO:output:mplane: Opened 3 buffers. Memory used: 0.0 MiB
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: VIDEO:capture:mplane: Using: 1920x1439/H264, buffers=3, bytesperline=0, sizeimage=0.8MiB
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: VIDEO:capture:mplane: Opened 3 buffers. Memory used: 2.2 MiB
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/device.c: CAMERA: Setting frame interval_us=0 for FPS=10
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: SNAPSHOT: Configuring option compressionquality (009d0903) = 80
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option repeatsequenceheader (009909e2) = 1
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option videobitratemode (009909ce) = 0
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option videobitrate (009909cf) = 2000000
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option repeatsequenceheader (009909e2) = 5000000
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option h264iframeperiod (00990a66) = 30
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option h264level (00990a67) = 11
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option h264profile (00990a6b) = 4
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option h264minimumqpvalue (00990a61) = 16
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/device_options.c: VIDEO: Configuring option h264maximumqpvalue (00990a62) = 32
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/links.c: ?: Link 0: CAMERA:capture[1920x1439/YUYV/3] => [SNAPSHOT:output:mplane[1920x1408/YUYV/3], VIDEO:output:mplane[1920x1439/YUYV/3]]
[06/24/23 16:15:59] crowsnest: DEBUG: camera-streamer [cam 1]: device/links.c: ?: Link 1: SNAPSHOT:capture:mplane[1920x1408/JPEG/3] => [SNAPSHOT-CAPTURE, STREAM-CAPTURE]
[06/24/23 16:16:00] crowsnest: DEBUG: camera-streamer [cam 1]: device/links.c: ?: Link 2: VIDEO:capture:mplane[1920x1439/H264/3] => [VIDEO-CAPTURE]
[06/24/23 16:16:00] crowsnest:  ... Done!
[06/24/23 16:16:00] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: CAMERA:capture: Streaming started... Was 0 of 3 enqueud
[06/24/23 16:16:00] crowsnest: DEBUG: camera-streamer [cam 1]: device/buffer_list.c: SNAPSHOT:output:mplane: Streaming started... Was 0 of 3 enqueud
[06/24/23 16:16:00] crowsnest: DEBUG: camera-streamer [cam 1]: device/v4l2/buffer_list.c: VIDEO:output:mplane: ioctl(ret=-1, errno=3): Cannot set streaming state
[06/24/23 16:16:00] crowsnest: DEBUG: camera-streamer [cam 1]: device/links.c: VIDEO:output:mplane: Failed to start streaming
[06/24/23 16:16:00] crowsnest: DEBUG: camera-streamer [cam 1]: [1:28:04.692821714] [6140] �[1;31mERROR �[1;37mCamera �[1;34mcamera.cpp:547 �[0mCamera in Running state trying release() requiring state between Available and Configured
[06/24/23 16:16:00] crowsnest: DEBUG: camera-streamer [cam 1]: [1:28:04.693333783] [6151] �[1;31mERROR �[1;37mV4L2 �[1;34mv4l2_videodevice.cpp:1241 �[0;32m/dev/video0[23:cap]: �[0mUnable to request 0 buffers: Device or resource busy
[06/24/23 16:16:00] crowsnest: DEBUG: camera-streamer [cam 1]: [1:28:04.693426634] [6151] �[1;31mERROR �[1;37mV4L2 �[1;34mv4l2_videodevice.cpp:1241 �[0;32m/dev/video1[24:cap]: �[0mUnable to request 0 buffers: Device or resource busy
[06/24/23 16:16:00] crowsnest: DEBUG: camera-streamer [cam 1]: [1:28:04.693501245] [6151] �[1;31mERROR �[1;37mV4L2 �[1;34mv4l2_videodevice.cpp:1241 �[0;32m/dev/video13[25:out]: �[0mUnable to request 0 buffers: Device or resource busy
[06/24/23 16:16:00] crowsnest: DEBUG: camera-streamer [cam 1]: [1:28:04.693551781] [6151] �[1;31mERROR �[1;37mV4L2 �[1;34mv4l2_videodevice.cpp:1241 �[0;32m/dev/video14[26:cap]: �[0mUnable to request 0 buffers: Device or resource busy
[06/24/23 16:16:00] crowsnest: DEBUG: camera-streamer [cam 1]: [1:28:04.693607966] [6151] �[1;31mERROR �[1;37mV4L2 �[1;34mv4l2_videodevice.cpp:1241 �[0;32m/dev/video15[27:cap]: �[0mUnable to request 0 buffers: Device or resource busy
[06/24/23 16:16:00] crowsnest: DEBUG: camera-streamer [cam 1]: [1:28:04.693663947] [6151] �[1;31mERROR �[1;37mV4L2 �[1;34mv4l2_videodevice.cpp:1241 �[0;32m/dev/video16[28:cap]: �[0mUnable to request 0 buffers: Device or resource busy
[06/24/23 16:16:00] crowsnest: DEBUG: camera-streamer [cam 1]: terminate called without an active exception
[06/24/23 16:16:00] crowsnest: DEBUG: camera-streamer [cam 1]: xargs: /home/pi/crowsnest/bin/camera-streamer/camera-streamer: terminated by signal 6
[06/24/23 16:16:00] crowsnest: ERROR: Start of camera-streamer [cam 1] failed!

Any help is really appreciated. I need those sexy timelapses! Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
WIP Work in Progress
Projects
None yet
Development

No branches or pull requests