Video4Linux
| Video4Linux | |
| Programozási nyelv | C |
| Operációs rendszer | GNU/Linux |
| Kategória | szabad szoftver |
| Licenc | GNU General Public License |
| A Video4Linux weboldala | |
A Video4Linux, röviden V4L, illetve annak továbbfejlesztett változata, a V4L2 (Video4Linux2) a Linux operációs rendszer videóeszköz-kezelő alrendszere és programozási felülete (API).[1] Feladata, hogy egységes módon biztosítsa a különféle videóeszközök — webkamerák, USB-s videó-digitalizálók, TV-tuner kártyák és egyéb képrögzítő eszközök — elérését a felhasználói alkalmazások számára. A Video4Linux a Linux kernel része, és széles körben használják a videófelvételre, streamelésre és képfeldolgozásra szolgáló szoftverek. A Video4Linux elnevezés a „Video for Windows” kifejezés mintájára született, azonban nem áll közvetlen műszaki kapcsolatban a Microsoft Windows videókezelő rendszereivel. A V4L2 és a V4L2 a Linux kernel licencét követi, azaz GNU General Public License v2 (GPL-2.0) licenc alatt lett közzétéve.
Története
[szerkesztés]Eső változata a Linux 2.1.x fejlesztési ágában jelent meg. Az eredeti API idővel nehezen bővíthetőnek bizonyult, ezért létrejött a Video4Linux2 (V4L2), amely egységesebb eszközmodellt vezetett be, rugalmasabb formátumkezelést tett lehetőv és javította az eredeti V4L tervezési hiányosságait. A V4L2 fejlesztését 1999-ben kezdte el Bill Dirks. Az API-t 2002-ben ismét felülvizsgálták, mielőtt beépítették a Linux 2.5.x/2.6 kernelt. Napjainkban a Linux rendszerek szinte kizárólag a V4L2 interfészt használják, az eredeti V4L gyakorlatilag kifutottnak tekinthető. A Video4Linux és Video4Linux2 alrendszer fejlesztését és karbantartását a kezdetektől a LinuxTV közösség végzi.
Működési jellemzői
[szerkesztés]A Video4Linux a Linux kernelben működik. Rendszerhívásokon (ioctl) keresztül működik, ezért zárt forrású programok is használhatják.
Az egyes videóeszközökhöz eszközfájlokat rendel, jellemzően az alábbi formában:
/dev/video0 /dev/video1 ... /dev/video*
A felhasználói programok ezeken az eszközfájlokon keresztül érhetik el a videóadatokat. A V4L2 szabványos módon kezeli többek között:
- a képfelbontást,
- a képkockasebességet (FPS),
- a pixel- és tömörítési formátumokat,
- a streaming és bufferelési mechanizmusokat.
A Video4Linux elsősorban az alábbi típusú eszközök kezelésére szolgál:
- USB webkamerák (UVC-kompatibilis eszközök),
- USB-s és PCI-os videódigitalizálók,
- TV-tuner és capture kártyák,
- egyes beágyazott rendszerek videóbemenetei.
A Video4Linux és Video4Linux2-t túlnyomórészt C nyelven írták, miután a Linux kernel szinte teljes egészében C-ben íródott és a V4L2 a kernel része, és a hardverközeli, alacsony szintű vezérléshez eleve a C használata a legalkalmasabb. Nem minden kameratípus használja közvetlenül a V4L2-t, például egyes beágyazott kamerák (pl. MIPI-CSI interfészen csatlakozó szenzorok) külön kezelőrétegen keresztül érhetők el. A BSD rendszerekhez rendelkezésre áll a Video4BSD kompatibilitási réteg, amely lehetővé teszi a V4L-t használó linuxos alkalmazások futtatását. Egyes Linux disztribúciókban elérhető a libcamera kamera-kezelő keretrendszer, amely bizonyos eszközök esetén kiváltja vagy kiegészíti a V4L2-t. Például a Raspberry Pi OS-ban alapértelmezetten telepítve van a libcamera, amely az operációs rendszer hivatalos kamera stackja és kezeli a Raspberry Pi-hez csatolható MIPI-CSI kamerát. Az elterjedt disztribúciókban (Ubuntu, Debian, Fedora stb.) nincs előre telepítve, de csomagkezelőből (pl. apt, pacman) könnyen telepíthető.
Diagnosztikai és vezérlő eszköz
[szerkesztés]A v4l2-ctl parancssoros diagnosztikai és vezérlő eszköz áll rendelkezésre a Video4Linux2 rendszerhez. Ez valójában nem alkalmazás, hanem egy alacsony szintű interfész a V4L2 kernel API-hoz. Karbantartása és fejlesztése szintén a LinuxTV közösséghez kötődik, a v4l-utils csomag részeként.
Szoftvertámogatás
[szerkesztés]Számos linuxos multimédiás és képfeldolgozó alkalmazás használja a Video4Linux2 interfészt. A V4L2 biztosítja, hogy ezek a programok egységes módon férjenek hozzá a különböző gyártók videóeszközeihez.
V4L2-t használó fontosabb alkalmazások:
Jegyzetek
[szerkesztés]- ↑ An Introduction to the Video4Linux Framework (angol nyelven). archive.fosdem.org. (Hozzáférés: 2026. február 5.)
Források
[szerkesztés]- Deepak, Deepesh: V4L: A Complete Practical Tutorial (angol nyelven). Medium, 2023. május 31. (Hozzáférés: 2026. február 5.)
- Development: Video4Linux APIs. www.linuxtv.org. (Hozzáférés: 2026. február 5.)