我有一个基于铬浏览器的WebRTC解决方案,它使用本地设备摄像头。然而,相机安装在一个很大的距离,不能连接到任何PC通过USB。它们可以通过以太网电缆连接到局域网。
有没有办法模仿相机作为本地媒体设备,以便navigator.mediaDevices.enumerateDevices能够识别它们?我可以更改代码或使用任何API来检测IP摄像机吗?任何指示都会很有帮助。
我已经尝试了以下几种选择:
发布于 2020-04-09 08:24:10
v4l2loopback是你可以做到的一种方式!这允许您使用任意媒体在Linux上提供虚拟摄像头。
然后,您可以在GStreamer中使用如下所示的管道
gst-launch-1.0 rtmpsrc location=$RTMP_SRC ! decodebin ! v4l2sink device=/dev/video0该管道从RTMP服务器获取媒体,对其进行解码,然后将其推送到新的虚拟摄像头。您的设备名称可能不同,ls /dev/video*将有所帮助。然后,当你打开铬,你可以选择一个新的虚拟摄像头,这是通过rtmpsrc。
作为后续问题,你需要通过铬发布吗?用π介子WebRTC这样的东西发布是非常容易的,你可以给它任意的媒体,它可以推到浏览器上。它还提供了如何从rtmpsrc中提取的示例。
另一个解决方案可能是OBS。它允许您使用RTMP Source,然后可以输出Virtual Cam。因此,OBS将提供一个摄像头,其中包含您制作的内容,这将只是一个全屏幕视频从RTMP。
https://stackoverflow.com/questions/61113302
复制相似问题