/v4l2tools

V4L2 tools using V4L2 C++ wrapper

Primary LanguageC++The UnlicenseUnlicense

Codacy Badge Build status CircleCI CirusCI Snap Status GithubCI

Docker Pulls

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 & v4l2uncompress_jpeg)

Tools

  • v4l2copy :

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

  • v4l2convert_YUV :

read an YUV format from a V4L2 capture device, convert to an other YUV format 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

  • v4l2uncompress_jpeg :

read JPEG format from a V4L2 capture device, uncompress in JPEG format using libjpeg 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

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