Видео наблюдение на node.js

Есть задача, сделать систему видео наблюдения на node js.

  1. Должен быть сервер который будет принимать видео поток и записывать его в файлы длительностью к примеру по 1 часу.
  2. Должен быть максимально примитивный клиент, который будет захватывать видео с веб камеры и непрерывно отправлять его на сервер.
  3. Клиент и сервер должны быть отдельными приложениями.
  4. Сервер запускается локально через 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);
    })();

Буду очень рад любой помощи, особенно примерам кода. Заранее спасибо!


Ответы (0 шт):