如何在Linux上写入虚拟摄像头?

17

我想从真实的网络摄像头捕获视频,利用openCv应用滤镜,并将处理后的视频写入虚拟网络摄像头中,以便在网页上进行流媒体传输。

前两个步骤我没有问题,但是我不知道如何将视频写入虚拟网络摄像头。

这种操作是否可行?

我使用的是C++openCv,运行环境是Debian

谢谢。


如果你有另一种方法来流过滤后的视频... - user1275896
如何“写入”网络摄像头?这是什么意思? - San Jacinto
你打算如何进行流媒体传输?不要制作虚拟摄像头,直接从你的应用程序中托管流媒体服务会更容易。制作虚拟摄像头涉及驱动程序编程,比仅仅托管服务要复杂得多。也许可以找到一个开源的流媒体服务器,并在其中加入一些新功能。 - Esben Skov Pedersen
@sanJacinto:我认为在Linux上,摄像头会将文件写入/dev/something。我想要写入该文件而不是真正的摄像头。 - user1275896
2个回答

26

实际上这是可行的。一个快速而简单的方法是使用WebcamStudio。它可以创建一个新的视频设备(例如/device/video2),其他程序将其视为正常的视频设备,并可以从桌面获取输入,因此您只需要设置它来捕获 OpenCV 输出显示的部分屏幕。

一种更好但更技术性的方法是使用V4L2 loop back module。这样,您可以将 OpenCV 的输出直接传输到模块中,而其他程序则将其视为常规视频设备。查看此页面底部的自述文件:https://github.com/umlaeute/v4l2loopback和维基页面:https://github.com/umlaeute/v4l2loopback/wiki以获取更多信息。

希望这有所帮助。


谢谢。使用v4l2 loopback的解决方案似乎非常有趣。 你能否为我推荐手册或“如何”指南?我已经找过了,但很难找到... - user1275896
我编辑了答案,看看是否足以理解如何使用它。如果你需要一个OpenCV的例子,现在我很忙,晚些时候或明天我可以在Ubuntu上写一个例子。 - fireant
我该如何实际操作呢? - Shambhav Gautam

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接