webcam-loopback-manipulation-screensharing-and-stuff git · main
git clone https://git.christianimmanuel.de/linux-system/webcam-loopback-manipulation-screensharing-and-stuff.gitwget https://git.christianimmanuel.de/linux-system/webcam-loopback-manipulation-screensharing-and-stuff/archive/webcam-loopback-manipulation-screensharing-and-stuff.tar.gzNOTICE raw
vcam — Linux virtual webcam pipeline
Copyright (C) 2026 the vcam authors
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License, version 2, as published
by the Free Software Foundation. See the LICENSE file for the full text.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
more details.
Third-party components
======================
vcam links against and/or invokes the following components at runtime. Their
licenses are compatible with GPL-2.0; none of them impose additional
restrictions on vcam's own source.
FFmpeg (libavcodec, libavformat, libavutil, libswscale, libavdevice)
Licensed under the GNU LGPL-2.1-or-later, with some components under
GPL-2.0-or-later depending on the build configuration. FFmpeg is used
here for MJPEG decoding (linked libraries) and, for the optional
recording feature, by invoking the `ffmpeg` binary as a separate
process. https://ffmpeg.org/legal.html
NOTE ON DISTRIBUTION: if you distribute a build of vcam together with
an FFmpeg that was compiled with --enable-gpl and/or --enable-nonfree
(for example, one including libx264 or libfdk-aac), the combined work
must satisfy the terms of GPL-2.0 for the linked GPL parts, and
--enable-nonfree builds are not redistributable at all. vcam itself is
plain GPL-2.0 and links only the default LGPL FFmpeg libraries; the
recording feature shells out to whatever `ffmpeg` is found on PATH.
libpng
Licensed under the PNG Reference Library License (permissive,
GPL-compatible). Used for loading PNG image overlays.
http://www.libpng.org/pub/png/src/libpng-LICENSE.txt
arecord / ALSA (invoked as a separate process for audio capture)
ALSA utilities are licensed under GPL-2.0; libasound under LGPL-2.1.
vcam invokes the `arecord` binary as a child process during
recording. https://www.alsa-project.org
wf-recorder (invoked as a separate process for screen capture)
Licensed under the MIT license (permissive, GPL-compatible). vcam
spawns `wf-recorder` as a child process to capture a Wayland screen
region for the `--screen` overlay; frames are piped back to vcam.
https://github.com/ammen99/wf-recorder
Other runtime helpers (invoked as separate processes, not linked)
vcam and its scripts may also call these external programs when
present. None are linked into vcam; each is installed separately and
keeps its own license:
- grim, slurp — MIT (Wayland screenshot / region select)
- swaymsg — MIT (queries monitor layout in vcam-ctl)
- v4l2-ctl — GPL-2.0 (device inspection in vcam-setup)
- ncat — Nmap Public Source License (vcam-ctl's IPC client)
- xdg-open — MIT (opens output files in the diagnostics path)
v4l2loopback (kernel module, used at runtime, not linked)
The output device is provided by the v4l2loopback kernel module,
licensed GPL-2.0. It is a runtime dependency installed separately and
is not part of vcam's source or binary.
Optional ONNX Runtime backend
=============================
ONNX Runtime (linked when built with ORT=1; default build does not)
Licensed under the MIT License. An optional, separately-installed
inference runtime ('vcam-setup --ort') used to run the RVM matting
model correctly. Not bundled or redistributed with vcam.
https://onnxruntime.ai
Optional OpenCV components
==========================
These are used ONLY when vcam is built with `make OPENCV=1`. The default
build does not link or depend on any of them.
OpenCV 5 (linked when OPENCV=1)
Licensed under the Apache License 2.0. Used for the optional cv*
filters (cartoon, pencil, stylize, optical flow, background
subtraction, face and person effects). https://opencv.org
Note on licensing: OpenCV is an optional, separately-installed system
library that vcam links against only when explicitly built with
OPENCV=1. vcam does not bundle or redistribute OpenCV. If you intend
to redistribute a binary built with OPENCV=1, be aware that Apache
2.0 and GPL-2.0-only are considered incompatible for forming a single
combined work; the default vcam build links no Apache-2.0 code and is
unaffected. Building with OPENCV=1 for personal use is fine.
YuNet face detection model — face_detection_yunet_2023mar.onnx
Licensed under the MIT License. Downloaded on request by
'vcam-setup --models' from the OpenCV model repository; not bundled
with vcam. Copyright (C) Shenzhen Institute of Artificial
Intelligence and Robotics for Society.
https://github.com/ShiqiYu/libfacedetection
PP-HumanSeg segmentation model — human_segmentation_pphumanseg_2023mar.onnx
Licensed under the Apache License 2.0. Downloaded on request by
'vcam-setup --models'; not bundled with vcam. Originates from
PaddlePaddle/PaddleSeg. https://github.com/PaddlePaddle/PaddleSeg
MobileFaceNet facial expression model —
facial_expression_recognition_mobilefacenet_2022july.onnx
Licensed under the Apache License 2.0. Downloaded on request by
'vcam-setup --models'; not bundled. From the OpenCV Zoo.
Fast neural style transfer models — mosaic-9 / candy-9 /
rain-princess-9 / udnie-9 / pointilism-9 (.onnx)
Licensed under the MIT License (ONNX Project Contributors).
Downloaded on request by 'vcam-setup --models-style' from the ONNX
Model Zoo mirror (huggingface.co/onnxmodelzoo); not bundled.
Originals from pytorch/examples fast_neural_style.
RVM — Robust Video Matting (rvm_mobilenetv3_fp32.onnx)
Licensed under the GPL-3.0 license. Downloaded on request by
'vcam-setup --models-rvm' from the official GitHub release
(PeterL1n/RobustVideoMatting); not bundled with vcam. Used as an
optional higher-quality matting engine for the personfx filter.
None of the model files above are distributed with vcam; each is fetched by the
user from its upstream source and retains its own license above.
The fonts embedded in filter.c (the 8x8 ASCII-art glyph ramp and the VHS
timecode digits) are original bitmap data created for this project and are
covered by vcam's GPL-2.0 license along with the rest of the source.