pactl Loopback 和 Sink 用于 mic + VLC 低 CPU 负载?延迟设置?

pactl Loopback 和 Sink 用于 mic + VLC 低 CPU 负载?延迟设置?

你好,AskUbuntu 社区!

我在这里查阅了很多关于环回和接收器的问答,但我是 Ubuntu 新手,似乎无法让事情按照我需要的方式运行。看来我真的需要有人向我解释这一点,就像我是一个不懂 Linux 术语的 5 岁小孩一样。

我不会解释我的猜测,因为这可能会让人感到困惑或者提出一个较差的解决方案,而是会描述我的目标和我所知道的内容:

  1. 创建一个虚拟接收器/源“线路”,我可以在 Audacity/Teamspeak/Skype/OBS 等程序中选择它作为捕获/输入/记录源
  2. 将我的 Blue Yeti USB 麦克风输入发送到该线路
  3. 将我的 VLC 媒体播放器音频发送到该线路
  4. 仍然可以听到来自 VLC 的音乐,这样我就可以调整每首歌曲的音量

或者

  1. 使用 pactl 命令或我不熟悉的命令将我的 VLC 输出传输到与我的 Blue Yeti USB 麦克风相同的输入流中(也许这是可能的?),或者将我的 Blue Yeti USB 麦克风的输入添加到与 VLC 的组合输出流中
  2. 将组合流(无论是输入还是输出)通过管道传输到 Audacity/Teamspeak/Skype/OBS 作为输入/录制/捕获源

我在 AskUbuntu 上看到的内容:

1)多个环回和接收器

pactl load-module module-null-sink sink_name=Virtual1
pactl load-module module-null-sink sink_name=Virtual2
pactl load-module module-loopback sink=Virtual1 
pactl load-module module-loopback sink=Virtual1 
pactl load-module module-loopback sink=Virtual2

测试过了?

  • 是的,并且它具有部分功能。

问题

  • 我的 CPU 负载在所有处理器核心上都达到 90-100%,我基本上无法在计算机上执行任何操作。
  • 此外,音频变得机械/断断续续,并跳过几秒的时间段。
  • 此外,当一首歌曲结束时,我在 pavucontrol 中对从环回到接收器的管道的所有设置都会被重置。

希望

  • 也许可以通过设置 Latency_msec 或其他设置(可能是缓冲区或频率等)来减少 CPU 负载?有一次,我使用 jackd 进行操作,使用 dbus 插件从 pulseaudio 获取音频,我被告知将帧/周期设置增加到 512 以修复机械/断断续续的音频,这很有效。结果延迟为 24 毫秒,但对我来说听起来不错,不是问题。它也没有导致高 CPU 负载/减慢我的计算机速度。
  • 也许还有一种方法可以将我想要做的事情转变为 /etc/pulse/default.pa 的命令,这样歌曲结束时我的设置就不会被重置。

笔记

  • 我不需要在说话时立即将 VLC 声音或麦克风发送到录音/聊天程序。如果可以减少 CPU 负载,延迟是可以的。

2)源和接收器之间的环回

pactl load-module module-loopback source=<name_or_index> sink=<name_or_index>

测试过了?

  • 不,我不太明白。

希望

  • 也许这可以通过某种方式来减少一些中间人并减少 CPU 负载。

感谢您提供任何帮助!

答案1

我已经用你在 2) 中列出的命令运行它了Arch Linux不过。我使用的命令是:

pactl load-module module-loopback source=alsa_input.pci-0000_00_1f.3.analog-stereo sink=alsa_output.pci-0000_00_1f.3.analog-stereo

我使用以下方法找到了我的麦克风/输入和立体声输出/接收器的确切名称:

pactl list | grep -alsa 

阿尔萨斯大学如果您想知道代表“高级 Linux 声音架构”并且是为我的板载声音加载的内核模块(驱动程序)。

为了在启动时加载此环回模块,我在 default.pa 中添加了一行(并且在其中设置了我的 default-source/default-sink):

echo "load-module module-loopback source=alsa_input.pci-0000_00_1f.3.analog-stereo sink=alsa_output.pci-0000_00_1f.3.analog-stereo" >> /etc/pulse/default.pa

我曾经pavucontrol在“播放”选项卡中验证过环回模块是否已加载并正常工作,并且必须在那里取消静音。

Pulseaudio 在空闲时(未播放/拾取声音)占用大约 2% 的 CPU 时间(2 个线程),在通过输入环回传递声音时占用大约 6-8%。您可能需要 root 权限/sudo 才能执行上述某些命令。

相关内容