Vorrei reindirizzare l'output audio di un programma su file, sulla riga di comando, come in
$ redirect-wrapper file.wav my-program
così che
- Non sento l'output del programma, ovvero l'output dovrebbe andare solo al file
- Non registro nulla oltre al programma, ovvero solo questo programma specifico viene reindirizzato al file
- il resto del sistema audio è lasciato completamente indisturbato, nessuna opzione di configurazione è cambiata avanti e indietro o qualcosa del genere
C'è un modo per fare questo? Questa domanda correlata non aiuta, ho bisogno di una soluzione a riga di comando, nessun "clic lì, quindi lì". Questo probabilmente è anche correlato, ma si basa anche sull'applicazione grafica pavucontrol. Ho trovato un'alternativa terminale a pavucontrol, pacmd.
Ma ciò rende ancora possibile solo il seguente compromesso:
- Ottieni il sink predefinito e salva quello che era. Come? Probabilmente ci sta passando
pacmd list-sinks
- Impostare il sink predefinito sul sink snd-aloop con
pacmd set-default-sink
. - Registra da quel lavandino.
- Avvia applicazione
- Attendi fino a quando l'applicazione ha aperto l'input del sink:
pacmd list-sink-inputs | grep name-of-my-program
se trova qualcosa, l'input è aperto. - Cambia il valore predefinito con quello che era
pacmd set-default-sink
. - Interrompere la registrazione una volta chiusa l'applicazione.
Ma questo cambia ancora il sink predefinito per un periodo di tempo massimo di un paio di minuti (l'ingresso del sink di solito non viene aperto fino a quando il programma non riproduce effettivamente suoni che non devono essere subito dopo l'avvio). Ho implementato questo compromesso; Github .
Ancora alla ricerca di risposte non compromettenti.
pacmd list
mostra quali sorgenti e pozzi sono collegati a programmi particolari, quindi potrebbe esserci un modo per cambiarli. Prova a chiedere sulla lista di pulseaudio su lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss I manutentori / sviluppatori sono lì e sono abbastanza utili.
~/.asoundrc
. Forse puoi evitarlo in qualche modo.