我希望能够捕获来自网络摄像头的输入以用于单独的程序。一种用于 VoIP,一种用于捕获。
问题是 - Linux 只允许一个进程访问 V4L2 设备,所以一旦我运行视频聊天,捕获就会得到黑帧,如果我先启动捕获程序,视频聊天就会得到黑帧。
我该如何解决这个问题?有没有办法允许多个进程访问单个/dev/video
设备?或者也许我可以克隆/dev/video0
并以某种方式创建一个/dev/video1
?
答案1
你可以使用v4l2环回创建多个虚拟设备,每个想要访问流的程序一个,然后使用诸如tee
将视频转发到虚拟设备之类的程序。