---
name: "video"
section: "4"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd", "openbsd"]
url: "https://new.carta.tech/video"
---

# video(4)

video capture framework

## NAME

**video** – video capture framework

## SYNOPSIS

**device** **video**

**#include \<sys/videoio.h\>**

## DESCRIPTION

The **video** framework provides a common interface for video capture devices. It creates */dev/video%d* device nodes and handles buffer management, memory mapping, and ioctl dispatch on behalf of hardware drivers.

Userland applications access capture devices through the **Video4Linux2** (V4L2) ioctl interface. The framework translates V4L2 requests into driver callbacks, so hardware drivers do not implement ioctls directly.

The following V4L2 ioctls are supported:

- VIDIOC\_QUERYCAP

- VIDIOC\_ENUM\_FMT, VIDIOC\_G\_FMT, VIDIOC\_S\_FMT, VIDIOC\_TRY\_FMT

- VIDIOC\_ENUM\_FRAMESIZES, VIDIOC\_ENUM\_FRAMEINTERVALS

- VIDIOC\_G\_PARM, VIDIOC\_S\_PARM

- VIDIOC\_ENUMINPUT, VIDIOC\_G\_INPUT, VIDIOC\_S\_INPUT

- VIDIOC\_QUERYCTRL, VIDIOC\_G\_CTRL, VIDIOC\_S\_CTRL

- VIDIOC\_REQBUFS, VIDIOC\_QUERYBUF, VIDIOC\_QBUF, VIDIOC\_DQBUF

- VIDIOC\_STREAMON, VIDIOC\_STREAMOFF

Two capture modes are supported:

- **read**

  Frames are obtained by calling [read(2)](/read/2.md) on the device node. Streaming starts automatically on the first read.

- **mmap**

  Buffers are allocated with VIDIOC\_REQBUFS, mapped with [mmap(2)](/mmap/2.md), and cycled with VIDIOC\_QBUF and VIDIOC\_DQBUF. Streaming is started and stopped with VIDIOC\_STREAMON and VIDIOC\_STREAMOFF.

Up to 8 buffers may be allocated per device. Buffer memory remains valid until the last mapping is unmapped, even if the device is closed or detached.

## SEE ALSO

[mmap(2)](/mmap/2.md), [read(2)](/read/2.md), [fwcam(4)](/fwcam/4.md), [uvideo(4)](/uvideo/4.md)

## HISTORY

The **video** framework first appeared in FreeBSD 16.0.

## AUTHORS

Abdelkader Boudih ⟨*freebsd@seuros.com*⟩
