系统信息
- Debian Linux 12 (bookworm)
安装OBS-Studio及依赖
OBS-Studio在linux上有官方的flatpak支持,所以就从flathub安装
flatpak install flathub com.obsproject.Studio |
这里的依赖就是obs虚拟摄像头的依赖,包名为v4l2loopback-dkms
直接使用apt命令安装
sudo apt install v4l2loopback-dkms |
启动OBS-Studio
首次安装完obs启动后会出现一个配置向导
如图
正常情况下会出现三个选项:
- 优先优化串流,其次为录像
- 仅优化录像,将不会进行串流
- 只使用虚拟摄像头
但是在我启动后只出现了前两个选项:
- 优先优化串流,其次为录像
- 仅优化录像,将不会进行串流
第三个选项便不出来了 经过搜索找到以下命令
sudo modprobe v4l2loopback |
运行并重启obs后和图中表现一致,可以正常使用虚拟摄像头
在运行上述命令时有一行日志
v4l2loopback not installed, virtual camera disabled |
思路分析
因为知道了是v4l2loopback
的问题直接到github查阅源码 OBS-Studio Github
在搜索栏搜索repo:obsproject/obs-studio v4l2loopback
在code栏中有两个结果plugins/linux-v4l2/linux-v4l2.c
和plugins/linux-v4l2/v4l2-output.c
对应代码片段
plugins/linux-v4l2/linux-v4l2.c |
plugins/linux-v4l2/v4l2-output.c |
先看输出日志的linux-v4l2.c
文件 对应方法中通过loopback_module_available()
判断v4l2loopback
模块是否可用
loopback_module_available()
中判断 加载模块返回true
通过modinfo
命令查询到模块信息也返回true
但是在其中modinfo
前未加sudo
前缀,这个命令是在sbin
文件夹下的,Debian默认未将sbin
加入普通用户的PATH
从而导致obs的判断出现错误
解决方案
修改PATH
是普通用户也可直接运行sbin
中程序
Debian的配置文件是/etc/profile
编辑/etc/profile
并改为如下所示
if [ "$(id -u)" -eq 0 ]; then |
问题解决
本博客所有文章除特别声明外,均采用 All Rights Reserved 许可协议。转载请注明来自 沧月的博客!
评论