Gravar saída de áudio apenas de uma única janela do aplicativo

4

Eu gostaria de gravar a saída de áudio de um aplicativo em execução localmente como arquivo mp3 no meu disco rígido.

No entanto, preciso gravar apenas o áudio de um único aplicativo, idealmente, apenas uma única janela. Todas as outras saídas de áudio de diferentes fontes devem ser ignoradas.

Como isso pode ser alcançado no Ubuntu 16.04?

    
por Byte Commander 01.10.2016 / 23:04

1 resposta

0

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 selecione Virtual 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 como Monitor 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.

    
por Byte Commander 31.07.2017 / 23:58