Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo


Tree [cd7d95] master /

File Date Author Commit
common 2014-06-05 Paulo Assis Paulo Assis [c93265] fix V4L2_CTRL_TYPE_STRING detection
doxygen 2012-05-07 Paulo Assis Paulo Assis [f24149] Change libwebcam url in doxygen docs
libwebcam 2014-11-26 Paulo Assis Paulo Assis [a9762c] add dynctrl-logitech.h to install files
uvcdynctrl 2015-03-22 Paulo Assis Paulo Assis [cd7d95] [PATCH] work around filesystems setting d_type ...
.gitignore 2012-05-07 Paulo Assis Paulo Assis [adbfc2] Add a default .gitignore with some standard ent...
CMakeLists.txt 2012-05-08 Paulo Assis Paulo Assis [6c75aa] Cmake doesn't provide a uninstall target by def...
README.md unknown
cleandoc.sh 2010-01-05 Martin Rubli Martin Rubli [9b982a] Update Doxygen configuration and helper scripts
cmake_uninstall.cmake.in 2012-05-08 Paulo Assis Paulo Assis [914ffa] cmake_unistall.cmake.in: Remove comment
makedoc.sh 2010-01-05 Martin Rubli Martin Rubli [9b982a] Update Doxygen configuration and helper scripts

Read Me

Webcam Library and Tools


The webcam-tools package contains the following two components:
- libwebcam Webcam Library
- uvcdynctrl Manage dynamic controls in uvcvideo

This README file contains information that is common to all of the above
components. For component specific information please refer to the README
files in the libwebcam/ and uvcdynctrl/ subdirectories.


Note that the latest versions of the Webcam Library, its API documentation, and
the tools can always be found at the following address:



The Webcam Tools have the following external dependencies:

  • kernel headers (linux/videodev2.h and linux/uvcvideo.h)
  • LibXML 2 development files (usually from the libxml2-dev package)
  • gengetopt (optional)

gengetopt (optional):

The uvcdynctrl directory ships with the two files cmdline.[ch]. As long as
those are present, gnugetopt is not required. If they are missing, the build
process will try to create them with the help of gnugetopt.

V4L2 2.6.32 (optional):

To take advantage of the raw/string control support version 2.6.32 of V4L2
is required. To be more specific: V4L2_CTRL_TYPE_STRING needs to be supported.
Whether this is the case is determined at build time and if string control
support is not present in your version of V4L2 the corresponding feature
in libwebcam is disabled. During the build process one of the following
messages is displayed indicating the result of the test:

Your V4L2 has V4L2_CTRL_TYPE_STRING support. Enabling raw control support.

Your V4L2 does not have V4L2_CTRL_TYPE_STRING support. Compiling without
raw control support.

Note that the uvcvideo version that comes with 2.6.32 does not yet support
string controls. At the time of this writing support for it is being added
to the UVC driver, so future versions should support it, therefore allowing
V4L2 control values to be more than 4 bytes long.


The build system is based on CMake. Because of the way CMake works, Makefiles
do not ship with libwebcam, so you have to have CMake installed. Don't worry,
though, you are likely to have much fewer illegible error messages than with
the previous GNU Automake.

Once you have CMake installed you can build and install it by running the
following commands in the webcam-tools top level source directory:

mkdir build
cd build
cmake ..
make install (as root)

You need at least CMake 2.6, so if you are running Ubuntu 8.04 you need to
enable the hardy-backports repository in /etc/apt/sources.list and update
the 'cmake' package.

CMake defaults to installing binaries and libraries to /usr/local. To use a
different install prefix, you can add a command line parameter to 'cmake' like


If you prefer to leave the prefix alone, you should make sure that
/usr/local/bin is in your path and LD_LIBRARY_PATH contains the /usr/local/lib

Questions and feedback

Please feel free to post your questions and comments at the sourceforge
project page: