After installing uv4l as instructed here : http://www.linux-projects.org/modules/sections/index.php?op=viewarticle&artid=14

I managed to get pictures using dd as the same page suggests : dd if=/dev/video0 of=snapshot.jpeg bs=11M count=1

However all pictures were 640X480. I found the configuration file and set it to the maximum (2592X1944) and also set fps to 10 down from 30 (i'm only interested in pictures, not video, and wanted to make sure 30fps wouldn't limit the resolution). I found the maximum supported resolution here : http://www.raspberrypi.org/new-camera-mode-released/

However after doing that, images went up to 1920X1080 but no higher, is there anything i can do or is this a limitation of uv4l? If it is, is there an API i could use to directly interact with the camera?

2 Answers 2


There are several APIs available for direct camera interaction. In C you have a choice of the MMAL API, which is what the official demo apps (raspistill and raspivid) are based upon (their source code is a good intro to using MMAL), or OpenMAX. I've heard the latter is a bit harder to work with, but it is an open API while MMAL is defined by Broadcom. And finally, there's the V4L interface which you've already been playing with (but as you noted it's rather limited compared to the direct APIs).

For Python, there's the picamera library (full disclosure: I'm the author of that one).

For JavaScript, there's a set of node.js bindings.

On the other hand, if you're looking for a web interface there's this project. I'm not sure it has a RESTful interface (I haven't read through that enormous thread fully yet!) but given its web based it probably wouldn't be too hard to stick one on top.

  • Thanks for the information Dave, got similar info about MMAL on the forum today, what does picamera use? Does it use MMAL too and do you think it would fit my use case as is? Commented Oct 6, 2014 at 13:14
  • picamera does indeed rely on MMAL (via Python's ctypes module). If your use-case is simply capturing high resolution JPEGs on demand then yes, it should fit easily (have a look at the basic recipes chapter in the docs for some ideas).
    – Dave Jones
    Commented Oct 6, 2014 at 13:19

To answer your question, UV4L supports both MJPEG video up to 1920x1080 and JPEG Stills up to 2592x1944. You were using MJPEG video (--encoding=mjpeg). Try to load the driver with the --encoding=jpeg command line option instead to get 2592x1944 pictures. There is also a new plugin for the driver named uv4l-server which provides a web interface to set image properties while streaming with any application and also a page showing the video stream as mjpeg video, continuous jpeg still or h264.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.