This is simple V4L2 tools based on libv4l2cpp
- liblog4cpp5-dev (optional)
- libvpx-dev (for v4l2compress)
- libx264-dev (for v4l2compress)
- libx265-dev (for v4l2compress)
- libjpeg-dev (for v4l2compress & v4l2uncompress_jpeg)
- 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
- 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
make install
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