Использование IP-камеры с webRTC

Я хочу использовать IP-камеру с webrtc. Однако webrtc, похоже, поддерживает только веб-камеры. Поэтому я пытаюсь преобразовать поток IP-камеры в виртуальную веб-камеру.

Я нашел программное обеспечение как адаптер IP-камеры, но они не работают хорошо (2-3 кадра в секунду и задержка 2 секунды), и они работают только на Windows, я предпочитаю использовать Linux (если это возможно).

Я пытаюсь ffmpeg / avconv:

  • во-первых, я создал виртуальное устройство с v4l2loopback (команды: sudo modprobe v4l2loopback). Виртуальное устройство обнаружено и может быть подано с видео (.avi) с командой типа:ffmpeg -re -i testsrc.avi -f v4l2 /dev/video1

  • поток от IP-камеры доступен с:rtsp://IP/play2.sdp для камеры Dlink DCS-5222L. Этот поток может быть захвачен ffmpeg.

моя проблема заключается в том, чтобы сделать ссылку между этими двумя шагами (получить поток rstp и записать его на виртуальную веб-камеру). Я пытался!--3--> но есть ошибка с v4l2 (v4l2 не нашли).

есть ли у кого-нибудь идея, как использовать IP-камеру с webRTC?

4 ответов


короткий ответ-нет. RTSP не упоминается в стандарте IETF для WebRTC и в настоящее время ни один браузер не планирует его поддерживать. ссылка на обсуждение Chrome.

более длинный ответ заключается в том, что если вы действительно продали эту идею, вам придется построить шлюз/выключатель webrtc, используя родной WebRTC API.

  1. запустите сеанс WebRTC между браузером и выключателем
  2. захватите питание камеры IP с вашим шлюз/выключатель
  3. шифрование и нажмите поток rtp на сеанс WebRTC из потока RTSP, собранного прерывателем через API WebRTC.

Это как другие и как это нужно будет сделать.

7/30/2014 обновления:

я экспериментировал с Янус-шлюз и я считаю, что плагин streaming делает именно это, поскольку он может захватить поток rtp и подтолкнуть его к узлу webrtc. Для RTSP, вы, вероятно, могли бы создать RTSP-клиент(возможно, используя библиотека, как gstreamer), затем нажмите RTP и RTCP от подключения к узлу WebRTC.


Я создал простой пример преобразования RTSP или HTTP-видеопотока в поток WebRTC. Этот пример основан на Kurento Media Server (KMS) и требует его установки для работы примера.

установите KMS и наслаждайтесь ...

https://github.com/lulop-k/kurento-rtsp2webrtc

обновление 22-09-2015. Проверка этот пост для технического объяснения того, почему транскодирование является лишь частью решения к этой проблеме.


Янус-шлюз недавно добавлена простая поддержка RTSP (на основе libcurl) к своим потоковым плагинам, так как это commit

затем можно настроить шлюз для согласования RTSP с камерой и ретрансляции мысли RTP WebRTC, добавляя в конфигурацию плагинов потоковой передачи <prefix>/etc/janus/janus.plugin.streaming.cfg

[camera]
type = rtsp
id = 99
description = Dlink DCS-5222L camera
audio = no
video = yes
url=rtsp://192.168.1.16/play2.sdp

Далее вы сможете получить доступ к потоку WebRTC, используя демо-страницу потокового http://..../ демонстрации / streamingtest.HTML-код


Если у вас установлен video4linux, следующая команда создаст виртуальную веб-камеру из RTSP-потока:

  gst-launch rtspsrc location=rtsp://192.168.2.18/play.spd ! decodebin ! v4l2sink device=/dev/video1

Вы были на правильном пути, "decodebin" был недостающим звеном.