Eu mesmo encontrei uma solução para isso. Ele requer que pavucontrol
(PulseAudio Volume Control) atribua fluxos de áudio de entrada e saída a aplicativos específicos e uma ferramenta de gravação de áudio que, idealmente, pode selecionar seu dispositivo de entrada manualmente, incluindo dispositivos virtuais. Eu escolhi o gravador de áudio para isso. Você também precisará criar coletores de áudio virtuais usando a ferramenta de linha de comando pactl
para poder separar os fluxos de saída de áudio e registrar um aplicativo independentemente.
Preparação
Primeiro, você precisa configurar um coletor de áudio virtual. Ele age como um dispositivo de áudio virtual ou um cabo de áudio virtual, como você quiser chamá-lo. Você pode configurá-lo como dispositivo de saída para um aplicativo e permitir que o outro aplicativo o registre como dispositivo de entrada.
Isso pode ser feito com pactl
em um sistema usando o PulseAudio assim:
pactl load-module module-virtual-sink sink_name=sink1
sink1
aqui é apenas um nome arbitrário para o dispositivo virtual.
Configure o aplicativo de fonte de áudio
Em segundo lugar, iniciamos o aplicativo que vai reproduzir o áudio que queremos gravar.
-
Se o aplicativo de origem permitir selecionar o dispositivo
sink1
que criamos anteriormente como dispositivo de saída de áudio, basta fazer isso e pular para a seção de gravação. -
Se o aplicativo de origem não der uma opção para selecionar o dispositivo de saída de áudio, você deverá instalar (se necessário:
sudo apt install pavucontrol
) e iniciar o Pavucontrol.Em seguida, inicie o aplicativo de origem e deixe-o reproduzir qualquer áudio. Enquanto estiver fazendo ruído, ele aparecerá na aba Playback do Pavucontrol. Localize o menu suspenso
playback on [...]
e selecioneVirtual Sink sink1
como dispositivo de destino. Você ainda ouvirá isso porque o coletor virtual também está conectado ao seu dispositivo de saída padrão, mas tudo bem.Você também pode pausar a reprodução novamente e silenciar o aplicativo de origem, o Pavucontrol irá se lembrar do dispositivo de reprodução configurado por um tempo.
Configure o aplicativo do gravador
Agora, inicie o seu software de gravação (eu recomendo Audio Recorder do ppa:audio-recorder/ppa
PPA, instruções de instalação aqui , para isso tarefa).
-
Se ele permitir que você selecione seu coletor virtual (ou um monitor do coletor virtual) como dispositivo de entrada para gravar, faça isso.
-
Se você não puder selecionar o dispositivo de entrada (ou se somente dispositivos de entrada de hardware estiverem listados, tente defini-lo como algo como "padrão do sistema"), você terá que usar o Pavucontrol novamente.
Deixe a ferramenta começar a gravar qualquer coisa. Enquanto estiver escutando, ele aparecerá na aba Gravação do Pavucontrol. Localize o menu suspenso
from [...]
e selecione algo comoMonitor of Virtual Sink sink1
como dispositivo de entrada.Você também pode pausar a gravação novamente, o Pavucontrol novamente se lembrará do dispositivo de entrada configurado por um tempo.
Gravar
Agora que o aplicativo de origem tem nosso coletor virtual personalizado configurado como dispositivo de saída e nosso aplicativo de gravação está usando esse mesmo coletor (ou seu monitor) como dispositivo de entrada, você pode finalmente iniciar a gravação.
O gravador só ouvirá os sons produzidos pelo aplicativo de origem (na verdade, por todos os aplicativos que emitem o áudio para o coletor virtual, mas deve ser apenas aquele único) nesta configuração. Você pode ter qualquer número de outros aplicativos reproduzindo áudio em um dispositivo de saída de áudio real ou em um coletor virtual diferente ao mesmo tempo sem atrapalhar sua gravação.