uvcc
development
Get the source code from the uvcc
repository.
Follow git-flow and use git-flow-avh.
# Make sure git-flow is initialized.
git flow init -d
# Fetch dependencies.
npm install
# Get a fresh local build.
npm run --silent rebuild
# Make sure tests pass.
npm run --silent test
# Try some commands on your local build.
node ./dist/index.js
node ./dist/index.js controls
node ./dist/index.js ranges
node ./dist/index.js export
node ./dist/index.js get absolute_zoom
node ./dist/index.js set absolute_zoom 120
# Start debugging.
# Use the Node.js inspector built-in to Chromium-based browsers.
npm run --silent debug:run:break
# Use -- to separate the npm command from uvcc arguments.
npm run --silent debug:run:break -- export
- Check open issues and pull requests and see what can be done.
- Add tests.
- Add output examples from additional camera models.
- Perhaps create and record a demo video/gif for that model.
- Add workarounds for cameras with known issues.
- Some cameras are known to have issues in other implementations.
- Avoid camera- or system-specific workarounds, try to be generic in their detection and prevention.
- See Linux UVC device drivers's supported devices list for examples.
- Compare UVC controls/values with the output from
v4l2-ctl
.v4l2-ctl --list-devices
v4l2-ctl --list-ctrls
- See for example the article Manual USB camera settings in Linux.
- The lower-level UVC Node.js library uvc-control used by
uvcc
. - The even lower level library
libusb
(Wikipedia) through the npm packageusb
. - The
v4l-utils
for video4linux (Wikipedia), which includesv4l2-ctl
.
uvcc
Copyright © 2018, 2019, 2020, 2021, 2022 Joel Purra. Released under GNU General Public License version 3.0 (GPL-3.0). Your donations are appreciated!