uvc
v1.0.0
Published
Library for USB Video Class (UVC) devices. Used to write software for webcams, camcorders, etcetera.
Downloads
17
Maintainers
Readme
Node.js library for USB Video Class (UVC) devices (node-uvc)
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.
Installation
npm install --save uvcFeatures
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.
- Ships with pre-built binaries from
@ffi-libraries/libuvc-v0.0.6. - Based on the
libuvccross-platform C library.
- Ships with pre-built binaries from
- Javascript
classimplementation.- Asynchronous
async/awaitclass methods. - Resource management using
.initialize()/.uninitialize()methods.
- Asynchronous
Installation
Requires Node.js (node and npm commands). Published on npm as uvc.
npm install --save uvcUsage
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-uvcrepository. - 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 testSee also
uvccfor a command line interface (CLI).- USB Video Class on Wikipedia.
- List of USB video class devices on Wikipedia.
- The
@ffi-libraries/libuvc-v0.0.6Node.js wrapper forlibuvc. - The
v4l-utilsfor video4linux (Wikipedia), which includesv4l2-ctl.
node-uvc Copyright © 2020, 2021 Joel Purra. Released under GNU Lesser General Public License version 3.0 (LGPL-3.0). Your donations are appreciated!
