【发布时间】:2014-10-08 12:37:16
【问题描述】:
我想在需要同时独占访问视频设备的两个不同系统中使用一个网络摄像头的图像。因此,我使用 v4l2loopback 创建了两个虚拟摄像头,每个系统一个,现在我尝试将数据从实际网络摄像头传输到两个虚拟摄像头。我尝试使用 GStreamer,但它只允许我将数据流式传输到一个虚拟摄像机。如果我也尝试流式传输到另一个,我最终会遇到网络摄像头已经很忙的原始问题。我想不出解决这个问题的方法,不胜感激!
【问题讨论】:
我想在需要同时独占访问视频设备的两个不同系统中使用一个网络摄像头的图像。因此,我使用 v4l2loopback 创建了两个虚拟摄像头,每个系统一个,现在我尝试将数据从实际网络摄像头传输到两个虚拟摄像头。我尝试使用 GStreamer,但它只允许我将数据流式传输到一个虚拟摄像机。如果我也尝试流式传输到另一个,我最终会遇到网络摄像头已经很忙的原始问题。我想不出解决这个问题的方法,不胜感激!
【问题讨论】:
只是一个想法,我还没有真正尝试过,假设您连接了一个网络摄像头及其 /dev/video0,现在使用 v4l2loopback 创建两个虚拟设备,例如 /dev/video1 和 /dev/video2,然后创建一个 gstreamer 管道带有一个输出到 2 个 v4l2sink 的 /dev/video1 和 /dev/video2 的 tee 元素。
希望有帮助!
【讨论】:
gst-launch-1.0可用,命令应该是gst-launch-1.0 v4l2src device=/dev/video0 ! "video/x-raw,format=YUY2,width=640,height=480,framerate=30/1" ! tee name=t ! queue ! v4l2sink device=/dev/video1 t. ! queue ! v4l2sink device=/dev/video2