Amélioration de Réponse de Waschtl de ce fil pour que vous puissiez ÉCOUTER ET ENREGISTRER le son de l'application :
D'abord, nous cherchons notre sortie par défaut et mettons son nom de puits dans $DEFAULT_OUTPUT
:
$ pacmd list-sinks | grep -A1 "* index"
* index: 1
name: <alsa_output.pci-0000_00_1b.0.analog-stereo>
$ DEFAULT_OUTPUT=$(pacmd list-sinks | grep -A1 "* index" | grep -oP "<\K[^ >]+")
$ echo $DEFAULT_OUTPUT
alsa_output.pci-0000_00_1b.0.analog-stereo
Ensuite, nous créons un évier combiné qui n'a qu'un seul esclave : $DEFAULT_OUTPUT . Le son généré par l'application (source) sera acheminé vers le récepteur esclave (c'est-à-dire la sortie réelle), et nous l'enregistrerons également. C'est différent d'un puits nul où le son source n'est pas transmis.
$ pactl load-module module-combine-sink \
sink_name=record-n-play slaves=$DEFAULT_OUTPUT \
sink_properties=device.description="Record-and-Play"
sink_properties
est facultatif et peut boguer si vous utilisez des espaces dans le nom de la description.
Ensuite, nous pourrions utiliser pactl move-sink-input ...
commande de Réponse de Waschtl (avec enregistrement et lecture au lieu de vapeur ) mais l'interface graphique pavucontrol
est plus simple (et idéal pour la vérification et le dépannage) :
$ sudo apt-get install pavucontrol
$ pavucontrol &
Ensuite, nous jouons un son dans l'application que nous voulons enregistrer. Dans pavucontrol
Playback nous sélectionnons dans la liste déroulante des applications : "Record-and-Play" .
Enfin, on est bon pour enregistrer et écouter en même temps ! ( boiteux exemple mp3, exécuté en avant-plan)
$ parec --format=s16le -d record-n-play.monitor | \
lame -r --quiet -q 3 --lowpass 17 --abr 192 - "temp.mp3"
Ou nous pouvons enregistrer en arrière-plan et arrêter à tout moment :
$ parec --format=s16le -d record-n-play.monitor | \
lame -r --quiet -q 3 --lowpass 17 --abr 192 - "temp.mp3" \
> /dev/null &1>/dev/null
$ killall -q parec lame
NB :
- Pour tout démêler ou réessayer la procédure : Supprimez ou réinitialisez les éviers en utilisant cette réponse .
pulseaudio -k
fonctionne très bien pour tout réinitialiser aux valeurs par défaut de la session.
- Si nous modifions la sortie par défaut dans les paramètres de son du système, le paramètre de lecture de l'application personnalisée sera écrasé et nous devrons retourner dans pavucontrol pour le régler à nouveau sur l'interface combinée.
- Pour pouvoir écouter le son à partir de plusieurs interfaces "réelles" (par exemple un casque, une sortie HDMI, etc...), nous devons inclure toutes les sorties "réelles" que nous pouvons utiliser pour écouter, comme enregistrement et lecture des esclaves rampants, comme :
pactl load-module module-combine-sink sink_name=record-n-play slaves=real-output-1,real-output-2
.
EDIT : Attention, depuis Ubuntu 18 (peut-être 17 aussi), le puits combiné a tendance à devenir le périphérique de sortie système par défaut, au lieu du périphérique de sortie réel. Ainsi, lorsque vous modifiez le volume en utilisant l'icône du son dans la barre d'état système, cela a un impact sur le son de votre enregistrement. Solution : Après avoir créé le puits combiné, ouvrez pavucontrol
dans l'onglet Sortie. Sélectionnez "View : Virtual Output Devices" et réinitialisez le volume sonore de l'évier combiné à 100%. Sélectionnez ensuite "View : Périphériques de sortie matériels" et cliquez sur l'icône verte "Définir comme alternative" sur le périphérique de sortie réel.