In this list we offer you the best usable open-source solutions to control and manage your DSLR cameras.

1- RawStudio

Rawstudio is an open-source program designed to efficiently review and process large collections of RAW images from digital cameras. It converts RAW files into JPEG, PNG, or TIF images for further editing in image editing applications.

Features

  • Intuitive GTK+ interface
  • Full DNG Color Profile support
  • Batch processing
  • Tethered shooting
  • Various post-shot controls (white balance, saturation, and exposure compensation among others)
  • Easy and flexible copy & paste settings between images
  • Develop images directly on storage card
  • Image tagging and sorting
  • Automatic lens distortion correction
  • Advanced noise reduction
  • Unique intelligent sharpening
  • Chromatic aberration and vignetting correction
  • Exposure mask
  • Cropping
  • Straighten
  • Fullscreen mode
  • Secondary monitor support
  • Image location independent
  • Automatic filenaming based on EXIF information
  • 32 bit float point precision image processing
  • Optimized for and SSE and SSE2 (detected runtime) and fully multithreaded
GitHub - rawstudio/rawstudio: Rawstudio is an open-source program to read and manipulate RAW images from digital cameras.
Rawstudio is an open-source program to read and manipulate RAW images from digital cameras. - GitHub - rawstudio/rawstudio: Rawstudio is an open-source program to read and manipulate RAW images fro…

2- DigiCam  

DigiCam is an open-source free Python library for controlling DSLR cameras using the open source program DigiCamControl.

GitHub - jtcass01/DigiCam: A python class for controlling DSLR cameras. Requires DigiCamControl to be installed. Please see: http://digicamcontrol.com/ for more information.
A python class for controlling DSLR cameras. Requires DigiCamControl to be installed. Please see: http://digicamcontrol.com/ for more information. - GitHub - jtcass01/DigiCam: A python class for…

3- Camera Controller

CameraController is an iOS app that allows you to control your camera's settings without using a software provided by the company.

GitHub - Itaybre/CameraController: 📷 Control USB Cameras from an app
📷 Control USB Cameras from an app. Contribute to Itaybre/CameraController development by creating an account on GitHub.

4- Tethr

  1. https://github.com/baku89/tethr

Tethr is a JavaScript/TypeScript library that controls digital cameras directly from web browsers via USB connections. It supports multiple camera vendors and uses the Picture Transfer Protocol (PTP) to access camera functions like shutter control, aperture adjustment, and ISO settings. However, ensuring compatibility among different camera models has been challenging due to vendor-specific extensions.

Tethr solves this by offering a standardized interface and acting as a bridge between cameras and developers. It takes inspiration from libgphoto2 to provide a comprehensive camera control solution.

Features

  • 📸 Control camera functionalities such as shutter, aperture, ISO, and more.
  • ⚡️ Access cameras via USB using the PTP (Picture Transfer Protocol) standard.
  • 🌎 Vendor-specific support to fully access all features of each camera model.
  • 🤳 Automatic fallback to web cameras when WebUSB is disabled or no USB camera is connected.

Supported cameras

As mentioned, due to the vendor-specific extensions added to the PTP, comprehensive support for each camera model's features requires vendor-specific implementation. Without such support, the library can only access a limited set of configs exposed through standard device properties defined in the PTP specification.

In addition, the library offers fallback functionality to web cameras in situations where WebUSB is disabled or when no USB-connected camera is detected. This enables developers to seamlessly switch to using web cameras, such as those integrated into smartphones, as an alternative capture source.

Here are the supported cameras:

  • Panasonic: Lumix S5
  • Sigma: fb, fb L
  • Ricoh Theta S
  • WebCam
GitHub - baku89/tethr: JavaScript/TypeScript library built on top of WebUSB for controlling digital cameras from browsers.
JavaScript/TypeScript library built on top of WebUSB for controlling digital cameras from browsers. - GitHub - baku89/tethr: JavaScript/TypeScript library built on top of WebUSB for controlling dig…

5- Webcam Capture (Java)

This library allows you to use your built-in or external webcam directly from Java. It's designed to abstract commonly used camera features and support various capturing frameworks.

Features

  • Simple, thread-safe and non-blocking API,
  • No additional software required,
  • Supports multiple platforms (Windows, Linux, Mac OS, etc) and various architectures (32-bit, 64-bit, ARM),
  • Get images from build-in or USB-connected PC webcams,
  • Get images from IP / network cameras (as MJPEG or JPEG),
  • Offers ready to use motion detector,
  • All required JARs Available in Maven Central,
  • Offers possibility to expose images as MJPEG stream,
  • It is available as Maven dependency or standalone ZIP binary (with all dependencies included),
  • Swing component to display video feed from camera,
  • Swing component to choose camera (drop down),


GitHub - sarxos/webcam-capture: 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.
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 pro…

6- Photobooth-app

Photobooth app powered by python supporting picamera2 optimized for speed.

Features

  • 📹 camera live preview with the shortest delay as possible, permanent video live view in background
  • ⚡️ optimized for speed, live stream hardware accelerated on rpi, cpu load < 20%
  • 🫶 several camera backends supported for high quality stills and livestream
  • 💡 WLED support signaling photo countdown and feedback to the user when the photo is actually taken
  • 🤝 Linux 🐧, Raspberry Pi 🍓 and Windows 🪟 platforms supported

Supported cameras

The photobooth app's Python backend allows using different camera types on Linux and Windows platforms:

  • Raspberry Pi Camera Module 1/2/3 (with or without autofocus)
  • Arducam cameras (with or without autofocus)
  • DSLR camera via
  • gphoto2, Linux
  • digicamcontrol, Windows (not yet implemented)
  • webcams (via opencv2 or v4l)

