Video4Linux

Revision as of 13:48, 1 February 2025 by 117.61.110.186 (talk)
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

Template:Short description {{#invoke:Infobox|infobox}}Template:Template other{{#invoke:Check for unknown parameters | check | showblankpositional=1 | unknown = Template:Main other | preview = Page using Template:Infobox software with unknown parameter "_VALUE_"|ignoreblank=y | AsOf | author | background | bodystyle | caption | collapsetext | collapsible | developer | discontinued | engine | engines | genre | included with | language | language count | language footnote | latest preview date | latest preview version | latest release date | latest release version | latest_preview_date | latest_preview_version | latest_release_date | latest_release_version | licence | license | logo | logo alt | logo caption | logo upright | logo size | logo title | logo_alt | logo_caption | logo_upright | logo_size | logo_title | middleware | module | name | operating system | operating_system | other_names | platform | programming language | programming_language | released | replaced_by | replaces | repo | screenshot | screenshot alt | screenshot upright | screenshot size | screenshot title | screenshot_alt | screenshot_upright | screenshot_size | screenshot_title | service_name | size | standard | title | ver layout | website | qid }}Template:Main other Video4Linux (V4L for short) is a collection of device drivers and an API for supporting realtime video capture on Linux systems.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> It supports USB webcams, 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 (which is sometimes abbreviated "V4W"), but is not technically related to it.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }} Overview of the V4L2 driver framework.</ref><ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

While Video4Linux is only available on Linux, there is a compatibility layer available for FreeBSD called Video4BSD. This provides a way for many programs that depend on V4L to also compile and run on the FreeBSD operating system.

HistoryEdit

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.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

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 web site.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

Some programs support V4L2 through the media resource locator v4l2://.

Software supportEdit

Template:Div col

|CitationClass=web }}</ref>

|CitationClass=web }}</ref>

Template:Div col end

CriticismEdit

Video4Linux has a complex negotiation process, which caused not all applications having support for all cameras.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

See alsoEdit

  • Direct Rendering Manager – defines a kernel-to-user-space interface for access to graphics rendering and video acceleration
  • Mesa 3D – implements video acceleration APIs

ReferencesEdit

Template:Reflist

External linksEdit

Template:Linux kernel