1.0.0 • Published 4 years ago
uvc v1.0.0
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!
1.0.0
4 years ago