L' amélioration de la réponse Waschtl de ce fil afin que vous puissiez LES DEUX ET ECOUTER RECORD l'application de son:
Premièrement, nous recherchons notre sortie par défaut et mettons son nom de récepteur 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 récepteur combiné qui n’a qu’un seul esclave: $ DEFAULT_OUTPUT . Le son généré par l'application (source) sera transmis au récepteur esclave (c.-à-d. Une sortie réelle), et nous l'enregistrerons également. Il diffère d'un collecteur nul dans lequel 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 provoquer des bogues si vous utilisez des espaces dans le nom de la description.
Ensuite, nous pourrions utiliser la pactl move-sink-input ...
commande de réponse Waschtl (avec record-n-play au lieu de steam ) mais l'interface graphique pavucontrol
est plus simple (et très pratique pour la vérification / dépannage):
$ sudo apt-get install pavucontrol
$ pavucontrol &
Ensuite, nous jouons du son dans l'application que nous voulons enregistrer. Dans l' pavucontrol
Playbackonglet, nous sélectionnons dans la liste déroulante des applications: "Record-and-Play" .
Enfin, nous sommes bien pour enregistrer et écouter en même temps! ( exemple mp3 boiteux , exécuté au premier 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 nous 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 annuler ou recommencer la procédure: Supprimez ou réinitialisez les puits 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 son du système, les paramètres de lecture de l'application personnalisée seront écrasés et nous devrons revenir dans pavucontrol pour le rétablir dans l'interface combinée.
- Pour pouvoir écouter le son à partir de plusieurs interfaces "réelles" (par exemple, casque, sortie HDMI, etc.), vous devez inclure toutes les sorties "réelles" que nous pouvons utiliser pour écouter, en tant qu'esclaves slink record-n-play , comme:
pactl load-module module-combine-sink sink_name=record-n-play slaves=real-output-1,real-output-2
.
EDIT: Attention, puisque Ubuntu 18 (peut-être 17 aussi), le récepteur combiné tend à 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 à l'aide de l'icône de son de la barre d'état système, cela a un impact sur le son que vous enregistrez. Solution: après avoir créé le récepteur combiné, ouvrez-le pavucontrol
dans l'onglet Sortie. Sélectionnez "View: Virtual Output Devices" (Afficher: périphériques de sortie virtuels) et réinitialisez le volume sonore du récepteur combiné à 100%. Puis sélectionnez "Affichage: Périphériques de sortie matérielle" et appuyez sur l'icône verte "Définir comme alternative" sur le périphérique de sortie réel.