Video4Linux (V4L for short) is a collection of
device driver
In the context of an operating system, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton. A driver provides a software interface to hardware devices, enabli ...
s and an
API
An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
for supporting realtime
video capture
Video capture is the process of converting an analog video signal—such as that produced by a video camera, DVD player, or television tuner—to digital video and sending it to local storage or to external circuitry. The resulting digital data ...
on
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
systems. It supports
USB
Universal Serial Bus (USB) is an industry standard, developed by USB Implementers Forum (USB-IF), for digital data transmission and power delivery between many types of electronics. It specifies the architecture, in particular the physical ...
webcam
A webcam is a video camera which is designed to record or stream to a computer or computer network. They are primarily used in Videotelephony, video telephony, live streaming and social media, and Closed-circuit television, security. Webcams can b ...
s,
TV tuners,
CSI cameras, and related devices, standardizing their output, so programmers can easily add video support to their applications.
Video4Linux is responsible for creating V4L2 device nodes aka a device file (/dev/videoX, /dev/vbiX and /dev/radioX) and tracking data from these nodes. The device node creation is handled by V4L device drivers using the video_device struct (v4l2-dev.h) and it can either be allocated dynamically or embedded in another larger struct.
Video4Linux was named after
Video for Windows
Video for Windows was a suite of video-playing and editing software introduced by Microsoft in 1992. A runtime version for viewing videos only was made available as a free add-on to Windows 3.1, which then became an integral component of Windows ...
(which is sometimes abbreviated "V4W"), but is not technically related to it.
While Video4Linux is only available on Linux, there is a compatibility layer available for
FreeBSD
FreeBSD is a free-software Unix-like operating system descended from the Berkeley Software Distribution (BSD). The first version was released in 1993 developed from 386BSD, one of the first fully functional and free Unix clones on affordable ...
called Video4BSD. This provides a way for many programs that depend on V4L to also compile and run on the FreeBSD operating system.
History
V4L had been introduced late into the 2.1.X development cycle of the Linux kernel. Retroactively being renamed to V4L1, it was dropped in kernel 2.6.38.
V4L2 is the second version of V4L. Video4Linux2 fixed some design bugs and started appearing in the 2.5.x kernels. Video4Linux2 drivers include a compatibility mode for Video4Linux1 applications, though the support can be incomplete and it is recommended to use Video4Linux1 devices in V4L2 mode. The project DVB-Wiki is now hosted on
LinuxTV
The LinuxTV project is an informal group of volunteers who develop software regarding digital television for the Linux kernel-based operating systems. The community develops and maintains the Digital Video Broadcasting (DVB) driver subsystem which ...
web site.
Some programs support V4L2 through the
media resource locator v4l2://
.
Software support
*
aMSN
*
Cheese (software)
*
Cinelerra
*
CloudApp
*
Ekiga
*
FFmpeg
FFmpeg is a free and open-source software project consisting of a suite of libraries and programs for handling video, audio, and other multimedia files and streams. At its core is the command-line ffmpeg tool itself, designed for processing vide ...
*
FreeJ
*
GStreamer
GStreamer is a Pipeline (computing), pipeline-based multimedia framework that links together a wide variety of media processing systems to complete complex workflows. For instance, GStreamer can be used to build a system that reads files in one f ...
*
Guvcview
*
kdetv
*
Kopete
*
Libav
*
Linphone
*
LiVES
Lives may refer to:
* The plural form of a ''life''
* Lives, Iran, a village in Khuzestan Province, Iran
* The number of lives in a video game
* ''Parallel Lives'', aka ''Lives of the Noble Greeks and Romans'', a series of biographies of famous m ...
* motion
*
MPlayer
MPlayer is a free and open-source media player software application. It is available for Linux, OS X and Microsoft Windows. Versions for OS/2, Syllable Desktop, Syllable, AmigaOS, MorphOS and AROS Research Operating System are also available. A ...
*
mpv
*
MythTV
*
Open Broadcaster Software
*
OpenCV
OpenCV (Open Source Computer Vision Library) is a Library (computing), library of programming functions mainly for Real-time computing, real-time computer vision. Originally developed by Intel, it was later supported by Willow Garage, then Itseez ...
*
Peek
Polyether ether ketone (PEEK) is a beige coloured organic thermoplastic polymer in the polyaryletherketone (PAEK) family, used in engineering applications. It was invented in November 1978 and brought to market in the early 1980s by part of I ...
*
PyGame
Pygame is a cross-platform set of Python modules designed for writing video games. It includes computer graphics and sound libraries designed to be used with the Python programming language.
History
Pygame was originally written by Pete Shinne ...
*
SDL3
*
Skype
Skype () was a proprietary telecommunications application operated by Skype Technologies, a division of Microsoft, best known for IP-based videotelephony, videoconferencing and voice calls. It also had instant messaging, file transfer, ...
*
Tvheadend
TVHeadend, sometimes TVH for short, is a client/server, server application that reads video streams from LinuxTV sources and publishes them as internet streams. It supports multiple inputs, a DVB-T USB tuner stick and a Sat-IP, Sat>IP tuner for i ...
*
VLC media player
VLC media player (previously the VideoLAN Client) is a free and open-source software, free and open-source, software portability, portable, cross-platform media player software and streaming media Server (computing), server developed by the Vide ...
*
xawtv
*
Xine
xine is a multimedia playback engine for Unix-like operating systems released under the GNU General Public License. xine is built around a shared library (xine-lib) that supports different frontend player applications. xine uses libraries fr ...
*
ZoneMinder
Criticism
Video4Linux has a complex negotiation process, which caused not all applications having support for all cameras.
See also
*
Direct Rendering Manager
The Direct Rendering Manager (DRM) is a subsystem of the Linux kernel responsible for interfacing with Graphics processing unit, GPUs of modern video cards. DRM exposes an Application programming interface, API that user-space programs can use t ...
– defines a kernel-to-user-space interface for access to graphics rendering and video acceleration
*
Mesa 3D
Mesa, also called Mesa3D and The Mesa 3D Graphics Library, is an open-source software, open source implementation of OpenGL, Vulkan, and other graphics API specifications. Mesa translates these specifications to vendor-specific graphics hardware ...
– implements video acceleration APIs
References
External links
media_treedevelopment git
v4l-utilsdevelopment git
Linux Media Infrastructure API (V4L2, DVB and Remote Controllers)Video4Linux-DVB wikiVideo4Linux resourcesVideo4BSD a Video4Linux emulation layer
Video For Linux (V4L) sample applicationsVideo For Linux 2 (V4L2) sample applicationAccess Video4Linux devices from Javakernel.orgOpenWrt WikiLinux UVC driver and tools USB video device class (UVC)
{{Linux kernel
Digital television
Free video software
Interfaces of the Linux kernel
Linux drivers
Linux kernel features
Television technology