【问题标题】:How to write on a virtual webcam in Linux?如何在 Linux 中的虚拟网络摄像头上写字?
【发布时间】:2023-03-18 03:23:01
【问题描述】:

我想从真实的网络摄像头捕捉视频,使用 openCv 应用过滤器并将过滤后的视频写入虚拟网络摄像头,以便在网络上进行流式传输。

前 2 点我没有问题,但我不知道如何在虚拟网络摄像头上书写。

有可能吗?

我该怎么做?

我在 Debian 上使用 openCvC++。 谢谢

【问题讨论】:

  • 或者如果您有其他想法来流式传输过滤后的视频...
  • 如何“写入”网络摄像头?这是什么意思?
  • 您打算如何进行流式传输?无需制作虚拟网络摄像头,只需直接从您的应用程序托管流媒体服务。应该更容易。制作虚拟凸轮涉及驱动程序编程,这比简单地托管服务要复杂得多。也许找一个开源流媒体服务器并用你的新功能稍微修改一下。
  • @sanJacinto:我认为在 Linux 上,网络摄像头会在 /dev/something 中写入文件。我想写那个文件而不是真正的网络摄像头

标签: c++ c linux opencv video-streaming


【解决方案1】:

嗯,实际上这是可能的。一种快速而肮脏的方法是使用WebcamStudio。 这将创建一个新的视频设备(例如,/device/video2),其他程序将其视为普通视频设备并可以从桌面获取其输入,因此您只需将其设置为捕获显示 OpenCV 输出的屏幕的一部分在那里。

更好但更技术性的方法是使用V4L2 loop back module。这样,您可以简单地将 OpenCV 的输出通过管道传输到模块,该模块被其他程序视为常规视频设备。请参阅本页底部的自述文件: https://github.com/umlaeute/v4l2loopback 和维基页面: https://github.com/umlaeute/v4l2loopback/wiki 了解更多信息。

希望对您有所帮助。

【讨论】:

  • 谢谢。 v4l2 环回的解决方案似乎很有趣。你能给我推荐一些手册或“howto”吗?我找了他们,但很难找到……
  • 我编辑了答案,看看是否足以理解如何使用它。如果你需要一个OpenCV的例子,现在我今晚晚些时候很忙,或者明天我可以在ubuntu上写一个例子。
  • 我该怎么做呢?
【解决方案2】:

您还可以使用v4l2loopbackOBS Studioobs-v4l2sink 的组合。

使用OBS Studio 从您的设备捕获视频,然后obs-v4l2sink 是一个小插件,可将输出写入您选择的/dev/video*

https://github.com/umlaeute/v4l2loopback/wiki/OBS-Studio

https://github.com/CatxFish/obs-v4l2sink

【讨论】:

    猜你喜欢
    • 2011-09-08
    • 1970-01-01
    • 2019-09-01
    • 2016-02-15
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    • 2012-01-23
    相关资源
    最近更新 更多