Введение

Драйверы устройств для захвата видео в реальном времени

Video4Linux (сокращенно V4L) — это набор драйверов устройств и API для поддержки захвата видео в реальном времени в системах Linux. Он поддерживает множество USB-веб-камер, ТВ-тюнеров и связанных устройств, стандартизируя их вывод, что позволяет программистам легко добавлять поддержку видео в свои приложения. Video4Linux отвечает за создание узлов устройств V4L2, также известных как файлы устройств (/dev/videoX, /dev/vbiX и /dev/radioX) и обработку данных, поступающих из этих узлов. Создание узлов устройств осуществляется драйверами устройств V4L с использованием структуры видеоустройства (v4l2_dev.h), которая может быть выделена динамически или встроена в другую, более крупную структуру. Video4Linux был назван по аналогии с Video for Windows (иногда сокращаемым до "V4W"), однако технически не связан с ним. В то время как Video4Linux доступен только в Linux, для FreeBSD существует уровень совместимости под названием Video4BSD, позволяющий многим программам, зависящим от V4L, компилироваться и запускаться в операционной системе FreeBSD.

История

V4L был представлен на позднем этапе цикла разработки 2.1.x ядра Linux. Позднее переименованный в V4L1, он был удален из ядра 2.6.38. V4L2 – это вторая версия V4L. Video4Linux2 исправил некоторые недостатки проектирования и начал появляться в ядрах 2.5.x. Драйверы Video4Linux2 включают режим совместимости для приложений Video4Linux1, хотя поддержка может быть неполной, и рекомендуется использовать устройства Video4Linux1 в режиме V4L2. Проект DVB Wiki теперь размещен на веб-сайте LinuxTV. Некоторые программы поддерживают V4L2 посредством указателя медиаресурсов v4l2://.

Критика

Video4Linux имеет сложный процесс согласования, из-за чего не все приложения поддерживают все камеры.