你好,AskUbuntu 社区!
我在这里查阅了很多关于环回和接收器的问答,但我是 Ubuntu 新手,似乎无法让事情按照我需要的方式运行。看来我真的需要有人向我解释这一点,就像我是一个不懂 Linux 术语的 5 岁小孩一样。
我不会解释我的猜测,因为这可能会让人感到困惑或者提出一个较差的解决方案,而是会描述我的目标和我所知道的内容:
- 创建一个虚拟接收器/源“线路”,我可以在 Audacity/Teamspeak/Skype/OBS 等程序中选择它作为捕获/输入/记录源
- 将我的 Blue Yeti USB 麦克风输入发送到该线路
- 将我的 VLC 媒体播放器音频发送到该线路
- 仍然可以听到来自 VLC 的音乐,这样我就可以调整每首歌曲的音量
或者
- 使用 pactl 命令或我不熟悉的命令将我的 VLC 输出传输到与我的 Blue Yeti USB 麦克风相同的输入流中(也许这是可能的?),或者将我的 Blue Yeti USB 麦克风的输入添加到与 VLC 的组合输出流中
- 将组合流(无论是输入还是输出)通过管道传输到 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 才能执行上述某些命令。