我想尝试在Google+环聊中使用Cheese,以及类似的配置,并且想知道两个进程是否可以同时使用该网络摄像头。我还没有尝试过,但是在我尝试之前,我想问一下。
那么,有可能吗?
我想尝试在Google+环聊中使用Cheese,以及类似的配置,并且想知道两个进程是否可以同时使用该网络摄像头。我还没有尝试过,但是在我尝试之前,我想问一下。
那么,有可能吗?
Answers:
好吧,我只是尝试过。有趣的结果。
我有Skype,奶酪和网络摄像头玩具以及视频群聊(都可以正常工作),并一起尝试过。
结果:
您不能同时在两件事上使用同一网络摄像头。
奶酪(工作中)+网络摄像头玩具(不工作)+ Skype(小,右上。不工作)。
您可以在2件事上使用2个网络摄像头。(奶酪+网络摄像头玩具)。
环聊(无效)+奶酪(有效)
环聊(自己进行)。
我第一次打开环聊时,奶酪破了。它与其他人的操作相同,但是我的互联网太慢了,无法上传每个屏幕截图(我怀疑您会欣赏30多个屏幕截图)...
我什至尝试建立一个符号链接/dev/video0
并将其保存/dev
为video2
。那没用。
我也不能一次运行2个奶酪过程。
如果需要,我建议将其全屏显示并进行2屏录制。我怀疑这是否可以满足您的需求。
GitHub上目前有一个项目,它不仅可以显示两个,而且可以显示来自单一来源的无限数量(仅受系统容量限制)的视频设备。
该项目称为v4l2loopback
。(检查链接并向下滚动以查看自述文件中的说明。)
您可以v4l2loopback
通过克隆其GitHub并运行以下命令来进行安装:
$ git clone https://github.com/umlaeute/v4l2loopback.git
$ cd v4l2loopback
$ make
$ sudo make install
有关如何与GStreamer,FFmpeg,MPlayer和Skype一起使用的示例,请查看其小型Wiki。希望您可以找到适合您需要的正确设置。
享受微调!
tee
实用工具(它不等待stdin
完成它的输入)就更加复杂。如果它实际上使用等效于tee
引擎盖下的可扩展性支持的二进制文件,我不会感到惊讶。
基于@The Eye的答案
我首先在Ubuntu 18.04 https://gstreamer.freedesktop.org/documentation/installing/on-linux.html上安装了gstreamer软件包。
$ git clone https://github.com/umlaeute/v4l2loopback.git
$ cd v4l2loopback
$ make
$ sudo make install
我在Ubuntu 18.04 LTS https://github.com/umlaeute/v4l2loopback/issues/139上收到了警告消息(但这并没有阻止我加载v4l2loopback驱动程序)
$ sudo depmod -a
我的笔记本电脑/ dev / video0上只有1个网络摄像头,我想从相同的硬件获取2个流。基于https://github.com/umlaeute/v4l2loopback/blob/master/README.md
$ modprobe v4l2loopback devices=2
现在应该假设唯一的视频设备存在/dev/video1
并/dev/video2
创建/dev/video0
。
现在我在一个终端窗口中运行以下命令
gst-launch-1.0 v4l2src device=/dev/video0 ! tee name=t ! queue ! v4l2sink device=/dev/video1 t. ! queue ! v4l2sink device=/dev/video2
我再打开2个标签页
在第一个标签中
gst-launch-1.0 v4l2src device=/dev/video1 ! videoconvert ! ximagesink
在第二个标签中
gst-launch-1.0 v4l2src device=/dev/video2 ! videoconvert ! ximagesink
现在应该可以看到2个视频流
更新
即使我/dev/video1
多次使用同一台设备,也都给了我那么多流。例。
在第一个标签中
gst-launch-1.0 v4l2src device=/dev/video1 ! videoconvert ! ximagesink
在第二个标签中
gst-launch-1.0 v4l2src device=/dev/video1 ! videoconvert ! ximagesink
在第三个标签中
gst-launch-1.0 v4l2src device=/dev/video1 ! videoconvert ! ximagesink
给我三个流。
pactl list | grep -A2 'Source #'
然后在以下管道中使用该设备(也可以运行管道的多个实例)gst-launch-1.0 pulsesrc device=alsa_input.<name of device> ! autoaudiosink