Byte Commander Asked: 2016-10-02 13:04:43 +0800 CST2016-10-02 13:04:43 +0800 CST 2016-10-02 13:04:43 +0800 CST 仅录制一个应用程序窗口的音频输出 772 我想将本地运行的应用程序的音频输出记录为硬盘上的 mp3 文件。 但是,我只需要录制一个应用程序的音频,最好只录制一个窗口。应忽略来自不同来源的所有其他音频输出。 这如何在 Ubuntu 16.04 中实现? sound 1 个回答 Voted Best Answer Byte Commander 2017-08-01T13:58:29+08:002017-08-01T13:58:29+08:00 我自己找到了解决方案。它需要pavucontrol(PulseAudio 音量控制)将输入和输出音频流分配给特定的应用程序和一个理想情况下可以手动选择其输入设备的音频录制工具,包括虚拟设备。我为此选择了录音机。您还需要使用命令行工具创建虚拟音频接收器,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 会再次记住配置的输入设备一段时间。 记录 现在源应用程序已将我们的自定义虚拟接收器配置为输出设备,并且我们的录制应用程序正在使用相同的接收器(或其监视器)作为输入设备,您终于可以开始录制了。 在此设置中,录音机只会听到源应用程序产生的声音(实际上是所有应用程序将其音频输出到我们的虚拟接收器,但它应该只是那个)。您可以让任意数量的其他应用程序同时将音频播放到真实的音频输出设备或不同的虚拟接收器,而不会干扰您的录音。
我自己找到了解决方案。它需要
pavucontrol
(PulseAudio 音量控制)将输入和输出音频流分配给特定的应用程序和一个理想情况下可以手动选择其输入设备的音频录制工具,包括虚拟设备。我为此选择了录音机。您还需要使用命令行工具创建虚拟音频接收器,pactl
以便能够分离音频输出流并独立录制一个应用程序。准备
首先,您需要设置一个虚拟音频接收器。它充当虚拟音频设备或虚拟音频电缆,但您想调用它。您可以将其设置为一个应用程序的输出设备,并让另一个应用程序将其记录为输入设备。
这可以在
pactl
使用 PulseAudio 的系统上完成,如下所示:sink1
这只是虚拟设备的任意名称。设置音频源应用程序
其次,我们启动要播放我们想要录制的音频的应用程序。
如果源应用程序允许选择
sink1
我们之前创建的设备作为音频输出设备,您可以简单地执行此操作并跳到录制部分。如果源应用程序没有为您提供选择音频输出设备的选项,您必须安装(如有必要
sudo apt install pavucontrol
:)并启动 Pavucontrol。然后启动源应用程序并让它播放任何音频。当它发出噪音时,它会出现在PlaybackPavucontrol 的选项卡中。找到其
playback on [...]
下拉菜单并选择Virtual Sink sink1
作为目标设备。您仍然会听到它,因为虚拟接收器也连接到您的标准输出设备,但这没关系。您现在也可以再次暂停播放并将源应用程序静音,Pavucontrol 会在一段时间内记住配置的播放设备。
设置录音机应用程序
现在启动您的录音软件(我推荐
ppa:audio-recorder/ppa
PPA 中的 Audio Recorder,此处的安装说明,用于此任务)。如果它允许您选择您的虚拟接收器(或虚拟接收器的监视器)作为输入设备进行录制,请执行此操作。
如果您无法选择输入设备(或者如果仅列出硬件输入设备,请尝试将其设置为“系统默认值”),您必须再次使用 Pavucontrol。
让该工具开始记录任何内容。当它在收听时,它会出现在 Pavucontrol 的Recording选项卡中。找到它
from [...]
的下拉菜单并选择类似的东西Monitor of Virtual Sink sink1
作为输入设备。您现在也可以再次暂停录制,Pavucontrol 会再次记住配置的输入设备一段时间。
记录
现在源应用程序已将我们的自定义虚拟接收器配置为输出设备,并且我们的录制应用程序正在使用相同的接收器(或其监视器)作为输入设备,您终于可以开始录制了。
在此设置中,录音机只会听到源应用程序产生的声音(实际上是所有应用程序将其音频输出到我们的虚拟接收器,但它应该只是那个)。您可以让任意数量的其他应用程序同时将音频播放到真实的音频输出设备或不同的虚拟接收器,而不会干扰您的录音。