允许多个程序访问同一个V4L2设备

允许多个程序访问同一个V4L2设备

我希望能够捕获来自网络摄像头的输入以用于单独的程序。一种用于 VoIP,一种用于捕获。

问题是 - Linux 只允许一个进程访问 V4L2 设备,所以一旦我运行视频聊天,捕获就会得到黑帧,如果我先启动捕获程序,视频聊天就会得到黑帧。

我该如何解决这个问题?有没有办法允许多个进程访问单个/dev/video设备?或者也许我可以克隆/dev/video0并以某种方式创建一个/dev/video1

答案1

你可以使用v4l2环回创建多个虚拟设备,每个想要访问流的程序一个,然后使用诸如tee将视频转发到虚拟设备之类的程序。

相关内容