我想从真实的网络摄像头捕获视频,利用openCv应用滤镜,并将处理后的视频写入虚拟网络摄像头中,以便在网页上进行流媒体传输。
前两个步骤我没有问题,但是我不知道如何将视频写入虚拟网络摄像头。
这种操作是否可行?
我使用的是C++和openCv,运行环境是Debian。
谢谢。
我想从真实的网络摄像头捕获视频,利用openCv应用滤镜,并将处理后的视频写入虚拟网络摄像头中,以便在网页上进行流媒体传输。
前两个步骤我没有问题,但是我不知道如何将视频写入虚拟网络摄像头。
这种操作是否可行?
我使用的是C++和openCv,运行环境是Debian。
谢谢。
实际上这是可行的。一个快速而简单的方法是使用WebcamStudio。它可以创建一个新的视频设备(例如/device/video2),其他程序将其视为正常的视频设备,并可以从桌面获取输入,因此您只需要设置它来捕获 OpenCV 输出显示的部分屏幕。
一种更好但更技术性的方法是使用V4L2 loop back module。这样,您可以将 OpenCV 的输出直接传输到模块中,而其他程序则将其视为常规视频设备。查看此页面底部的自述文件:https://github.com/umlaeute/v4l2loopback和维基页面:https://github.com/umlaeute/v4l2loopback/wiki以获取更多信息。
希望这有所帮助。
v4l2loopback
、OBS Studio
和 obs-v4l2sink
的组合。
使用 OBS Studio
捕获设备视频,然后 obs-v4l2sink
是一个小插件,将输出写入您选择的 /dev/video*
中。