![使用 alsa 或类似程序捕获音频输出](https://linux22.com/image/1518512/%E4%BD%BF%E7%94%A8%20alsa%20%E6%88%96%E7%B1%BB%E4%BC%BC%E7%A8%8B%E5%BA%8F%E6%8D%95%E8%8E%B7%E9%9F%B3%E9%A2%91%E8%BE%93%E5%87%BA.png)
我想将我的音频输出(通过 hdmi 离开系统的所有声音)路由(克隆)到虚拟输入设备,以便我可以捕获输出(虚拟音频电缆)。如前所述,输出是 hdmi,我使用 kodi 进行播放。
我搜索了很多,但找不到完美的解决方案。我想要一个对我的实际系统影响尽可能小的配置。另外,我不得不说我在 kodi 中使用了 passthrough。
我知道使用 Jack 可以实现,但找不到解决方案。我还知道使用“普通” alsa 和环回接口可以实现,最后使用 pulseaudio 也可以实现,但一切都太令人困惑了,尤其是使用 hdmi 时。
现在我正在使用 alsa。
答案1
使用 Pulseaudio 实际上可以很容易地做到这一点,因此如果您想要一个对实际系统的影响尽可能小的配置,那么它就是理想的解决方案。
在 Pulseaudio 下,每个接收器(例如您的 HDMI 输出)都有一个对应的监视器源(名称相同,但.monitor
末尾带有)。您只需使用您喜欢的任何应用程序从此源录制音频,然后您就可以捕获通过此接收器离开系统的输出。您可以使用实用程序pavucontrol
或使用应用程序的命令行开关等将应用程序指向特定源,例如arecord -d your-hdmi-device.monitor
。
对于 ALSA,您必须使用snd-aloop
内核模块,设置虚拟声卡,使用dshare
插件复制 HDMI 声音输出,将其路由到虚拟声卡,然后从此声卡录制。这比 Pulseaudio 解决方案复杂得多,我必须自己进行实验.asoundrc
才能找到正确的方法。