Home

v4L

Video4Linux (v4L) is the Linux kernel subsystem and user-space interface for video capture and output devices, including webcams, analog and digital capture cards, and TV tuners. It provides drivers, hardware abstraction, and APIs that allow applications to acquire video frames and drive display devices.

The original Video4Linux API (v4L) emerged in the late 1990s and evolved into Video4Linux2 (v4L2), the current

Architecture and operation: A video device is exposed as a character device. The kernel side implements a

Usage and tooling: Common tools include v4l-utils (v4l2-ctl, v4l2-req-capabilities) to query and configure devices, and libraries

Status and scope: V4L2 remains the standard interface for Linux video devices. The term v4L is sometimes

kernel
API.
V4L2
standardizes
device
nodes
under
/dev/videoN,
adds
a
streaming
I/O
model,
a
richer
control
framework,
and
a
more
flexible
media
topology.
While
v4L
is
still
referenced
for
compatibility,
most
modern
drivers
implement
v4L2.
driver
and
a
v4l2
core
that
handles
formats,
buffers,
and
event
notification.
Userspace
interacts
through
ioctl
calls
(via
libraries
such
as
libv4l2
or
through
application
APIs).
Buffers
are
exchanged
between
driver
and
user
space
either
by
memory
mapping
(mmap),
user
pointers,
or,
for
legacy
setups,
read
calls.
Formats
can
include
raw
video
as
well
as
any
supported
compressed
variants.
such
as
libv4l2.
Applications
such
as
FFmpeg,
GStreamer,
and
OBS
use
V4L2
for
capture
and
input.
The
Video4Linux
framework
also
integrates
with
the
Linux
media
controller
API
to
support
complex
devices
with
multiple
subdevices.
used
generically
to
refer
to
Video4Linux
concepts,
but
modern
development
relies
on
v4L2.