Использование 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.
- запустите сеанс WebRTC между браузером и выключателем
- захватите питание камеры IP с вашим шлюз/выключатель
- шифрование и нажмите поток 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" был недостающим звеном.