Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mpromonet/v4l2tools
V4L2 tools using V4L2 C++ wrapper
https://github.com/mpromonet/v4l2tools
c-plus-plus v4l2 v4l2-device
Last synced: 8 days ago
JSON representation
V4L2 tools using V4L2 C++ wrapper
- Host: GitHub
- URL: https://github.com/mpromonet/v4l2tools
- Owner: mpromonet
- License: unlicense
- Created: 2015-01-24T14:45:01.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2024-02-04T20:38:33.000Z (12 months ago)
- Last Synced: 2025-01-02T23:10:08.955Z (15 days ago)
- Topics: c-plus-plus, v4l2, v4l2-device
- Language: C
- Homepage:
- Size: 354 KB
- Stars: 123
- Watchers: 11
- Forks: 50
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/0c2b3215b77a4a6f82d977986bca7842)](https://www.codacy.com/app/michelpromonet_2643/v4l2tools?utm_source=github.com&utm_medium=referral&utm_content=mpromonet/v4l2tools&utm_campaign=badger)
[![Build status](https://travis-ci.org/mpromonet/v4l2tools.png)](https://travis-ci.org/mpromonet/v4l2tools)
[![CircleCI](https://circleci.com/gh/mpromonet/v4l2tools.svg?style=shield)](https://circleci.com/gh/mpromonet/v4l2tools)
[![CirusCI](https://api.cirrus-ci.com/github/mpromonet/v4l2tools.svg?branch=master)](https://cirrus-ci.com/github/mpromonet/v4l2tools)
[![Snap Status](https://snapcraft.io//v4l2tools/badge.svg)](https://snapcraft.io/v4l2tools)
[![GithubCI](https://github.com/mpromonet/v4l2tools/workflows/C/C++%20CI/badge.svg)](https://github.com/mpromonet/v4l2tools/actions)[![Docker Pulls](https://img.shields.io/docker/pulls/mpromonet/v4l2tools.svg)](https://hub.docker.com/r/mpromonet/v4l2tools/)
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 deviceTools 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