我想在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
sudo modprobe v4l2loopback
ffmpeg -re -i testsrc.avi -f v4l2 /dev/video1
IP摄像机的视频流可rtsp://IP/play2.sdp用于:Dlink DCS-5222L摄像机。ffmpeg可以捕获此流。
rtsp://IP/play2.sdp
我的问题是在这两个步骤之间建立链接(接收rstp流并将其写入虚拟网络摄像头)。我尝试过,ffmpeg -re -i rtsp://192.168.1.16/play2.sdp -f video4linux2 -input_format mjpeg -i /dev/video0但是v4l2有一个错误(找不到v4l2)。
ffmpeg -re -i rtsp://192.168.1.16/play2.sdp -f video4linux2 -input_format mjpeg -i /dev/video0
有谁知道如何在webRTC中使用IP摄像机?
简短的答案是,不会。RTSPWebRTC的IETF标准中未提及该文件,并且当前没有浏览器计划支持它。链接到Chrome讨论。
RTSP
更长的答案是,如果您真的对这个想法感到厌烦,那么您将必须使用本机WebRTC API构建一个webrtc网关/断路器。
这就是其他人如何做到的,以及它将如何做到。
2014年7月30日更新:
我已经尝试过janus-gateway,并且我相信流插件确实可以做到这一点,因为它可以抓取rtp流并将其推送到webrtc对等端。对于RTSP,您可能会创建RTSP客户端(可能使用gstreamer之类的库),然后将RTP和RTCP从连接推送到WebRTC对等方。