Użyj kamery IP z webRTC


Chcę używać kamery IP z webrtc. Jednak wydaje się, że webrtc obsługuje tylko kamery internetowe. Więc próbuję przekonwertować strumień kamery IP na wirtualną kamerę internetową.
Znalazłem oprogramowanie takie jak

Adapter kamery IP
http://ip-webcam.appspot.com/
ale nie działają dobrze (2-3 fps i 2 s opóźnienia) i działają tylko na Windows, wolę używać Linuksa (jeśli to możliwe).
Próbuję ffmpeg/avconv:
  • najpierw utworzyłem urządzenie wirtualne z v4l2loopback https://github.com/umlaeute/v4l2loopback/(polecenie brzmiało:
    sudo modprobe v4l2loopback
    ). urządzenie wirtualne jest wykrywane i może zostać przesłane wraz z wideo (.avi) za pomocą polecenia takiego jak:
    ffmpeg -re -i testsrc.avi -f v4l2/dev/video1
  • strumień z kamery IP jest dostępny z:
    rtsp://IP/play2.sdp
    dla kamery Dlink DCS-5222L. Ten strumień może zostać przechwycony przez ffmpeg.

Moim problemem jest utworzenie łącza między tymi dwoma krokami (pobierz strumień rstp i zapisz go na wirtualnej kamerze internetowej). Próbowałem
ffmpeg -re -i rtsp://192.168.1.16/play2.sdp -f video4linux2 -input_format mjpeg -i/dev/video0
, ale wystąpił błąd z v4l2 (nie znaleziono v4l2).
Czy ktoś ma pomysł, jak wykorzystać kamerę IP z webRTC?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Krótka odpowiedź: Nie.
RTSP
nie jest wymieniony w standardzie IETF dla WebRTC i żadna przeglądarka nie planuje obecnie obsługi tego protokołu.

Link do dyskusji w Chrome
https://groups.google.com/foru ... 1-l-Y
.
Dłuższą odpowiedzią jest to, że jeśli naprawdę sprzedałeś pomysł, musiałbyś zbudować bramę/wyłącznik webrtc przy użyciu natywnego

WebRTC API
https://code.google.com/p/webrtc/source/checkout
.
  • Rozpocznij sesję WebRTC między przeglądarką a przełącznikiem
  • Przechwytuj obraz z kamery IP za pomocą bramy/przełącznika
  • Zaszyfruj i wepchnij strumień rtp do sesji WebRTC ze strumienia RTSP zebranego przez urządzenie przerywające za pośrednictwem interfejsu API WebRTC.

Właśnie tak

inni to zrobili i jak należy to zrobić
http://bloggeek.me/trueconf-webrtc-interview/
.
UPDATE 7/30/2014:
Eksperymentowałem z

Janus Gateway
https://github.com/meetecho/janus-gateway
i wierzę, że wtyczka przesyłania strumieniowego robi to DOKŁADNIE, ponieważ może przechwytywać strumień rtp i wysyłać go do peera webrtc. W przypadku RTSP prawdopodobnie mógłbyś utworzyć klienta RTSP (być może używając

biblioteka taka jak gstreamer
http://gstreamer.freedesktop.o ... c.html), a następnie przenieś RTP i RTCP z połączenia do węzła WebRTC.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Stworzyłem prosty przykład konwersji strumienia wideo RTSP lub HTTP na strumień WebRTC. Ten przykład jest oparty na

serwer
http://www.kurento.org
Kurento Media (KMS) i wymaga jego zainstalowania, aby przykład działał.
Zainstaluj KMS i ciesz się ...
https://github.com/lulop-k/kurento-rtsp2webrtc
https://github.com/lulop-k/kurento-rtsp2webrtc
UPDATE 22-09-2015.
Czek

ten post
http://www.kurento.org/blog/in ... meras
aby uzyskać techniczne wyjaśnienie, dlaczego transkodowanie jest tylko częścią rozwiązania tego problemu.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Ostatnio Janus Gateway
https://github.com/meetecho/janus-gateway
dodano prostą obsługę RTSP (opartą na zastosowaniach libcurl) w swoich wtyczkach do przesyłania strumieniowego, jak to

popełnić
https://github.com/meetecho/ja ... 11da7
Następnie można skonfigurować bramę do negocjowania RTSP z kamerą i przekazywania RTP myśli WebRTC, dodając
& < 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

Następnie będziesz mógł uzyskać dostęp do strumienia WebRTC za pomocą strony demonstracyjnej przesyłania strumieniowego

http://..../demos/streamingtest.html
http://..../demos/streamingtest.html
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jeśli masz zainstalowane video4linux, poniższe polecenie utworzy wirtualną kamerę internetową ze strumienia rtsp:
gst-launch rtspsrc location=rtsp://192.168.2.18/play.spd ! decodebin ! v4l2sink device=/dev/video1

Byłeś na dobrej drodze, dekodebin był brakującym ogniwem.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Dla tych, którzy chcieliby pobrudzić sobie ręce jakimś rodzimym WebRTC, czytaj dalej ...
Możesz spróbować strumieniować strumień z kamery IP RTSP za pomocą prostego opakowania ffmpeg-webrtc:

https://github.com/TekuConcept/WebRTCExamples
https://github.com/TekuConcept/WebRTCExamples
.
Używa abstrakcyjnych klas VideoCaptureModule i AudioDeviceModule do wstrzykiwania nieprzetworzonych mediów. Pod maską te abstrakcyjne klasy są rozszerzone na cały sprzęt specyficzny dla platformy, taki jak video4linux lub alsa-audio.
Opakowanie używa narzędzi ffmpeg CLI, ale nie sądzę, że używanie samych bibliotek ffmpeg C nie powinno być zbyt trudne (opakowanie polega na transkodowaniu lub dekodowaniu źródła multimediów, a następnie umożliwia WebRTC ponowne kodowanie zgodnie z wymaganiami połączenia ICE . Nadal pracuję nad wstępnie zakodowanym przejściem mediów).

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się