本文最后一次在 2021 年 11 月15 日更新,部分内容可能已经过时!

视频点此

网课、开会、直播,总会要求有电脑摄像头。但是为这一段时间而单独购买一个摄像头不值当,就不如让手机来完成这一角色,画质还好。

一、电脑端

Archlinux通过AUR安装,其他发行版就自己找一找吧。

AUR安装DroidCam。注意编辑PKGBUILD,将headers的依赖修改为与你的内核相对应的版本。比如默认的linux内核就保持默认的linux-headers依赖,lts内核就改成linux-headers-lts,以此类推。

完成后重启,载入模块sudo modprobe v4l2loopback_dc

二、手机端

搜索安装droidcamx即可。

三、使用

现在,将电脑和手机连入同一个局域网,启动手机应用,会给出ip和端口号。启动电脑端程序,将给出的ip和端口号填入,连接。

你会发现手机端启动相机功能了。那么如何在电脑上使用它呢?

只需要打开任何一款有视频捕获功能的程序,比如OBS,新建视频捕获设备(V4L2),其中的设备选择v4l2loopback一项,确定。你会发现你的手机已经作为电脑摄像头使用了。但是你会发现,这个镜头的分辨率很低,有没有办法提高它呢?

四、提升分辨率

很简单。首先关闭所有正在使用摄像头的程序,然后停止内核模块:sudo rmmod v4l2loopback_dc

编辑/etc/modprobe.d/droidcam.conf,将其中的widthheight修改为自己想要的宽高比,保存(没有这两个参数则直接写入即可)。需要注意,免费版程序只能用4:3的分辨率,其他比例的分辨率会拉拉伸画面。

再次启用模块:sudo modprobe v4l2loopback_dc,重新打开捕获程序,分辨率就提高了。

最后,就像前一篇文章。如果你的AUR获取有问题,那么可以尝试使用我这里提供的两个源文件:icon2.pngdroidcam.tar.bz2。或者你可以直接使用我编译好的droidcam-6.7.5-4-x86_64.pkg.tar.xz安装。但由于每个人的电脑环境不同,这个不能保证可以正常使用——尤其是非lts内核的用户。

已有 4 条评论

  1. 这两天装的debian出了问题,xfce桌面,root能登陆,普通用户登录不了,密码正确,点击登陆密码框就自动清空,字符界面能登,并且正常使用,只是图形界面不正常,求解救(我实在不知道请教谁了,好像没多少人用linux,就来请教了)本人终极小白一个 —— 某人 某人 发表。 回复TA
  2. 怎么用v4l2loopback模拟摄像头呢?
    我现在的思路是先虚拟一个/dev/video,然后通过ffmpeg像里面传输内容。但是到现在都没有实现,chrome和obs都没有成功识别,博主有什么想法呢? —— 采唐 采唐 发表。 回复TA
    1. 这思路没问题。主要看看v4l2模块装好没有,然后加载这个模块没有。可以先加载一下v4l2loopback,然后对比加载前后/dev/下面有没有多出来一个video文件(应该本身有video0,加载之后会多一个video1)。最后,我测试发现,只有ffmpeg正在往这个文件推流的时候,obs才能找到。 —— 等我稍后补充昵称 等我稍后补充昵称 [作者] 于 发表。 回复TA
  3. 非常感谢,我现在已经成功了,加载模块时要加上这个exclusive_caps=1 ,然后用gsteamer管道输入的。gsteamer还有很多有意思的地方,我在试着把内置麦克风作为摄像头麦克风。 —— 采唐 采唐 发表。 回复TA

添加新评论