
Entonces tengo finch
un cliente de chat de línea de comando (piense en pidgin) ejecutándose en una máquina remota en la que ssh
entro. finch
tiene sonidos de notificación y puede ejecutar un comando cuando ocurren ciertos eventos, lo que le permite pasar el archivo de sonido como %s
. p.ejmplayer %s
Desde la máquina remota, cuando se produce la notificación, ¿qué tipo de comando puedo ejecutar para reproducir lo que %s
esté en mi máquina local?
Respuesta1
Si utilizaaudio-pulsoComo servidor de sonido, puede utilizarlo module-native-protocol-tcp
para aceptar la conexión TCP desde su máquina remota.
En el siguiente ejemplo, utilizo un túnel ssh para reenviar la solicitud de audio desde la máquina remota a la local.
En la máquina local, haga algo como:
pactl load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1
ssh -R 9999:127.0.0.1:4713 you@remotehost
luego en la máquina remota puedes usarpaplay
paplay -s 127.0.0.1:9999 soundfile.wav
AGREGADODescubrí que auth-ip-acl
no lo acepta localhost
como parámetro válido, debe usarlo 127.0.0.1
(o cualquier dirección que use su máquina localhost).
EDITARDebería ser ssh -R
, no ssh -L
(estamos reenviando un puerto remoto a un puerto local).
Si tiene una versión antigua de pulse-audio (anterior a 0.9.3), puede utilizar la autorización basada en cookies.
pactl load-module module-native-protocol-tcp auth-anonymous=1 auth-cookie-enabled=0
scp ~/.pulse-cookie you@remotehost:
ssh -R 9999:localhost:4713 you@remotehost
Obviamente, simplemente no puedes utilizar ninguna autenticación en pulse-audio, pero no puedo recomendarte esta solución. Utilice, al menos, un firewall para evitar conexiones remotas.