I need to use the 64MP camera to capture mjpeg pictures. I have a IMX519 and this feature works great.
It woks on the 64MP but only at 16MP resolution. If I up it to the maximum I get the message below. In short it is the “ERROR: *** failed to allocate capture buffers ***” error.
I Have a 4 GB pi 4B and I’ve switched off desktop. Has it simply run out of memory. Would an 8GB pi work? Could anyone test it? Hopefully there is a simple work around otherwise the purchase has been wasted.
Thanks in advance
libcamera-vid -t 500 --width 9152 --height 6944 --codec mjpeg -o test%05d.jpeg --segment 1
rm: cannot remove ‘test*.jpeg’: No such file or directory
WARNING: consider inline headers with ‘pause’/split/segment/circular
Preview window unavailable
[2:19:17.431690372] [1748] INFO Camera camera_manager.cpp:293 libcamera v0.0.0+3572-e13ccdd5
[2:19:17.435043287] [1750] WARN CameraSensorProperties camera_sensor_properties.cpp:163 No static properties available for ‘arducam_64mp’
[2:19:17.435086268] [1750] WARN CameraSensorProperties camera_sensor_properties.cpp:165 Please consider updating the camera sensor properties database
[2:19:17.435594912] [1750] ERROR CameraSensor camera_sensor.cpp:591 ‘arducam_64mp 10-001a’: Camera sensor does not support test pattern modes.
[2:19:17.457758695] [1750] WARN RPI raspberrypi.cpp:1263 Mismatch between Unicam and CamHelper for embedded data usage!
[2:19:17.458371115] [1750] ERROR DelayedControls delayed_controls.cpp:87 Delay request for control id 0x009a090a but control is not exposed by device /dev/v4l-subdev0
[2:19:17.458673668] [1750] INFO RPI raspberrypi.cpp:1386 Registered camera /base/soc/i2c0mux/i2c@1/arducam_64mp@1a to Unicam device /dev/media3 and ISP device /dev/media0
[2:19:17.459374439] [1748] INFO Camera camera.cpp:1029 configuring streams: (0) 9152x6944-YUV420
[2:19:17.459843158] [1750] INFO RPI raspberrypi.cpp:764 Sensor: /base/soc/i2c0mux/i2c@1/arducam_64mp@1a - Selected sensor format: 9152x6944-SBGGR10_1X10 - Selected unicam format: 9152x6944-pBAA
[2:19:17.649313259] [1750] ERROR V4L2 v4l2_videodevice.cpp:1218 /dev/video14[16:cap]: Not enough buffers provided by V4L2VideoDevice
ERROR: *** failed to allocate capture buffers ***
pi@raspberrypi4n:~/pics $
I don’t have an 8GB pi to hand and can’t get one due to chip shortages. Also I need to know it will work and if you say it works on an 4GB I need to know what I’m doing wrong. I followed the instructions using a brand new image.
I would try to debug it but I can’t get the source code for libcamera to work with the 64MP although I can get it to work with imx519. I’ve even used an image from this forum for OctoPi and this also showed the same error.
Tried this but no luck. Could someone upload an image where it works then I can try this and compare the difference to my build. Note model 4B 4GB
pi@raspberrypi4n:~ $ cat /proc/device-tree/model
Raspberry Pi 4 Model B Rev 1.4
The maximum resolution of 64MP cannot be run at preview.
Libcamera-Still has limited to a maximum of 16MP during preview, and switches to 64MP resolution when saving the image.
Libcamera-Vid does not do this limit, so you will report this error when you run with a maximum resolution. The resolution it previews is the resolution of the saving image you set.
Ok, can I just confirm what you are saying. libcamera-vid extracts it pictures using a preview stream (which I assume uses a lot of buffer space) and so does not support the maximum size supported by the 64mp camera on the pi.
Is this a limitiation of the pi 4GB or does it apply to the 8gb version as well? Is there anyway round this restriction? i.e. some future update by you. If not then I feel this should be made clear as I seem to have wasted my money. Sinlge stills are not what I’m after and severly limit the use of this camera. As it can’t support the Hi res video mode either it then real limits its use on the pi. Taking a single still takes over 1 second so the 3 frames per second indicated can not be achived on th pi.
Just thought I would add this update as I’ve found a solution/work around. You can reduce the number of buffers required by specifiying --buffer-count. A value of 2 for the highest resolution or 3 for 8000x6000 works. Performance then becomes an issue but at least it works.