Linux Media Kernel Documentation

Linux Media Infrastructure API (V4L2, DVB and Remote Controllers)

Since Sept, 15 2009, V4L and DVB API's got integrated into a compendium that presents both API's, plus the IR input event mapping. The Linux Media Infrastructure API converges the common body of knowledge for the kernel to userspace API's used by media drivers.

Note: although it is possible to generate a PDF version of the specs, the generated PDF is not very useful, since some tables and pictures are larger than the output page. So the better is to use the browable documentation.

Linux DVB libdvbv5 Documentation

Since Sept, 2014, the documentation for the libdvbv5 userspace library is available at the libdvbv5 API documentation, also available in pdf format.

Complementary documents


A small collection of READMEs and FAQs is included in the Linux kernel source tree in linux/Documentation/dvb/ ( browse docs in the git repository).


A small collection of READMEs and FAQs is included in the Linux kernel source tree in linux/Documentation/video4linux/ ( browse docs in the git repository).

For developers, wrote a series of articles focusing at the development of a Linux V4L2 driver.

Legacy/outdated documents

The pre-merge V4L and DVB API specs are still available as separate documents. However, they are outdated and are kept here just as historic reference.


You can find the original PDF version of the Linux DVB API version 3 in the download area.


A browsable online version of Video4Linux2 API updated up to pre-kernel 2.6.32 is at here.

There's a V4L Drivers guide at here.

Video4Linux API version 1 is obsolete. Driver and application developers are requested to migrate their work to V4L2 API.

There's an effort in course to fully remove its support from the drivers and the compatibility kernel driver mode, targeted to kernels 2.6.36/2.6.37.

Compatibility with V4L1 applications, including binary-only applications will be provided by v4l-utils libv4l.