Видео наблюдение на node.js
Есть задача, сделать систему видео наблюдения на node js.
- Должен быть сервер который будет принимать видео поток и записывать его в файлы длительностью к примеру по 1 часу.
- Должен быть максимально примитивный клиент, который будет захватывать видео с веб камеры и непрерывно отправлять его на сервер.
- Клиент и сервер должны быть отдельными приложениями.
- Сервер запускается локально через ngrok.
Насколько я правильно понял, то для передачи видео необходимо использовать socket.io. Мне удалось сделать лишь захват видео с камеры, с остальным возникли трудности. Ниже прилагаю кусок кода с захватом видео.
(function() {
var width = 320;
var height = 0;
var streaming = false;
var video = null;
var canvas = null;
var photo = null;
var startbutton = null;
function startup() {
video = document.getElementById('video');
canvas = document.getElementById('canvas');
navigator.mediaDevices.getUserMedia({video: true, audio: false})
.then(function(stream) {
video.srcObject = stream;
video.play();
})
.catch(function(err) {
console.log("An error occurred: " + err);
});
video.addEventListener('canplay', function(ev){
if (!streaming) {
height = video.videoHeight / (video.videoWidth/width);
if (isNaN(height)) {
height = width / (4/3);
}
video.setAttribute('width', width);
video.setAttribute('height', height);
canvas.setAttribute('width', width);
canvas.setAttribute('height', height);
streaming = true;
}
}, false);
clearphoto();
}
window.addEventListener('load', startup, false);
})();
Буду очень рад любой помощи, особенно примерам кода. Заранее спасибо!