Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Video4Linux
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Device drivers for real-time video capture}} {{Infobox software | name = Video4Linux | title = Video4Linux | logo = <!-- Image name is enough --> | logo caption = | logo_size = | logo_alt = | screenshot = <!-- Image name is enough --> | caption = | screenshot_size = | screenshot_alt = | collapsible = | author = | developer = | released = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} --> | discontinued = | latest release version = | latest release date = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} --> | latest preview version = | latest preview date = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} --> | frequently updated = <!-- DO NOT include this parameter unless you know what it does --> | programming language = [[C (programming language)|C]] | operating system = [[Linux]] | platform = [[Linux kernel]] | size = | language = | language count = <!-- DO NOT include this parameter unless you know what it does --> | language footnote = | genre = | repo = {{URL|https://git.linuxtv.org/v4l-utils.git}} | license = [[GNU General Public License]] | website = {{URL|http://www.linuxtv.org/}} }} '''Video4Linux''' ('''V4L''' for short) is a collection of [[device driver]]s and an [[application programming interface|API]] for supporting realtime [[video capture]] on [[Linux]] systems.<ref>{{cite web |url=https://fosdem.org/2014/schedule/event/v4l_intro/ |title=An Introduction to the Video4Linux Framework: How to write a video capture driver |date=2014-02-02 |access-date=2014-02-16}}</ref> It supports [[USB]] [[webcam]]s, [[TV tuner card|TV tuners]], [[Camera Serial Interface|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>{{cite web |url=https://www.kernel.org/doc/Documentation/video4linux/v4l2-framework.txt |title=Overview of the V4L2 driver framework |access-date=2013-12-04 |url-status=dead |archive-url=https://web.archive.org/web/20140221165356/https://www.kernel.org/doc/Documentation/video4linux/v4l2-framework.txt |archive-date=2014-02-21 }} Overview of the V4L2 driver framework.</ref><ref>{{cite web| url=https://events.linuxfoundation.org/images/stories/pdf/lceu2012_debski.pdfVideo4Linux2 | title=Path to a Standardized Video Codec API |archive-url=https://web.archive.org/web/20140106032317/https://events.linuxfoundation.org/images/stories/pdf/lceu2012_debski.pdf |archive-date=2014-01-06 }}</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. == 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.<ref>{{Cite web |title=gspca - LinuxTVWiki |url=https://linuxtv.org/wiki/index.php/Gspca |access-date=2024-01-12 |website=[[LinuxTV]]}}</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>{{Cite web |last=Schimek |first=Michael H |title=Video for Linux Two API Specification |url=https://www.linuxtv.org/downloads/legacy/video4linux/API/V4L2_API/spec-single/v4l2.html |access-date=2024-01-12 |website=[[LinuxTV]]}}</ref> Some programs support V4L2 through the [[media resource locator]] <code>v4l2://</code>. == Software support == {{div col|colwidth=20em}} * [[aMSN]] * [[Cheese (software)]] * [[Cinelerra]] * [[CloudApp]] * [[Ekiga]] * [[FFmpeg]] * [[FreeJ]] * [[GStreamer]] * [[Guvcview]] * [[kdetv]] * [[Kopete]] * [[Libav]] * [[Linphone]] * [[LiVES]] * motion * [[MPlayer]] * [[mpv (media player)|mpv]] * [[MythTV]] * [[Open Broadcaster Software]]<ref>{{Cite web|url=https://obsproject.com/|title=Open Broadcaster Software | OBS|website=obsproject.com}}</ref> * [[OpenCV]] * [[Peek (software)|Peek]] * [[PyGame]] * [[Simple DirectMedia Layer|SDL3]]<ref>{{Cite web|url=https://github.com/libsdl-org/SDL/pull/5477|title=Add video capture API proposal by 1bsyl|website=[[GitHub]] }}</ref> * [[Skype]] * [[Tvheadend]] * [[VLC media player]] * [[xawtv]] * [[Xine]] * [[ZoneMinder]] {{div col end}} == Criticism == Video4Linux has a complex negotiation process, which caused not all applications having support for all cameras.<ref>{{Cite web |last=Corbet |first=Jonathan |date=2019-07-25 |title=Access to complex video devices with libcamera |url=https://lwn.net/Articles/794555/ |access-date=2023-02-06 |website=[[LWN.net]]}}</ref> == See also == * [[Direct Rendering Manager]] β defines a kernel-to-user-space interface for access to graphics rendering and video acceleration * [[Mesa 3D]] β implements video acceleration APIs == References == {{Reflist|2}} == External links == *[https://git.linuxtv.org/media_tree.git/tree media_tree] development git *[https://git.linuxtv.org/v4l-utils.git/tree v4l-utils] development git *[https://linuxtv.org/downloads/v4l-dvb-apis/ Linux Media Infrastructure API (V4L2, DVB and Remote Controllers)] *[https://www.linuxtv.org/wiki/index.php/Main_Page Video4Linux-DVB wiki] * [http://www.exploits.org/v4l Video4Linux resources] * [http://video4bsd.sourceforge.net/ Video4BSD], a Video4Linux emulation layer * [https://web.archive.org/web/20110707012535/http://alumnos.elo.utfsm.cl/~yanez/video-for-linux-sample-programs/ Video For Linux (V4L) sample applications] * [https://web.archive.org/web/20110707012738/http://alumnos.elo.utfsm.cl/~yanez/video-for-linux-2-sample-programs/ Video For Linux 2 (V4L2) sample application] * [https://archive.today/20130103002424/http://v4l4j.googlecode.com/ Access Video4Linux devices from Java] * [https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/log/?qt=grep&q=v4l kernel.org] * [http://wiki.openwrt.org/doc/howto/usb.video OpenWrt Wiki] * [http://www.ideasonboard.org/uvc/ Linux UVC driver and tools], [[USB video device class]] (UVC) {{Linux kernel}} [[Category:Digital television]] [[Category:Free video software]] [[Category:Interfaces of the Linux kernel]] [[Category:Linux drivers]] [[Category:Linux kernel features]] [[Category:Television technology]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite web
(
edit
)
Template:Div col
(
edit
)
Template:Div col end
(
edit
)
Template:Infobox software
(
edit
)
Template:Linux kernel
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)