Mar*_*Lee 5 modprobe obs-studio 20.04
我正在使用 OBS Studio 并希望永久保存虚拟视频输出,以便在应用程序启动时可以运行它。
此命令创建虚拟输出:
sudo modprobe v4l2loopback video_nr=10 card_label="OBS Video Source" exclusive_caps=1
Run Code Online (Sandbox Code Playgroud)
但是我必须在每次启动时在控制台中运行命令。我怎样才能使它永久化?使用 OBS Studio 输出的插件配置为自动启动,但/dev/video10
在系统重启后不可用。
$ modinfo v4l2loopback | grep -i parm
parm: debug:debugging level (higher values == more verbose) (int)
parm: max_buffers:how many buffers should be allocated (int)
parm: max_openers:how many users can open loopback device (int)
parm: devices:how many devices should be created (int)
parm: video_nr:video device numbers (-1=auto, 0=/dev/video0, etc.) (array of int)
parm: card_label:card labels for every device (array of charp)
parm: exclusive_caps:whether to announce OUTPUT/CAPTURE capabilities exclusively or not (array of bool)
parm: max_width:maximum frame width (int)
parm: max_height:maximum frame height (int)
Run Code Online (Sandbox Code Playgroud)
通常可以将内核模块添加到 /etc/modules 以在启动时加载。
将此添加到 /etc/modules...
v4l2loopback video_nr=10 card_label="OBS Video Source" exclusive_caps=1
Run Code Online (Sandbox Code Playgroud)
但是,我不知道您是否可以在那里传递参数。所以这是另一种方法。
将此添加到 /etc/modules...
v4l2loopback
Run Code Online (Sandbox Code Playgroud)
创建 /etc/modprobe.d/v4l2loopback.conf
options v4l2loopback video_nr=10 card_label="OBS Video Source" exclusive_caps=1
Run Code Online (Sandbox Code Playgroud)
然后...
sudo update-initramfs -c -k $(uname -r)
reboot
Run Code Online (Sandbox Code Playgroud)
使用...确认模块加载
lsmod | grep -i v4l2loopback
Run Code Online (Sandbox Code Playgroud)
在 Ubuntu 20.04 和其他版本上执行此操作的简单方法:
$ sudo echo "v4l2loopback" > /etc/modules-load.d/v4l2loopback.conf
$ sudo echo "options v4l2loopback video_nr=10 card_label=\"OBS Video Source\" exclusive_caps=1" > /etc/modprobe.d/v4l2loopback.conf
Run Code Online (Sandbox Code Playgroud)
您可以重新启动来检查它是否有效!
请注意 v4l2loopback-dkms 0.12.3-1ubuntu0.1 上的错误
有关此 stackoverflow 帖子的更多信息。
正如 renyhp 所指出的,最好使用 tee 命令:
$ sudo echo "v4l2loopback" | tee /etc/modules-load.d/v4l2loopback.conf
$ sudo echo "options v4l2loopback video_nr=10 card_label=\"OBS Video Source\" exclusive_caps=1" | tee /etc/modprobe.d/v4l2loopback.conf
Run Code Online (Sandbox Code Playgroud)
正如评论所述,似乎在某些系统中重新启动后可能会遇到一些问题。为了避免这种情况,更新模块总是一个好主意:
sudo update-initramfs -c -k $(uname -r)
Run Code Online (Sandbox Code Playgroud)