Java создание потокового веб-сервера для прямой трансляции веб-камеры - PullRequest
0 голосов
/ 04 апреля 2020

У меня есть веб-камера, подключенная к серверу через USB. Я записываю видео с веб-камеры с помощью OpenCV в java, обрабатываю его, а затем отображаю так:

VideoCapture videoDevice = new VideoCapture();
videoDevice.open(0);
if (videoDevice.isOpened()) {
    while (true) {      
        Mat frameCapture = new Mat();
        videoDevice.read(frameCapture);  

        // here i process the captured frame using opencv
        Mat processedFrame = process(frameCapture);

        lbl.setIcon(new ImageIcon(Mat2Image(processedFrame)));
    }
}
...
private void process(Mat frame) {...}

Работает нормально. Кадры захватываются один за другим, обрабатываются и затем отображаются. Хотя кадры отрисовываются последовательно по мере их обработки, они выглядят как непрерывное видео в JFrame.

Теперь, вместо того, чтобы просматривать его на сервере, цель состоит в том, чтобы превратить / кодировать эти обработанные кадры в непрерывный поток видео, который любой клиентский браузер может просматривать в режиме реального времени, используя URL-адрес, например http://my.server.xyz/feed. Я думаю, что следующие шаги:

  1. Создание видеопотока из этих обработанных кадров (они обрабатываются последовательно)
  2. Создание веб-сервера / веб-службы, которая может потоковое видео, так что любой клиент может просматривать его в своем веб-браузере.
  3. Сделать простую страницу html (размещенную на сервере), которая может воспроизводить этот видео поток (что означает один и тот же обработанный видео поток для всех клиенты, которые его просматривают).

Я пытался использовать Spark Java микрофрейм для выполнения этой работы, однако у меня нет большого опыта работы с веб-приложениями. На сервере у меня уже настроены php и apache.

Я изучил много сообщений, но зашел в тупик. Кто-нибудь может мне помочь реализовать эти три шага?

  1. Как кодировать эти изображения (кадры, как они обрабатываются) в непрерывный видеопоток
  2. Как реализовать веб-сервер / Веб-сервис для потоковой передачи
  3. Как воспроизвести этот поток на очень простой веб-странице, которую просматривает клиент (например, http://my.server.xyz/feed)

Если этот подход не хорош, кто-нибудь может предложить другой практический подход?

Любая помощь будет высоко оценена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...