Utilisez une caméra IP avec webRTC

je veux utiliser une caméra IP avec webrtc. Cependant, webrtc semble ne prendre en charge que les webcams. J'essaie donc de convertir le flux de la caméra IP en une webcam virtuelle.

j'ai trouvé des logiciels comme Adaptateur de caméra IP, mais ils ne fonctionnent pas bien (2-3 images par seconde et un délai de 2 secondes) et ils ne fonctionnent que sur Windows, je préfère utiliser Linux (si possible).

j'ai essayer de ffmpeg/avconv:

  • tout d'abord, j'ai créé un périphérique virtuel avec v4l2loopback (la commande est: sudo modprobe v4l2loopback). Le dispositif virtuel est détecté et peut être alimenté par une vidéo (.avi) avec une commande comme:ffmpeg -re -i testsrc.avi -f v4l2 /dev/video1

  • le flux de la caméra IP est disponible à: <!-Pour une caméra Dlink DCS-5222L. Ce flux peut être capturé par ffmpeg.

Mon problème est de faire le lien entre ces deux étapes (recevoir le flux rstp et l'écrire dans le virtuel webcam). J'ai essayé ffmpeg -re -i rtsp://192.168.1.16/play2.sdp -f video4linux2 -input_format mjpeg -i /dev/video0 mais il y a une erreur avec v4l2 (v4l2 pas trouvé).

quelqu'un a-t-il une idée pour utiliser une caméra IP avec webRTC?

14
demandé sur mpromonet 2014-05-05 01:42:57

4 réponses

réponse Courte est non. RTSP n'est pas mentionné dans la norme IETF pour WebRTC et aucun navigateur n'a actuellement des plans pour le supporter. Lien vers Chrome discussion.

réponse plus longue est que si vous êtes vraiment complet sur cette idée, vous aurez à construire une passerelle/breaker webrtc en utilisant le natif API WebRTC.

  1. WebRTC session entre votre navigateur et votre disjoncteur
  2. Saisissez le flux de caméra IP avec votre passerelle/disjoncteur
  3. chiffrez et poussez le flux rtp vers votre session WebRTC à partir de votre flux RTSP recueilli par le disjoncteur via L'API WebRTC.

c'est de Cette façon d'autres l'ont fait et comment il devra être fait.

mise à JOUR 7/30/2014:

j'ai expérimenté avec l' janus-passerelle et je crois que le streaming plugin est EXACTEMENT ce qu'il peut saisir un flux rtp et de le pousser à une webrtc par les pairs. Pour RTSP, vous pouvez probablement créer un client RTSP (éventuellement en utilisant un bibliothèque comme gstreamer), puis poussez le RTP et le RTCP de la connexion vers le Pair WebRTC.

5
répondu Benjamin Trent 2014-07-30 12:57:09

j'ai créé un exemple simple transformant un flux vidéo RTSP ou HTTP en un flux WebRTC. Cet exemple est basé sur Kurento Media Server (KMS) et nécessite de l'avoir installé pour que l'exemple fonctionne.

installez KMS et profitez ...

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

mise à jour 22-09-2015. Vérifier ce post pour une explication technique sur les raisons de transcodage n'est qu'une partie de la solution pour ce problème.

4
répondu lulop 2015-11-25 20:12:05

Janus-passerelle a récemment ajouté un support RTSP simple (basé sur libcurl) à ses plugins de streaming depuis ce valider

alors il est possible de configurer la passerelle pour négocier RTSP avec la caméra et relayer la pensée RTP WebRTC ajoutant dans la configuration de streaming des plugins <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

Suivant vous pourrez accéder au flux WebRTC en utilisant la page de démonstration de streaming http://..../ demos / streamingtest.html

3
répondu mpromonet 2015-09-11 18:53:33

si vous avez video4linux installé, la commande suivante va créer une webcam virtuelle à partir d'un flux rtsp:

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

Vous étiez sur la bonne voie, la "decodebin" était le chaînon manquant.

0
répondu Dominic Cerisano 2016-04-11 00:14:29