通过 gstreamer 和 v4l2sink 提供的虚拟摄像头的 WebRTC 视频冻结

WebRTC video freezes for virtual camera provided through gstreamer and v4l2sink

我正在尝试使用 WebRTC 在我的网页中使用我的 IP 摄像头 (Vstarcam C7837WIP) 捕获的视频。

网络摄像头通过以太网电缆直接连接到我的电脑,我设法在 linux 14.04 上使用 cheese 应用程序使用 gstreamer 和 [=14 访问视频=] 使用此命令

gst-launch-1.0 -vet  souphttpsrc location='http://10.10.10.10:81/videostream.cgi?user=XXX&pwd=XXX' timeout=5 ! jpegdec ! tee ! v4l2sink device=/dev/video1

不幸的是,我在使用带有 WebRTC 的虚拟网络摄像头时遇到问题(例如 https://webrtc.github.io/samples/src/content/getusermedia/gum/)。在 Firefox 中选择摄像头后,视频显示摄像头画面并立即卡住。

同样,如果我使用

gst-launch-1.0 videotestsrc ! tee ! v4l2sink device=/dev/video1

我在浏览器中只看到一张图片,但看不到视频流 - 尽管在 cheese 中可以。

知道如何获得可用于 WebRTC 的视频流吗?

编辑:

我从 https://github.com/umlaeute/v4l2loopback 下载了 v0.10.0 并使用 modprobe v4l2loopback exclusive_caps=0

创建了虚拟视频设备

编辑2:

如果我使用

也会发生同样的情况
gst-launch-1.0 -vet  rtspsrc user-id='XXX' user-pw='XXX' location='rtsp://10.10.10.10:10554/udp/av0_0' latency=0 ! decodebin ! tee ! v4l2sink device=/dev/video1

我已经设法使用

解决了我的问题
gst-launch -vet  rtspsrc user-id='XXX' user-pw='XXX' location='rtsp://10.10.10.10:10554/udp/av0_0' latency=0 ! decodebin2 ! v4l2sink device=/dev/video1

剩下的问题是,如何使用 gst-launch-1.0 获得解决方案(我假设最终 gst-launch-1.0 将成为默认版本,而 0.10 版本将在某个时候被弃用)?