The app controls the camera's autofocus, handles led signaling when a photo is taken and streams live video to photobooth.

GitHub - mgrl/photobooth-app: Photobooth app powered by python supporting picamera2 optimized for speed
Photobooth app powered by python supporting picamera2 optimized for speed - GitHub - mgrl/photobooth-app: Photobooth app powered by python supporting picamera2 optimized for speed

7- Remote Your Cam OSS (Android)

This Android app allows you to control a Canon or Nikon DSLR camera through USB. Since we no longer have time developing this app we decided to open source the code. Maybe someone else wants to base their own app on this.

Features:

  • Capture photos
  • Review your taken photos
  • Display current exposure mode
  • Bulb shooting (Canon only)
  • Live view: Histogram (Canon only), Drive Focus, Adjustable duration of the captured picture in Live View mode, Zooming and panning in active Live View
  • Gallery with full-screen picture review, zooming and panning
  • Picture stream showing captured pictures
  • Control of the following properties:White balance, Shutter speed, ISO sensitivity, Aperture priority, Color temperature, Auto focus metering mode (Nikon only), Setting the focus point (Nikon only), Setting the focus rectangle in live view (Nikon only), and Exposure Compensation
GitHub - ngrealish/dslr-monitor: Control your Canon or Nikon DSLR camera from your Android device through USB
Control your Canon or Nikon DSLR camera from your Android device through USB - GitHub - ngrealish/dslr-monitor: Control your Canon or Nikon DSLR camera from your Android device through USB

8- DSLR camera remote control open source software

DSLR camera remote control open source software.

GitHub - dukus/digiCamControl: DSLR camera remote control open source software
DSLR camera remote control open source software. Contribute to dukus/digiCamControl development by creating an account on GitHub.
Easy to use, free solution for complex camera control | digiCamControl
digiCamControl, an opensource camera controlling software with functions such as exposure, focusing, live view, focus stacking and time lampse, etc…

9- PTP Webcam (macOS)

This is a plugin to make compatible digital cameras available as webcams in video calls, for example in Zoom or Skype on macOS. It also allows control of camera settings from the computer to adjust exposure parameters and focus.

GitHub - dognotdog/ptpwebcam: Mac DSLR webcam plugin for using DSLRs for video conferencing and streaming.
Mac DSLR webcam plugin for using DSLRs for video conferencing and streaming. - GitHub - dognotdog/ptpwebcam: Mac DSLR webcam plugin for using DSLRs for video conferencing and streaming.

10- cannon-bluetooth-remote

This is a simple Python script to emulate the BR-E1 remote, for controlling Bluetooth enabled Canon DSLRs like the Rebel T7i.

GitHub - ids1024/cannon-bluetooth-remote: Python script to emulate Canon’s BR-E1 remote
Python script to emulate Canon’s BR-E1 remote. Contribute to ids1024/cannon-bluetooth-remote development by creating an account on GitHub.

11- Photobooth v3

A Photobooth web interface for Linux and Windows.

Features

  • Works on Windows (digiCamControl) and Linux (gPhoto2).
  • Images are processed with GD.
  • Photobooth caches all generated QR-Codes, Thumbnails and Prints.
  • Standalone Gallery
  • Slideshow via Gallery or standalone Gallery
  • Offline manual with settings.
GitHub - andi34/photobooth: A Photobooth web interface for Linux and Windows.
A Photobooth web interface for Linux and Windows. Contribute to andi34/photobooth development by creating an account on GitHub.

12- Web-gPhoto2

  1. https://github.com/GoogleChromeLabs/web-gphoto2

Web-gPhoto2 is a gPhoto2 implementation using WebAssembly to control DSLR cameras from the browser.

GitHub - GoogleChromeLabs/web-gphoto2: Running gPhoto2 to control DSLR cameras over USB on the Web
Running gPhoto2 to control DSLR cameras over USB on the Web - GitHub - GoogleChromeLabs/web-gphoto2: Running gPhoto2 to control DSLR cameras over USB on the Web

13- EasyCam

This open-source app enables you to share your DSLR camera photos quickly.

GitHub - elena20ruiz/easycam: 📸 Share your DSLR camera images easily built in LauzHack′19
📸 Share your DSLR camera images easily built in LauzHack′19 - GitHub - elena20ruiz/easycam: 📸 Share your DSLR camera images easily built in LauzHack′19

14- SMoOnion (Nikon)

Stop-motion animation software for DSLR cameras. This project was born out of personal need for a stop-motion software with onion-skin features for high quality DSLR cameras. Most stop-motion tools are highly priced and out of reach for students or stop-motion hobbyists. This project aims to address that issue.

Features

  • Single frame snapshot
  • LiveView support
  • Onion skin for animation
  • Battery level indicator
GitHub - annvnzndrvn/SMoOnion: Stop-Motion software for DSLR cameras with onion skin features.
Stop-Motion software for DSLR cameras with onion skin features. - GitHub - annvnzndrvn/SMoOnion: Stop-Motion software for DSLR cameras with onion skin features.

15- PIC ML-L3

📷 Simple remote control for Nikon DSLR cameras using a PIC micro.

GitHub - carlosgeos/pic-ml-l3: :camera: Simple remote control for Nikon DSLR cameras using a PIC micro.
:camera: Simple remote control for Nikon DSLR cameras using a PIC micro. - GitHub - carlosgeos/pic-ml-l3: :camera: Simple remote control for Nikon DSLR cameras using a PIC micro.