首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在多个应用程序之间共享一个多声道音频卡?

在多个应用程序之间共享一个多声道音频卡?
EN

Ask Ubuntu用户
提问于 2020-11-06 19:10:46
回答 1查看 516关注 0票数 1

我在OBS的论坛上有一个问题,那就是如何让这个应用与其他东西分享,但是我在这个网站上的问题来自不同的方向。我可以让Ubuntu自己从一张多通道卡中分配特定的通道,而不是让一个特定的应用程序成为非专有的应用程序,否则会像OBS那样独占整个卡的控制权吗?

Lubuntu20.04,问题中的卡是32通道USB接口的比林格X32数字声卡。我可以将X32内部的任何信号路由到USB“声卡”的任何通道,这样,如果需要的话,路由可以绕着其他一些需求进行。

我需要OBS接收一副立体声,另一台录音机接收1个频道为单声道(可能不一定,因为该录音也需要视频,与OBS分开)和热情(一个DAW)接收24个频道作为多声道。都是同时。

目前,我的路由在上24道(#'s 9-32)上有多声道,在1&2上有立体声对,剩下的6道(#'s 3-8)无声,这样OBS坚持的7.1下混频器就不会混淆。(除了“低音炮”音轨(下音器忽略的),所以我现在把单音辅助声道放在上面),如果需要的话,我可以重新安排所有的频道分配,但它们必须都在同一个32通道的USB卡上。

我能把这些通道分给需要它们的各个应用程序吗?这样每个应用程序都可以“排他性”地控制它认为它所分配的卡中只有所需的频道计数?

  • OBS看到了一张立体声卡,不再坚持7.1的混音。
  • ffmpeg或其他任何东西都会看到一张单卡,并且不需要在它自己的命令行上过滤通道。
  • 热情看到24通道多声道,或28-29频道,如果解决方案允许我这样巩固。(把辅助性配音放在第三张,其余的放进去)它也可以,但不是必需的,如果热情看到所有的32,但我不想依靠热情来让其他人工作。因此,即使在技术上解决问题,也不能热情地通过。

更新2020年-11-08:

到目前为止,我已经做到了这一点,但为了使它成为OBS中的永久源,而不是被绑定到特定的场景(忘记将它添加到一个关键场景中),我似乎需要它成为一个PulseAudio设备。那么,我如何才能让Jack进入PA回环,与其他PA设备一样枚举?

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2020-11-14 22:11:50

这就是我错过的!

https://www.youtube.com/watch?v=6J-RQudJx30

显然,谷歌认为告诉我PulseAudio现在可以直接与杰克合作并不重要。很多关于这个问题的论坛问题都没有答案.

无论如何,根据视频设置它,PA创建一个回送设备供杰克连接。然后杰克就像众所周知的那样建立起联系。

实质上,这些步骤是:

  1. 如果还没有安装插孔。 sudo apt install jackd
  2. 为它安装PulseAudio模块。 sudo apt install pulseaudio-module-jack
  3. 编辑PA的配置文件。 sudo nano /etc/pulse/default.pa (视频使用vim,我更喜欢nano,您喜欢什么就用什么)
  4. ### Load audio drivers statically... load-module module-jack-sink load-module module-jack-source下添加一些行
  5. ### Make some devices default set-default-sink jack_out set-default-source jack_in下添加更多行
  6. 保存并关闭文件。
  7. 重新启动PulseAudio。重新启动整个机器可能是最简单的,这也是“重新启动生存”测试,在您完全依赖它之前,您确实应该这样做。

现在,当系统启动并且PulseAudio启动时,它也会启动Jack并使其成为默认的。(熟悉的GUI控件中的“回退”)

你不会有任何声音,因为杰克默认为无连接。因此,打开Connections窗口,单击两侧的单个通道,然后在底部连接。你现在应该有声音了!你的连接选项现在是在千斤顶,这是难以置信的灵活性。

如果您想让您的连接在重新启动时存活下来,您可以定义一个连接文件并在启动时加载(激活Patchbay持久性):

这里显示了如何创建该文件,它并不是直接直观的:

https://www.rncbc.org/drupal/node/76

而不是Connect窗口,您需要使用Patchbay。我不知道为什么它们如此相似,仍然是分开的,也不知道为什么容易使用的Connect窗口不只是一个保存按钮来为您提供这些功能。但无论如何,这至少是可能的,下面是如何:

您可能会注意到,这里的连接不再是单个通道之间的连接,而是设备之间的连接,而且并不是所有设备都拥有它们所能拥有的所有通道。这是在这个工具与另一个工具的工作方式上的第一眼--不直观的区别。

要设置持久修补程序,首先单击左上角的New按钮,不要让它创建现有连接的快照。它没那么聪明,而且会搞错的。相反,从空白板开始,创建一组自定义设备,每个设备都具有您想要作为一个组连接的特定通道。

两边的Add按钮都会弹出以下窗口:

给这个新设备一个名称,并选择它使用的客户端。(多个设备可以使用同一个客户端,所以不要担心将自己锁定在外),然后只添加这个特定设备将要使用的通道("Plugs")。所有这些通道都将连接到另一个设备的所有通道,按它们在这里出现的顺序排列。您也可以重命名每个通道,但我认为太容易忘记,如果您定制它那么远,那是什么呢?

以这种方式在每一侧创建所有设备或“通道组”,然后单击每一侧,然后单击底部的connect按钮,在设备级别连接它们。

(我也有一些不去任何地方的全计数设备,只是为了提醒我正在使用的东西。)

现在,您可以保存安装窗口需要的“激活Patchbay持久性”中的.xml文件。

并将qjackctl设置为在启动时运行,这样它就可以加载该文件。用户空间很好;它不需要是根。

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1290211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档