【问题标题】:Create 2 virtual camera devices streaming the same images one actual webcam does创建 2 个虚拟摄像头设备,流式传输与一个实际网络摄像头相同的图像
【发布时间】:2014-10-08 12:37:16
【问题描述】:

我想在需要同时独占访问视频设备的两个不同系统中使用一个网络摄像头的图像。因此,我使用 v4l2loopback 创建了两个虚拟摄像头,每个系统一个,现在我尝试将数据从实际网络摄像头传输到两个虚拟摄像头。我尝试使用 GStreamer,但它只允许我将数据流式传输到一个虚拟摄像机。如果我也尝试流式传输到另一个,我最终会遇到网络摄像头已经很忙的原始问题。我想不出解决这个问题的方法,不胜感激!

【问题讨论】:

    标签: virtual webcam gstreamer


    【解决方案1】:

    只是一个想法,我还没有真正尝试过,假设您连接了一个网络摄像头及其 /dev/video0,现在使用 v4l2loopback 创建两个虚拟设备,例如 /dev/video1 和 /dev/video2,然后创建一个 gstreamer 管道带有一个输出到 2 个 v4l2sink 的 /dev/video1 和 /dev/video2 的 tee 元素。

    希望有帮助!

    【讨论】:

    • 这正是我想要的!非常感谢!我不知道 tee 元素,不知何故它在谷歌搜索时没有出现。现在对我有用的是设置 2 个 v4l2loopback 设备,然后运行 ​​gstreamer:'gst-launch v4l2src device=/dev/video0! 'video/x-raw-yuv,width=640,height=480,framerate=30/1' !三通名称=t!队列 ! v4l2sink 设备=/dev/video1 t。 !队列 ! v4l2sink 设备=/dev/video2 gst-launch v4l2src 设备=/dev/video1 ! 'video/x-raw-yuv,width=640,height=480,framerate=30/1' ! xvimagesink'
    • 这没什么大不了的,但是现在有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
    猜你喜欢
    • 2011-02-02
    • 2013-05-14
    • 2019-04-21
    • 2019-09-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-18
    • 2011-09-08
    • 1970-01-01
    相关资源
    最近更新 更多