Skip to main content

matrix-webcam

PyPI version License MIT issues Code style: black Checked with mypy

This package displays your webcam video feed in the console.

Take your next video conference from within the matrix!

matrix-webcam demo

Running it

Make sure you have Python and pip installed. Installation using pip:

$ pip install matrix-webcam  # make sure it's in your PATH for it to run, alternatively use sudo
$ matrix-webcam

Installing and running it from source:

$ git clone https://github.com/joschuck/matrix-webcam.git
$ cd matrix-webcam
$ python -m pip install .
$ matrix-webcam

Tip: Shrink your font size, it will look even more hacky

usage: matrix-webcam [-h] [-l LETTERS] [-p PROBABILITY] [-u UPDATES_PER_SECOND]

options:
-h, --help            show this help message and exit
-d DEVICE, --device DEVICE
                    Sets the index of the webcam if you have more than one webcam.
-l LETTERS, --letters LETTERS
                    The number of letters produced per update.
-p PROBABILITY, --probability PROBABILITY
                    1/p probability of a dispense point deactivating each tick.
-u UPDATES_PER_SECOND, --updates-per-second UPDATES_PER_SECOND
                    The number of updates to perform per second.

Can I use this for Teams/Zoom/Skype etc.?

For Windows/Mac Users

Yes! You can for example use OBS Studio ~~ together with the Virtual Cam plugin ~~ . Notice: obs-studio have officially provided virtual camera feature since version 26.0.0 , you can use it without installing this plugin. Then all you need to do is select the virtual webcam in Teams/Zoom/Skype.

For Linux Users

First we need to make sure you have the v4l2loopback kernel module to create V4L2 loopback devices setup. This module allows you to create "virtual video devices". Normal (v4l2) applications will read these devices as if they were ordinary video devices, but the video will not be read from e.g. a capture card but instead it is generated by another application. It should be available in your distro's package manager. Under Ubuntu install it using:

$ sudo apt install -y v4l2loopback-dkms v4l2loopback-utils

Now we need to create a virtual v4l2 device (exclusive_caps=1 and YUV2 conversion is required by Chromium for the device to be recognized):

$ sudo modprobe v4l2loopback devices=1 video_nr=42 card_label="Virtual Camera" exclusive_caps=1 max_buffers=2

Now we need to find the xid if the terminal window we will launch matrix-webcam in using

$ xdotool getactivewindow 
79869947  # sample output

Optionally resize the terminal window to something reasonable from another terminal and then launch matrix webcam

$ wmctrl -i -r 79869947 -e 0,300,300,1280,720  # in another terminal (2)

Now launch matrix-webcam

$ matrix-webcam  # in the terminal that was just resized

Now launch the virtual device in terminal (2) - you need Gstreamer for this, check the link on how to install it

$ gst-launch-1.0 ximagesrc xid=79869947 ! video/x-raw,framerate=30/1 ! videoconvert ! video/x-raw,format=YUY2 ! v4l2sink device=/dev/video42

That's it, your webcam should show up in Chromium, Teams, etc.!

Development

I'd recommend creating a new virtual environment (if you are under Ubuntu install it using sudo apt install python3-venv using

$ python3 -m venv venv/
$ source venv/bin/activate

Then install the dependencies using:

$ pip install -e .[dev,deploy]

Setup pre-commit, too:

$ pre-commit install

TODO

  • Add Virtual webcam documentation for Linux/Gstreamer
  • add webcam selection
  • Move to opencv-python-headless
  • add tests

License

This project is licensed under the MIT License (see the LICENSE file for details).

Metadata

Release files for matrix-webcam 0.4.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for matrix-webcam 0.4.2
File Size Uploaded Provenance Actions
matrix-webcam-0.4.2.tar.gz 7.3 kB Without provenance Details for matrix-webcam-0.4.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for matrix-webcam 0.4.2
File Interpreter ABI Platform Actions
matrix_webcam-0.4.2-py3-none-any.whl Python 3 none any Details for matrix_webcam-0.4.2-py3-none-any.whl

Total release size: 15.3 kB

Release files / matrix-webcam-0.4.2.tar.gz

Download URL matrix-webcam-0.4.2.tar.gz
Size 7.3 kB
Tags Source
SHA-256 checksum
How to use checksums
03c52567413b3345b1edd4891f745125d05cf3a35e29c259c47e1cc9a8804f9e
BLAKE2b-256 checksum
How to use checksums
4d64147ec7a3e2b172594b9fda849a955f3b3f732507241e81ae127585abe1ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.6

Release files / matrix_webcam-0.4.2-py3-none-any.whl

Download URL matrix_webcam-0.4.2-py3-none-any.whl
Size 8.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5fbe88114b00a62851470237d0904a6e395f678a0a3cd21b8eb893f59126d7b6
BLAKE2b-256 checksum
How to use checksums
e1f3ad75b27d27b70d0369d50f151cd681ae343de8c0b72773c0b7f77a84412e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.6

Security for matrix-webcam 0.4.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page