
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
node-v4l2camera
Advanced tools
Capturing images from USB(UVC) webcam on linux machines.
-std=c11 and -std=c++14
On linux machines:
npm install v4l2camera
var v4l2camera = require("v4l2camera");
var cam = new v4l2camera.Camera("/dev/video0");
if (cam.configGet().formatName !== "MJPG") {
console.log("NOTICE: MJPG camera required");
process.exit(1);
}
cam.start();
cam.capture(function (success) {
var frame = cam.frameRaw();
require("fs").createWriteStream("result.jpg").end(Buffer(frame));
cam.stop();
});
For more detail see: examples/*.js (required "pngjs" modules)
Initializing and Configuration API
var cam = new v4l2camera.Camera(device)
device: e.g. "/dev/video0"cam.formats: Array of available frame formatsvar format = cam.formats[n]
format.formatName: Name of pixel format. e.g. "YUYV", "MJPG"format.format: ID number of pixel formatformat.width: Frame widthformat.height: Frame heightformat.interval.numerator and format.interval.denominator
: Capturing interval per numerator/denominator seconds
(e.g. 30fps is 1/30)cam.configSet(format)
: Set capture width, height, interval per numerator/denominator sec
if the members exist in the format objectcam.configGet() : Get a format object of current configCapturing API (control flow)
cam.start()cam.stop(afterStoped)
config(format) or re-start() in afterStoped() callbackcam.capture(afterCaptured): Do cache a current captured frame
cam.frameRaw() in afterCaptured(true) callbackCapturing API (frame access)
cam.frameRaw(): Get the cached raw frame as Uint8Array
(YUYU frame is array of YUYV..., MJPG frame is single JPEG compressed data)cam.toYUYV(): Get the cached frame as Uint8Array of pixels YUYVYUYV...
(will be deprecated method)cam.toRGB(): Get the cached frame as Uint8Array of pixels RGBRGB...
(will be deprecated method)Capturing API (camera frame info)
cam.device: the device file name e.g. "/dev/video0"cam.width: pixel width of the cameracam.height: pixel height of the cameraControl API
cam.controls: Array of the control informationcam.controlGet(id): Get int value of the control of the id
(id is one of cam.controls[n].id)cam.controlSet(id, value): Set int value of the control of the idvar control = cam.controls[n]: Control spec
control.id: Control id for controlGet and controlSetcontrol.name: Control name stringcontrol.type: "int", "bool", "button", "menu" or other typescontrol.max, control.min, control.step: value should be
min <= v and v <= max and (v - min) % step === 0control.default: default value of the controlcontrol.flags: Several bool flags of the controlscontrol.menu: Array of items.
A control value is the index of the menu item when type is "menu".On linux machines:
cd myproject
mkdir -p node_modules
cd node_modules
git clone https://github.com/bellbind/node-v4l2camera.git v4l2camera
cd v4l2camera
npm install
cd ../..
"build/Release/v4l2camera.node" is exist after the build.
FAQs
Capturing images from USB(UVC) webcam on linux machines
We found that node-v4l2camera demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.