Skip to content

mpromonet/v4l2tools

Repository files navigation

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)

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

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