|
2 years ago | |
---|---|---|
images | 2 years ago | |
py | 2 years ago | |
.gitignore | 2 years ago | |
LICENSE | 2 years ago | |
README.md | 2 years ago | |
TODO.md | 2 years ago | |
poetry.lock | 2 years ago | |
pyproject.toml | 2 years ago | |
requirements.txt | 2 years ago |
README.md
Webcam Manager
A simple program to loop your webcam on video calls.
[toc]
Features:
- Virtual webcam compatible with all video-call software
- Record loops and play them back as if they were from your webcam
- Generic name and interface to avoid scrutiny from co-workers and/or desktop monitoring
Installation
Windows
On Windows Webcam Manager relies on OBS Studio to create a virtual webcam that can be used in video-call software.
To install both Webcam Manager and OBS Studio, use the installer
If OBS is already installed, you can use webcam_manager.exe
MacOS and Linux
Binaries and/or packages are not yet available. Please install using git and python as described below in Development Installation.
Operation
Webcam Manager is designed to be used on devices that may be monitored, for example through desktop monitoring (screenshots taken at random intervals).
For this reason nothing in the program window explicitly refers to looping the webcam. The application window looks as generic as possible. The few buttons are presented with no text and only icons usually associated with camera focus. This means that Webcam Manager may take some practice to operate. Fortunately, recording and playing webcam loops are the only functions available so the program is easy to learn.
Connect to call software
- Launch Webcam Manager
- Ensure the webcam is showing in the preview
- Launch the video-call software
- Select
Dummy video device
as a camera- In browser-based video-calls (Jitsi, Google Meet, Zoom) this will be associated with the dialog asking for "permission" to use the camera. See example below in Jitsi and Firefox.
- In applications (Zoom, Microsoft Teams, etc) this is more likely to be found in video settings.
Recording a loop
- Place your mouse cursor over the REC button
- Click to start recording
- Keep a static pose moving as little as possible
- Click again to stop recording
Playing a loop
Once a loop has been recorded.
- Click the LOOP button or press the
Enter
key - The loop button is yellow when a loop is playing
- Click the STOP button or press
Enter
to stop and display the live webcam again.
Freezing the camera
To make the transition from loop back to a live camera, it can be useful to "freeze" the image and blame it on the connection.
Opening the About window with the ? button freezes the picture for as long as the window is open.
Development installation
- Clone this repository
git clone git@gitlab.com:davidbenque/webcam_manager.git
cd webcam_manager
-
Install dependencies
If using poetry:
poetry install
else install the dependencies listed in
requirements.txt
-
Virtual webcam dependencies
Required to create the virtual webcam that can be used in call software.
-
On Windows OBS Studio should be installed.
-
On Linux v4l2loopback is required, to install:
sudo apt install v4l2loopback-dkms
v4l2loopback should be running before Webcam Manager is launched. If it not the program will launch it and ask for a sudo password.
To launch v4l2loopback manually:
sudo modprobe v4l2loopback devices=1
-
-
Launch
How to build Windows binaries
To build a binary from the webcam_manager.py
file, uncomment line 14 and 15:
if getattr(sys, 'frozen', False) and hasattr(sys, '_MEIPASS'):
os.chdir(sys._MEIPASS)
then use pyinstaller
to execute the following command:
pyinstaller --onefile --windowed --add-data "assets;assets" webcam_manager.py
This will bundle all files and dependencies in a single file (--onefile
). Any assets and external files such as images are included using --add-data
flag followed with the directory or file name ("assets;assets"
) to be included within the build.
This will create an .exe
file in the py/dist
directory along a py/build
directory and a webcam_manager.spec
file.
Distribution / Create an installer for windows
In order to create an installer that bundles OBS and Webcam Manager, OBS Studio installer is required.
Once downloaded move the installer in the py/dist/inc
directory. This folder contains the external files bundled with your webcam application, such as the logo.ico
and the License.txt
.
We used NSIS to create the installer; once you have NSIS installed, built the py/dist/webcam_manager.exe
file as well as the py/dist/inc/OBS-Studio-26.1.1-Full-Installer-x64.exe
file, compile the py/dist/WM.nsi
with NSIS.
This should generate the py/dist/WebcamManager_installer.exe
.