Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

mpromonet/v4l2tools

Repository files navigation

v4l2tools

This is simple V4L2 tools based on libv4l2cpp

Dependencies

  • liblog4cpp5-dev (optional)
  • libvpx-dev (for v4l2compress)
  • libx264-dev (for v4l2compress)
  • libx265-dev (for v4l2compress)
  • libjpeg-dev (for v4l2compress)

Tools

  • v4l2copy :

read from a V4L2 capture device and write to a V4L2 output device

  • v4l2compress :

read YUV from a V4L2 capture device, compress in VP8/VP9/H264/HEVC/JPEG format and write to a V4L2 output device
read JPEG format from a V4L2 capture device, uncompress in JPEG format and write to a V4L2 output device

  • v4l2dump :

read from a V4L2 capture device and print to output frame information (work with H264 & HEVC)

  • v4l2source_yuv :

generate YUYV frames and write to a V4L2 output device

Tools for Raspberry

  • v4l2grab_h264 :

grab raspberry pi screen, compress in H264 format using OMX and write to a V4L2 output device

  • v4l2display_h264 :

read H264 from V4L2 capture device, uncompress and display using OMX

  • v4l2compress_omx :

read YUV from a V4L2 capture device, compress in H264 format using OMX and write to a V4L2 output device make sure the v4l2 source supports the correct pixel format. This can be configured for device 0 using v4l2-ctl -d 0 -v width=640,height=480,pixelformat=YUYV -V. Then check it was applied correctly using v4l2-ctl --all

  • v4l2libcamera :

read camera using libcamera and write to a V4L2 output device, byt default codec is H264 (see https://www.raspberrypi.com/documentation/computers/camera_software.html#codec) options are standard options of libcamera-apps, -o was used to set V4L2 device to write to (for instance /dev/video30).

Build

make

Install

make install

Using Docker image

You can expose V4L2 devices from your host using :

docker run --device=/dev/video0 --device=/dev/video1 -it mpromonet/v4l2tools

The container entry point is the v4l2tools application, then you can :

  • get the help using :

    docker run -it mpromonet/v4l2tools -h
  • run the container specifying some paramaters :

    docker run --device=/dev/video0 --device=/dev/video1 -it mpromonet/v4l2tools -fH264

About

V4L2 tools using V4L2 C++ wrapper

Topics

Resources

Readme

License

Unlicense license

Code of conduct

Code of conduct

Contributing

Contributing

Stars

Watchers

Forks

Packages

Contributors