web-dev-qa-db-fra.com

Enregistrer la sortie audio d'une seule fenêtre d'application

Je souhaite enregistrer la sortie audio d’une application exécutée localement sous forme de fichier mp3 sur mon disque dur.

Cependant, je n'ai besoin d'enregistrer que l'audio d'une seule application, idéalement une seule fenêtre. Toutes les autres sorties audio provenant de sources différentes doivent être ignorées.

Comment cela peut-il être réalisé dans Ubuntu 16.04?

5
Byte Commander

J'ai trouvé une solution pour cela moi-même. Il nécessite pavucontrol (Contrôle du volume PulseAudio) pour affecter les flux audio d'entrée et de sortie à des applications spécifiques et un outil d'enregistrement audio qui peut idéalement sélectionner son périphérique d'entrée manuellement, y compris les périphériques virtuels. J'ai choisi Audio Recorder pour ça. Vous devrez également créer des récepteurs audio virtuels à l'aide de l'outil de ligne de commande pactl pour pouvoir séparer les flux de sortie audio et enregistrer une application de manière indépendante.

Préparation

Vous devez d’abord configurer un collecteur audio virtuel. Il agit comme un périphérique audio virtuel ou un câble audio virtuel, comme vous voulez l'appeler. Vous pouvez le définir comme périphérique de sortie pour une application et laisser l’autre application l’enregistrer comme périphérique d’entrée.

Cela peut être fait avec pactl sur un système utilisant PulseAudio comme ceci:

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

sink1 voici juste un nom arbitraire pour le périphérique virtuel.

Configurer l'application source audio

Deuxièmement, nous lançons l’application qui va reproduire l’audio que nous voulons enregistrer.

  • Si l'application source permet de sélectionner le périphérique sink1 que nous avons créé précédemment en tant que périphérique de sortie audio, vous pouvez simplement le faire et passer à la section d'enregistrement.

  • Si l'application source ne vous donne pas la possibilité de sélectionner le périphérique de sortie audio, vous devez l'installer (si nécessaire: Sudo apt install pavucontrol) et démarrer Pavucontrol.

    Lancez ensuite l'application source et laissez-la lire n'importe quel fichier audio. Pendant qu’il fait du bruit, il apparaîtra dans le Playback onglet de Pavucontrol. Localisez son menu déroulant playback on [...] et sélectionnez Virtual Sink sink1 comme périphérique cible. Vous l'entendrez toujours car le récepteur virtuel est également connecté à votre périphérique de sortie standard, mais c'est correct.

    Vous pouvez également mettre à nouveau la lecture en pause maintenant et mettre en sourdine l'application source. Pavucontrol gardera en mémoire le périphérique de lecture configuré pendant un moment.

Configurer l'application enregistreur

Lancez maintenant votre logiciel d’enregistrement (je recommande Audio Recorder à partir du ppa:audio-recorder/ppa PPA, instructions d’installation ici , pour cette tâche).

  • Si cela vous permet de sélectionner votre récepteur virtuel (ou un moniteur du récepteur virtuel) comme périphérique d'entrée à enregistrer, faites-le.

  • Si vous ne pouvez pas sélectionner le périphérique d'entrée (ou si seuls les périphériques d'entrée matériels sont répertoriés, essayez de le définir sur "système par défaut"), vous devez utiliser à nouveau Pavucontrol.

    Laissez l'outil commencer à enregistrer quoi que ce soit. Pendant qu’il écoute, il apparaîtra dans Pavucontrol Recording languette. Localisez son menu déroulant from [...] et sélectionnez un paramètre tel que Monitor of Virtual Sink sink1 en tant que périphérique d'entrée.

    Vous pouvez également mettre l'enregistrement à nouveau en pause, Pavucontrol gardera de nouveau en mémoire le périphérique d'entrée configuré pendant un moment.

Record

Maintenant que l'application source a notre récepteur virtuel personnalisé configuré en tant que périphérique de sortie et que notre application d'enregistrement utilise ce même récepteur (ou son moniteur) en tant que périphérique d'entrée, vous pouvez enfin commencer à enregistrer.

L’enregistreur n’entendra que les sons produits par l’application source (en fait, toutes les applications émettant leurs données audio sur notre récepteur virtuel, mais il ne doit s'agir que de celui-ci) dans cette configuration. Vous pouvez avoir un nombre quelconque d'autres applications lisant l'audio sur un périphérique de sortie audio réel ou sur un autre récepteur virtuel en même temps sans perturber votre enregistrement.

1
Byte Commander