令人高兴的是,现在,是的!

令人高兴的是,现在,是的!

我想尝试在 Google+ Hangouts 中使用 Cheese 以及类似的配置,我想知道是否可以同时让两个进程使用网络摄像头来访问网络摄像头。我还没有尝试过,但在尝试之前,我想我会问一下。

那么,可能吗?

答案1

令人高兴的是,现在,是的!

GitHub 上目前有一个项目,它可以显示来自单一来源的不仅两个,而且无限数量的(仅受系统容量限制)视频设备。

该项目名为v4l2loopback(检查链接并向下滚动以查看 README 中的说明。)

您可以v4l2loopback通过克隆其 GitHub 并运行以下命令来安装:

$ git clone https://github.com/umlaeute/v4l2loopback.git
$ cd v4l2loopback
$ make
$ sudo make install

例子

有关如何将其与 GStreamer、FFmpeg、MPlayer 和 Skype 一起使用的示例,请查看其小维基百科。希望您能找到适合您需要的正确设置。

享受调整吧!

答案2

由于没有使用 的答案ffmpeg,所以就是这样。


解释

Whilev4l2loopback创建虚拟视频设备,默认情况下它们不与任何东西关联。要使它们有用,您必须通过外部应用程序(例如)向它们发送流ffmpeg

首先加载模块

$ sudo modprobe v4l2loopback exclusive_caps=1 video_nr=5 #creates `/dev/video5`

然后将网络摄像头的输入发送到虚拟设备。

$ ffmpeg -i /dev/video0 -f v4l2 -codec:v rawvideo -pix_fmt yuv420p /dev/video5

现在/dev/video5可用作伪网络摄像头。请注意,与物理网络摄像头不同,单个虚拟视频设备可同时从多个应用程序访问。因此,在这种情况下,您不必创建许多虚拟设备。

我编写了一个脚本来完成这些步骤:v4l2_webcam-GitHub


应用

您可以将任何(原始)视频发送到虚拟视频设备。这意味着,例如,可以使用复杂的混合视频光子发射站作为网络会议的摄像头输入(例如 Skype、Zoom 等)。

下面是一个相对复杂但是非常实用的例子:

结构

示例结构

结果

示例结果

答案3

我刚刚试过了。结果很有趣。

我有 skype、cheese、webcam toy 和 hangouts(它们都可以用)并一起尝试了它们。

结果:

您不能同时在两台设备上使用同一个网络摄像头。

奶酪(工作)+ 网络摄像头玩具(不工作)+ Skype(小,右上方。不工作)。

在此处输入图片描述

不过,你可以在两件东西上使用两个网络摄像头。(奶酪 + 网络摄像头玩具)。

在此处输入图片描述

Hangouts(不工作)+ Cheese(工作)

在此处输入图片描述

视频群聊(独立工作)。

在此处输入图片描述

当我第一次打开 Hangouts 时,Cheese 就坏了。打开其他应用时也是这样,但我的网速太慢,无法上传每一张截图(而且我怀疑你会喜欢 30 多张截图)...

在此处输入图片描述

我甚至尝试创建一个符号链接并将/dev/video0其保存/devvideo2。但是没有成功。

我无法同时运行 2 个奶酪加工过程。

如果必须的话,我建议将其设置为全屏并进行 2 次屏幕录制。不过我怀疑这是否能达到你想要的效果。

答案4

答案是否定的,但也许可以……库“Video 4 Linux”会检测设备是否正在使用,并且不会启动。但是,如果您希望下载 libv4l-dev 并手动编辑它,您可以编辑代码以删除此检查,然后重新编译它。我想您可以让它工作,但它会非常不稳定。不过可能值得一试。

TLDR:如果您是一名手头有些力气的程序员,一切皆有可能。不想走那么远?那么不行;这是不可能的。

相关内容