Joel Purra: Developer and more

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.

See also

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!