Есть ли возможность подключатся к вебкамере, и выбору, если их много, а также десктопу, при помощи ноды, как в C# + aforge? Можно таким образом записывать видео и делать скрины?
В linux для задачи получения снимков с вебкамеры использовал:
1. Консольную утилиту fswebcam. Установка на debian совместимых дистрибутивах: sudo apt-get install fswebcam
2. Небольшую програмку на Node.js:
const exec = require('child_process').exec;
exec('fswebcam --no-title --no-subtitle --no-info --no-banner --verbose --resolution 640x480 --skip 20 --save zzz.jpg',
function (error, stdout, stderr) {
if(stderr)
return console.log('stderr: ' + stderr);
if (error !== null)
return console.log('exec error: ' + error);
// тут код, который производит необходимые действия над файлом zzz.jpg'
});
3. Выбор конкретной камеры можно произвести добавлением ключа --device <name> в вызов команды fswebcam
Для получения снимков экрана использовал следующий скрипт:
const exec = require('child_process').exec;
const opt = {
offsetX: 100, // расстояние от левого края экрана до захватываемой области (в пикселях)
offsetY: 100, // расстояние от верхнего края экрана до захватываемой области (в пикселях)
width: 500, // ширина захватываемой области (в пикселях)
height: 300, // высота захватываемой области (в пикселях)
filename: './zzz.png' // имя файла в который будет записан скриншот
};
exec('DISPLAY=:0.0 import -window root -crop '+opt.offsetX+'x'+opt.offsetY+'+'+opt.width+'+'+opt.height+' '+opt.filename,
function (error, stdout, stderr) {
if(stderr)
return console.log('stderr: ' + stderr);
if (error !== null)
return console.log('exec error: ' + error);
// тут код, который производит необходимые действия над файлом zzz.jpg'
});