Deep-Live-Cam is a real-time face swapping desktop application that uses ONNX Runtime with insightface models to swap faces in live webcam feeds or pre-recorded images/videos. The core pipeline involves face detection (RetinaFace), face recognition (ArcFace), and a face swap model (inswapper_128), with optional face enhancement via GFPGAN or GPEN-BFR ONNX models. The application provides a PySide6 GUI for selecting source/target faces, toggling options (mouth mask, many faces, Poisson blending, sharpening, temporal interpolation), and managing camera selection. It supports multiple execution providers: CUDA (NVIDIA), CoreML (Apple Silicon), DirectML (AMD/Intel), OpenVINO (Intel), and CPU fallback. Video processing can run in-memory via FFmpeg pipes (avoiding disk I/O) or via traditional frame extraction to PNG files. The architecture is modular: frame processors (face swapper, enhancers) follow a common interface, and the codebase includes optimizations for Apple Silicon (CoreML subgraph optimization, Pad decomposition, Shape/Gather folding) and CUDA (IO binding, CUDA graphs). The project also includes a benchmark pipeline and unit tests for core components.
lolcommits is a Ruby gem that captures a webcam snapshot (or video) every time you git commit, creating a 'lolcat' style image with the commit message overlaid. It installs a post-commit hook in Git (or Mercurial) repositories, runs a platform-specific capturer (macOS, Linux, Windows, Cygwin), optionally creates animated GIFs or videos via ffmpeg, and stores results in `~/.lolcommits/<repo-name>/`. The CLI provides commands for enabling/disabling hooks, viewing last capture, browsing captures, generating timelapse GIFs, and configuring plugins (e.g., the default loltext plugin for text overlay). The architecture is a monolith with a plugin system, using MiniMagick for image processing and Launchy for file opening. It is well-maintained, with recent updates for Ruby 3.x compatibility and modern gem dependencies.
ScreenToGif is a Windows desktop application for screen, webcam, and sketchboard recording, with a built-in editor and export to animated images (GIF, APNG, WebP, AVIF), video (MP4, AVI, MKV, MOV, WebM), image sequences (BMP, JPEG, PNG), PSD, and its own project format (STG). The architecture follows MVVM with multiple projects: ScreenToGif (WPF UI), ScreenToGif.Model (domain/enums/interfaces), ScreenToGif.ViewModel (presets/tasks), ScreenToGif.Util (helpers, codification, converters, settings), ScreenToGif.Native (P/Invoke wrappers), and ScreenToGif.Test (unit tests). The application uses .NET 9 and relies on FFmpeg, Gifski, KGySoft.Drawing, and SharpDX (for DirectX capture). It features a rich set of custom WPF controls, global keyboard/mouse hooks, undo/redo with file-based state, color quantization algorithms, and cloud upload integration (Imgur, Yandex Disk). The codebase is well-structured but shows signs of technical debt: large monolithic files, legacy encoder implementations, deprecated SharpDX dependency, and minimal test coverage.
The PiSight project transforms a Raspberry Pi Zero with a camera module into a plug-and-play USB webcam by implementing the USB Video Class (UVC) standard via the Linux Gadget API. The hardware setup involves mounting the Raspberry Pi and camera inside an Apple iSight enclosure. Software-wise, the project provides scripts to configure the USB controller in OTG mode, build and install the UVC gadget framework, and activate the gadget as a systemd service. When connected to a host computer, the device appears as a standard webcam requiring no additional drivers. The core functionality resides in `rpi-uvc-gadget.sh`, which uses configfs to define a UVC device with multiple resolutions (640x480, 1280x720, 1920x1080) and formats (uncompressed and MJPEG) at various frame rates. The `setup.sh` automates dependency installation, compilation of the UVC gadget tools from freedesktop.org, and deployment of the service. A systemd unit ensures the gadget persists across reboots. This approach leverages kernel USB gadget infrastructure to create a seamless webcam experience.
This repository is a small Python demo application that turns a webcam feed into a real-time David Attenborough-style nature documentary narration. It consists of two independent processes: capture.py grabs frames from the webcam every 2 seconds, resizes them to a maximum dimension of 250 pixels, and writes them to frames/frame.jpg; narrator.py polls that file, base64-encodes it, sends it to OpenAI's GPT-4 Vision API with a snarky Attenborough system prompt, appends the response to a running conversation script, synthesizes speech via ElevenLabs, and plays the audio aloud. The two processes communicate through the filesystem, which is a simple but effective decoupling pattern for a demo. The code is functional and readable, with a few thoughtful touches: the image is downscaled before upload to reduce API cost and latency, and the narrator retries reading the frame file when it catches a transient EACCES error caused by the capture process writing concurrently. However, it is a proof-of-concept rather than a production application: there are no tests, no error handling for API failures, hardcoded paths, and the pinned dependencies are from late 2023. The OpenAI model 'gpt-4-vision-preview' and the ElevenLabs 'generate/play' API are both deprecated, so the code would need updates to run against current APIs. Despite a recent commit timestamp in the metadata, the codebase is effectively a frozen 2023 demo. The maintainer has not updated dependencies or addressed the deprecated APIs, and 41 open issues remain. It is best treated as a reference implementation or a starting point for a webcam-to-AI-narration pipeline, not as a maintained library.