Как отключить видео с моей веб-камеры USB на удаленную страницу HTML

Я хочу создать программу, которая будет передавать видео с веб-камеры USB через Интернет на веб-страницу.

В настоящее время я использую веб-сервис, который при запуске вызывает fswebcam для захвата изображения, сохранения в хранилище данных, преобразования в base64 двоичного кода и отправки этих данных на HTML-страницу, где она отображается в атрибуте 'src' of img. На странице HTML есть JavaScript, который вызывает эту услугу один раз в секунду.

Как вы можете сказать, это ужасный способ сделать это. Я бы предпочел иметь правильный поток, если смогу. Но я не знаю, какие технологии доступны для этого.

Веб-сервис написан в nodeJS. Сервер работает на raspberry pi 2. Я не задавал этот вопрос в raspberry pi forum, потому что я думаю, что это общая проблема Linux/programming.

Ответ 1

Статья здесь объясняет весь процесс самым простым способом с помощью рабочих изображений. Это Linux-способ сделать это, а не скрипт node.js Я заявляю здесь основную часть этого.

  • Соединитесь с Pi, используя IP-адрес. "pi" и "raspberry" являются стандартными "login as" и "password" в Raspbian.

  • Чтобы обновить системный тип в команде sudo apt-get update и sudo apt-get upgrade одному.

  • Введите команду sudo apt-get install motion чтобы начать установку.

  • Теперь, чтобы убедиться, что камера правильно обнаружена, введите команду lsusb и введите. Вы должны увидеть название своей камеры. Если это НЕ, то есть проблема в вашей камере или камера не поддерживается в режиме "motion".

  • По завершении установки введите команду sudo nano/etc/motion/motion.conf и нажмите enter.

  • Затем вам нужно изменить некоторые параметры в файле .conf. Иногда бывает сложно найти настройки, но использовать Ctrl + W, чтобы найти его. Итак, выполните следующие действия:

    1. Убедитесь, что "демон" включен.
    2. Установите "частота кадров" в любом месте от 1000 до 1500.
    3. Держите "Stream_port" до 8081.
    4. "Stream_quality" должен быть 100.
    5. Измените "Stream_localhost" на OFF.
    6. Измените 'webcontrol_localhost' на OFF.
    7. Установите "качество" на 100.
    8. Установите "ширина" и "высота" на 640 и 480.
    9. Установите "post_capture" на 5.
    10. Нажмите ctrl + x для выхода. Введите y для сохранения и ввода для соответствия.
  • Снова введите команду sudo nano/etc/default/motion и нажмите enter.

  • Установите start_motion_daemon в yes. Сохранить и выйти.

  • Прежде всего, вам нужно перезапустить программное обеспечение для движения. Для этого введите команду sudo service motion restart и нажмите enter.

  • Снова введите команду sudo motion и нажмите enter. Теперь ваш сервер готов.

  • Теперь откройте свой браузер. Введите IP-адрес вашего малины Pi и номер порта следующим образом:

    192.168.0.107:8081 (Сначала есть IP-адрес, затем ":", затем номер порта). Нажмите Ввод.

Теперь вы можете видеть Live-канал, поступающий с вашей веб-камеры, прямо на ваш ноутбук или мобильный телефон или оба одновременно. Но это локальная связь. Чтобы сделать его общедоступным, настройте свой IP-адрес публичным, чтобы вы могли получить доступ из любой точки мира.

Ответ 2

Используйте фреймворк, например livecam.

Режимы трансляции веб-камеры с использованием GStreamer и Node.js

Этот модуль позволяет вам транслировать вашу веб-камеру по сети, которая будет использоваться браузером yuor и/или передаваться в файл. Дополнительную информацию см. В документации.

Применение:

// npm install livecam

const LiveCam = require('livecam');
const webcam_server = new LiveCam({
    'start' : function() {
        console.log('WebCam server started!');
    }
});

webcam_server.broadcast();