我无法创建超过 6 个 Jack Pulseaudio Sinks/Sources,有最大值吗?只能在 Manjaro Linux 中使用,在 Ubuntu 中可以使用

我无法创建超过 6 个 Jack Pulseaudio Sinks/Sources,有最大值吗?只能在 Manjaro Linux 中使用,在 Ubuntu 中可以使用

我有一个音频设置(从 Windows 继承而来),其中涉及许多虚拟音频接收器/源,全部通过 DAW 路由,用于闪避和过滤,主要用于流。

要在 Linux 上执行此操作,我一直在使用 JACK2 和 pulseaudio 插孔接收器/源 (module-jack-sink/module-jack-source)。

我编写了一个脚本来创建虚拟设备。它调用 pacmd 或 pactl(无论哪种方式结果都相同)来创建多个接收器和源,以及一些其他东西。无论我使用脚本还是直接在 CLI 中执行此操作,都会出现问题。

命令是“pactl load-module module-jack-sink sink_name=$name client_name=$name sink_properties=device.description=$dispname connect=false channels=2”。

它在 Ubuntu 上运行良好。现在,在 Manjaro 上,我最多可以创建 6 个接收器/源。偶尔会是 7 个,但我不知道为什么。它可以完美地创建所有接收器/源,直到达到该限制。

对于超出限制的接收器/源,pactl 的输出为“失败:模块初始化失败”。

无论我创建所有接收器、所有源,还是两者的混合,数字都是相同的。

无论我是通过 qjackctl 还是直接运行 jackd,无论我将 jack 连接到 ALSA 还是虚拟设备,无论我是否增加端口限制,无论我是否拥有更多实际设备,都会发生这种情况。我尝试了很多方法。

我找不到任何可能影响最大值的配置,也找不到任何在线文档表明存在最大值。我怀疑在某个地方有某个选项,但我找不到。

我能想到的唯一区别是 Jack 1 预装了 Manjaro。我先卸载了它,然后安装了最新的 Jack2,然后再做其他事情。

在此先感谢您的帮助。

答案1

一个问题可能是为进程设置的文件描述符的限制。检查 cat /proc//limits ,将会有一行显示进程可以打开的文件数量。如果超过此限制,代码中的断言将失败并且 pulseaudio 将崩溃。

Max open files            1024                 1024                 files

要增加此限制,您可以使用命令

prlimit -n4096 -p pid_of_pulseaudio

这对我有用。

答案2

假设您使用systemd基于 Linux 的发行版:

运行sudo journalctl -f并尝试加载模块。在我的例子中,日志如下:

pulseaudio[194173]: The per-process limit on the number of open file descriptors has been reached.
pulseaudio[194173]: pa_thread_mq_init() failed.
pulseaudio[194173]: Failed to load module "module-jack-source": initialization failed.

解决方案是增加 pulseaudio 服务允许同时打开的文件数量。

这可以在运行时完成,prlimit但是ulimit -n这是不切实际的,并且需要sudo使用。

Pulseaudio 是一种不寻常的服务,因为它以用户级服务运行。因此,您无法在启动命令中添加ulimit -nprlimit行,因为该命令不是以 root 身份运行的。Pulseaudio 的 systemd 文件明确列出它不会为 root 用户运行。幸运的是,systemd 有一个我们可以使用的机制。

使用sudo编辑/usr/lib/systemd/user/pulseaudio.service。在行下方的部分中[Service],添加一行内容LimitNOFILE=1024。注意奇怪的大写字母,这是必需的。请注意,如果需要,您可以选择大于 1024 个文件的数量。但这对我的用例来说已经足够了。然后要重新加载此配置并重新启动 PulseAudio,请运行:

systemctl --user daemon-reload
systemctl --user restart pulseaudio.service

注意:请勿尝试使用sudo这些命令。这些是用户级别服务

相关内容