|Project Name||Stars||Downloads||Repos Using This||Packages Using This||Most Recent Commit||Total Releases||Latest Release||Open Issues||License||Language|
|HTML5 QR code scanner using your webcam|
|Webcamjs||2,156||64||14||3 years ago||25||October 20, 2019||141||mit||ActionScript|
|HTML5 Webcam Image Capture Library with Flash Fallback|
|Webcam Capture||2,109||315||21||a day ago||10||January 17, 2018||290||mit||Java|
|The goal of this project is to allow integrated or USB-connected webcams to be accessed directly from Java. Using provided libraries users are able to read camera images and detect motion. Main project consist of several sub projects - the root one, which contains required classes, build-in webcam driver compatible with Windows, Linux and Mac OS, which can stream images as fast as your camera can serve them (up to 50 FPS). Main project can be used standalone, but user is able to replace build-in driver with different one - such as OpenIMAJ, GStreamer, V4L4j, JMF, LTI-CIVIL, FMJ, etc.|
|React Webcam||1,397||251||62||14 days ago||63||April 05, 2022||40||mit||TypeScript|
|Mini Video Me||1,288||2 months ago||18||mit||TypeScript|
|📹 A small webcam player focused on providing an easy way to add and control your webcam during recordings.|
|Pi Webcam||1,228||a year ago||10||mit|
|Automation to configure a Raspberry Pi as a USB OTG webcam|
|Showmewebcam||1,145||6 months ago||56||gpl-3.0||Shell|
|Raspberry Pi + High Quality Camera = High-quality USB Webcam!|
|Real-time ASCII representation of your webcam video stream, using the getUserMedia API.|
|Ispy||1,049||2 months ago||47||other||C#|
|Open source surveillance software|
This firmware transforms your Raspberry Pi into a high quality webcam. It works reliably, boots quickly, and gets out of your way.
Show-me webcam is proudly powered by peterbay's uvc-gadget.
|Raspberry Pi \ Camera version||v1 5MP||v2 8MP||High Quality 12MP|
|Pi Zero v1.3 (without Wifi)||✓||✓||✓|
|Pi Zero W (with Wifi)||✓||✓||✓|
We release new versions of this firmware regularly at the release tab: https://github.com/showmewebcam/showmewebcam/releases
After booting, the built-in LED will blink three times quickly to show you it's ready.
When the camera is in use the LED will be lit. In addition,
GPIO 21 pin is set to
HIGH, so an
external LED or another payload can be triggered with this pin to indicate that
the camera is in use.
For debugging, a 115200 baud serial interface is provided as a
smwc-expectscript to connect to it
Also, there is a serial interface on the 40-pin header: https://pinout.xyz/pinout/uart
$ ls -l /dev/ttyACM* crw-rw---- 1 root dialout 166, 0 sep 25 14:03 /dev/ttyACM0 $ sudo screen /dev/ttyACM0 115200
Mac OS example:
$ ls -l /dev/tty.* crw-rw-rw- 1 root wheel 9, 18 Dec 7 13:14 /dev/tty.usbmodem13103 $ screen /dev/tty.usbmodem13103 115200
If the terminal is blank try pressing enter to see the login prompt. To exit
the session, use
Ctrl-A \ (screen) or
Ctrl-A X (minicom & picocom).
Warning: This serial debug interface is automatically enabled and is controlled
by the file called
enable-serial-debug in the
/boot folder. This is a potential
security issue. For now, you should strongly consider disabling this feature by
removing the file after you have finished customizing the webcam.
From version 1.80, on Linux, you can see what happens by watching
before you plug in the webcam:
$ sudo dmesg -w
If you only see the
ttyACM device show up, but not the webcam, it's likely you
have not plugged in the camera cable correctly, or the camera cable has gone bad.
If you see nothing, maybe your USB cable is bad, or you have plugged in the cable to the wrong port.
Log in to the debug interface and execute:
This tool will allow you to show and tweak all available camera parameters.
Additionally it will save your settings to
/boot/camera.txt if you choose to
do so. This will handle remounting
Log in to the debug interface. Then list all tweakable parameters:
/usr/bin/v4l2-ctl -L | less
Then you can apply parameters on the fly, e.g.
/usr/bin/v4l2-ctl -c auto_exposure_bias=15 /usr/bin/v4l2-ctl -c contrast=3
Mount the SD card on your computer, edit a file called
/boot and put all parameters you want overridden, e.g:
# Tweak the auto exposure bias auto_exposure_bias=15 # Tweak the contrast contrast=3
You can edit
camera.txt on-target by remounting
mount -o remount,rw /boot
Since version 1.80 we try to expose as many controls as possible via the UVC standard, which are then translated back to the controls that are available on your specific camera module. Some host operating systems may be confused by controls that are advertised via USB, but don't turn out to work, due to not being available for your specific camera module.
You can therefore customize the controls advertised to the computer via the USB device descriptor. Warning: This is an advanced user feature only. You should probably consult the UVC controls bitmap documentation on GitHub.
You can add the parameters to
cmdline.txt on the boot volume as follows:
The above example disables all controls and should thus be safe.
The parameters directly correspond to the
bmControls bitfields in the descriptor.
Please, again, read the documentation linked above.
An example for enabling all the available controls for the 8 Mpixel (v2) camera for the Raspberry Pi 4B is given below:
The camera advertises the available resolutions and streaming formats to the connected host PC. Usually the best suitable resolution is chosen. The available resolutions can be reduced to enforce a specific setting.
By default the camera uses the Motion JPEG codec to stream the video signal. For the host PC it offers several video resolutions up to 1080p HD video to choose from.
These settings can be overwritten by copying the file
/boot folder and editing it.
cp /etc/video_formats.txt /boot
In this file one line corresponds to one video resolution and streaming format.
Until now, only mjpeg and uncompressed video are supported. If you want to make
certain resolutions unavailable, comment them out by prepending a
# to that
line or removing them altogether.
Please note that you have to reboot your piwebcam (power cycle it) for changes to take effect.
Clone or download this repository. Then inside it:
git clone --recurse-submodules https://github.com/showmewebcam/showmewebcam.git
./build-showmewebcam.sh raspberrypi0wto build Raspberry Pi Zero W (with Wifi) image.
./build-showmewebcam.sh raspberrypi0to build Raspberry Pi Zero (without Wifi) image.
./build-showmewebcam.sh raspberrypi4to build Raspberry Pi 4 image.
sdcard.imgwill be in the
camera.txtfile to the root of this repository, the contents will be automatically added to
Note: If you want to use external Buildroot directory you need to set the Buildroot path manually, e.g.
BUILDROOT_DIR=../buildroot ./build-showmewebcam.sh raspberrypi0