仅录制单个应用程序窗口的音频输出

仅录制单个应用程序窗口的音频输出

我想将本地运行的应用程序的音频输出作为 mp3 文件录制在我的硬盘上。

但是,我只需要录制一个应用程序的音频,理想情况下只有一个窗口。其他所有来自不同来源的音频输出都应被忽略。

如何在 Ubuntu 16.04 中实现这一点?

答案1

我自己找到了一个解决方案。它需要pavucontrol(PulseAudio Volume Control) 将输入和输出音频流分配给特定应用程序,以及一个理想情况下可以手动选择其输入设备的音频录制工具,包括虚拟设备。为此,我选择了 Audio Recorder。您还需要使用命令行工具创建虚拟音频接收器,pactl以便能够分离音频输出流并独立录制一个应用程序。

准备

首先,您需要设置一个虚拟音频接收器。它充当虚拟音频设备或虚拟音频电缆,无论您想如何称呼它。您可以将其设置为一个应用程序的输出设备,并让另一个应用程序将其录制为输入设备。

pactl这可以在使用 PulseAudio 的系统上完成,如下所示:

pactl load-module module-virtual-sink sink_name=sink1

sink1这里只是虚拟设备的任意名称。

设置音频源应用程序

其次,我们启动将要播放我们想要录制的音频的应用程序。

  • 如果源应用程序允许选择sink1我们之前创建的设备作为音频输出设备,您可以简单地这样做并跳到录制部分。

  • 如果源应用程序没有为您提供选择音频输出设备的选项,则必须安装(如有必要:)sudo apt install pavucontrol并启动 Pavucontrol。

    然后启动源应用程序并让其播放任何音频。当它发出声音时,它将出现在PlaybackPavucontrol 的选项卡中。找到其playback on [...]下拉菜单并选择Virtual Sink sink1作为目标设备。您仍然会听到它,因为虚拟接收器也连接到您的标准输出设备,但这没关系。

    您现在还可以再次暂停播放并将源应用程序静音,Pavucontrol 会暂时记住配置的播放设备。

设置录音机应用程序

现在启动你的录音软件(我推荐ppa:audio-recorder/ppaPPA 的 Audio Recorder,安装说明这里,用于此任务)。

  • 如果它允许您选择虚拟水槽(或虚拟水槽的监视器)作为要记录的输入设备,请这样做。

  • 如果您无法选择输入设备(或者如果仅列出硬件输入设备,请尝试将其设置为“系统默认值”之类的值),则必须再次使用 Pavucontrol。

    让该工具开始录制任何内容。在收听时,它将出现在 Pavucontrol 的Recording选项卡中。找到其from [...]下拉菜单并选择Monitor of Virtual Sink sink1输入设备之类的内容。

    您现在也可以再次暂停录音,Pavucontrol 会暂时记住配置的输入设备。

记录

现在,源应用程序已将我们的自定义虚拟接收器配置为输出设备,并且我们的录音应用程序正在使用相同的接收器(或其显示器)作为输入设备,您终于可以开始录音了。

在此设置中,录音机将仅听到源应用程序产生的声音(实际上是所有将音频输出到我们的虚拟接收器的应用程序,但应该只有一个)。您可以让任意数量的其他应用程序同时将音频播放到真实音频输出设备或不同的虚拟接收器,而不会干扰您的录音。

相关内容