Skip to content

Node.js library for USB Video Class (UVC) devices. Used to write software for webcams, camcorders, etcetera.

License

Notifications You must be signed in to change notification settings

joelpurra/node-uvc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Node.js library for USB Video Class (UVC) devices. Used to write software for webcams, camcorders, etcetera.

UVC-compliant devices include webcams, digital camcorders, transcoders, analog video converters and still-image cameras.

Features

Functional:

  • Locate UVC devices on the system and retrieve out device details.
  • Change camera controls, such as image contrast, zoom, and toggling automatic settings.
  • Stream video and individual image frames.
  • Transform image data using standard Node.js streams.

Technical:

  • Thin translation layer built for Javascript developer convenience.
  • Javascript class implementation.
    • Asynchronous async/await class methods.
    • Resource management using .initialize()/.uninitialize() methods.

Installation

Requires Node.js (node and npm commands). Published on npm as uvc.

npm install --save uvc

Usage

See ./examples/ for ready-to-run code.

const { Context, Device, DeviceHandle, LibUvc } = require("uvc");

const libuvc = new LibUvc();
await libuvc.initialize();

const context = new Context(libuvc);
await context.initialize();

const device = await context.findDevice();
await device.initialize();

const deviceHandle = await device.open();
await deviceHandle.initialize();

// NOTE: use the UVC device here, for example using the Controls and FrameStreamer classes.

await deviceHandle.uninitialize();
await device.uninitialize();
await context.uninitialize();
await libuvc.uninitialize();

Development

  • Requires a UVC device, such as a compatible webcam.
  • Get the source code from the node-uvc repository.
  • Follow git-flow and use git-flow-avh.
  • Make sure that all example code works by testing them manually.
# Make sure git-flow is initialized.
git flow init -d

npm run --silent test

See also


node-uvc Copyright © 2020, 2021 Joel Purra. Released under GNU Lesser General Public License version 3.0 (LGPL-3.0). Your donations are appreciated!

About

Node.js library for USB Video Class (UVC) devices. Used to write software for webcams, camcorders, etcetera.

Resources

License

Stars

Watchers

Forks

Packages

No packages published