VirtualVideo
VirtualVideo allows you to write simple programs that feed images to a v4l2loopback device.
Prerequisites
- v4l2loopback
- ffmpeg
Guide
Install virtualvideo with:
pip3 install --user virtualvideo
Install ffmpeg(preferably with your systems packagemanager) and v4l2loopback. Installing v4l2loopback can be tricky and i suggest using dkms to install/build it. (If you're using Arch-Linux theres an AUR Package for you: v4l2loopback-dkms).
Example
showFish.py shows how to use the virtualvideo package.
Running the Example
To run the example:
$ sudo modprobe v4l2loopback video_nr=XX exclusive_caps=1
$ cd examples
$ python3 showFish.py
Adjust the fvd.init_output(42, 1280, 720, fps=30) line in showFish.py to use the same video_nr as
you used to initialise the v4l2loopback device. Or use video_nr=42 when initing v4l2loopback.
Then you should be able to open/view the webcam for example with vlc (or on webcamtest.com). You then should see a red goldfish getting blurred and unblurred. See example/README.md for a gif.
Errorhandling:
-
Check if the user is allowed to access the device, otherwise change permissions of
/dev/videoXX -
Use following code to check if ffmpeg is working properly
$ ffmpeg -loop 1 -re -i foo.jpg -f v4l2 -vcodec rawvideo -pix_fmt yuv420p /dev/videoXXX -
If not checkout the v4l2loopback github and wiki
-
If the image is distorted try unloading and loading the module, maybe check
$cat /sys/devices/virtual/video4linux/video69/formatfor the format you should use -
If you want to change the format or the pixel format unload the module
-
If you cannot unload the module, check processes that access /dev/videoXX ($ fuser /dev/videoXX) and kill them
-
If you get an pixel_format not supported error, try yuyv422 as pixelformat e.g.:
fvd.init_output(...,pix_fmt="yuyv422")or$ ffmpeg -loop 1 -re -i foo.jpg -f v4l2 -vcodec rawvideo -pix_fmt yuyv422 /dev/videoXXX
Credits
This Module relies heavily on v4l2loopback and ffmpeg-python
The fish.jpg used in the examples is "Goldfish" by Melinda van den Brink
Release files for virtualvideo 0.1.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| virtualvideo-0.1.6.tar.gz | 4.3 kB | Details |
Release files / virtualvideo-0.1.6.tar.gz
| Download URL | virtualvideo-0.1.6.tar.gz |
|---|---|
| Size | 4.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2bc8ee96a5155847f10dd269bf37fb46540cf3e23b7c5842810dfa2f80adc7a5
|
|
BLAKE2b-256 checksum How to use checksums |
e2326912bee183e6e48470e4515a7706d1d0f9fdef71f67a5662323396fb9637
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.20.1 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.8.3
|