一尘不染

将IP摄像机与webRTC一起使用

linux

我想在webrtc中使用IP摄像机。但是,webrtc似乎仅支持网络摄像头。因此,我尝试将IP摄像机的流转换为虚拟网络摄像机。

我找到了IP Camera Adapter之类的软件,但是它们运行不佳(每秒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流并将其写入虚拟网络摄像头)。我尝试过,ffmpeg -re -i rtsp://192.168.1.16/play2.sdp -f video4linux2 -input_format mjpeg -i /dev/video0但是v4l2有一个错误(找不到v4l2)。

有谁知道如何在webRTC中使用IP摄像机?


阅读 717

收藏
2020-06-03

共1个答案

一尘不染

简短的答案是,不会。RTSPWebRTC的IETF标准中未提及该文件,并且当前没有浏览器计划支持它。链接到Chrome讨论

更长的答案是,如果您真的对这个想法感到厌烦,那么您将必须使用本机WebRTC
API
构建一个webrtc网关/断路器。

  1. 在浏览器和断路器之间启动WebRTC会话
  2. 使用网关/断路器来抓取IP Camera feed
  3. 将破坏者通过WebRTC API收集的RTSP流中的rtp流加密并推送到WebRTC会话。

这就是其他人如何做到的,以及它将如何做到。

2014年7月30日更新:

我已经尝试过janus-gateway,并且我相信流插件确实可以做到这一点,因为它可以抓取rtp流并将其推送到webrtc对等端。对于RTSP,您可能会创建RTSP客户端(可能使用gstreamer之类),然后将RTP和RTCP从连接推送到WebRTC对等方。

2020-06-03