飞蚊话

可能是最通用的虚拟摄像头和虚拟麦克风

视频点此

这两天北京又有点儿吃紧,核心地区的学校又停课了。那必然,如果说上课或者考试的话,肯定会有摄像头来监控你的行为——远程办公也是类似的吧?那有没有办法能让你逃过摄像头的监视呢?虚拟一下就可以了。这可能也是最通用的虚拟方法,任何软件都能使用。

一、原理

如何实现呢?回想一下我曾经说过的用手机做电脑摄像头:在使用时需要先通过命令加载一个v4l2模块,然后在使用摄像头的程序里边选择v4l2的源就可以了。对了,这个v4l2设备就是切入点。我只需要设置一个v4l2设备,然后在需要摄像头的软件里选择这个摄像头即可。那么这个摄像头显示的内容要从哪儿来呢?

再回想一下我曾经说过的与视频流相关的东西什么?对了,ffmpeg就可以做到这一点。ffmpeg是十分强大的一个工具,转码、录制直播、向直播间推流甚至是录屏,都可以通过ffmpeg来完成。所以将两者结合,即可打造一个虚拟的摄像头设备。

二、实现过程

接下来就看看如何实现。

现在,往摄像头中传入视频源,以便使用。

现在,使用任意一款使用到摄像头的软件,你会发现你会多出一个可选摄像头,选择之后显示出来的就是我们刚才使用的那段视频。

那么如何用来逃开远程监视就不必多说了吧?但是要明确一件事情啊,我只是在讨论技术,是你愿意把它拿去用在错误的地方了,这有任何问题可都不赖我。

三、虚拟麦克风

虽然用不到,但是音频和视频一般都是结伴出现的,所以既然有虚拟摄像头了,就附带着搞一个虚拟麦克风吧。不过,说是虚拟麦克风,实际上是新增了一块虚拟声卡,我们把音频流推到这个虚拟声卡上,就实现了虚拟麦克风的效果。

到此就说明虚拟声卡建立了。接下来尝试往这个声卡推送音频流。不过在真正使用之前,还需要找到这个虚拟声卡的设备号。

使用命令aplay -l即可查看到设备号。记住第二个Loopback行的device后的数字。我这里是1。现在就可以真正的往虚拟声卡中推送音频流了。

使用命令ffmpeg -i '文件' -f alsa hw:1,1其中,1,1分别对应刚刚要求记住的两个数字。

现在,使用任意一款使用到麦克风的软件,你会发现多出一个可选麦克风,选择之后就可以看到效果了。

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »