Linux Media Kernel Documentation

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

The Linux Media Infrastructure API converges the kernel to userspace APIs used on media drivers. It has 4 parts:

Please notice that audio input/output on media devices use the ALSA API.


1) 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.

2) 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.

Media Kernel developers Documentation

The Linux Kernel Device driver now has a chapter with the Media devices kABI It is also splitted into 4 parts:

NOTE: Please notice that this is a work in progress. There are still several things not properly documented. Feel free to contribute on enhancing this documentation.

Linux DVB libdvbv5 Documentation

The libdvbv5 API documentation, available since Sept, 2014, documents the libdvbv5 userspace library. It is 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.

Legacy DVB documents

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

Legacy Video4Linux documents

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.