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 usingv4l2-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