charlielee / boats-animator

Stop motion animation program created using Electron
http://charlielee.uk/boats-animator
GNU General Public License v3.0
116 stars 18 forks source link

Adjust webcam settings #240

Open charlielee opened 5 years ago

charlielee commented 5 years ago

I have found a neat library for adjusting standard UVC webcam settings. It would neat to implement this into Boats Animator at some point. https://github.com/makenai/node-uvc-control

charlielee commented 4 years ago

I received a few requests for this feature from users in recent times. It seems to be more popular than I managed!

charlielee commented 4 years ago

See Logitech Capture app for the current way of controlling Logitech cameras. https://support.logi.com/hc/en-us/articles/360024849133--Downloads-HD-Pro-Webcam-C920

charlielee commented 4 years ago

I just found this repo. It looks like you can get the native camera control dialogue to open with FFmpeg (which is already used by video export!).

https://github.com/jpalbert/webcam-settings-dialog-windows

https://superuser.com/questions/1287366/open-webcam-settings-dialog-in-windows

Testing will be required to see if this works for platforms other than windows

charlielee commented 3 years ago

The "state of the art"

Dragonframe

image image

Tahoma 2D

image

(the more button loads the built in Windows webcam dialog)

AnimaShooter Junior

image

charlielee commented 3 years ago

I've gone down a bit of a rabbit hole in finding how to implement this. My current thoughts are:

macOS and Linux

Use https://github.com/makenai/node-uvc-control library (probably this fork https://github.com/joelpurra/node-uvc-control). There may be some complications with installing libusb but hopefully not.

Windows

Using node-uvc-control with Windows requires using Zadig to install a WinUSB driver. This is not an end-user friendly solution.

Instead I've been looking at if we can use native Windows APIs to achieve this. Made several findings:

Sidenote

I did briefly look into using OpenCV for it's camera control abilities. But it's a massive library and brings many complexities and dependencies.

charlielee commented 2 years ago

I did some related research in #205