La respuesta de Erik funciona bien, pero al usarla como está, al usar flac
o oggenc
, hay un retraso significativo.
Una solución es agregar -cache 256
al mplayer
comando, para que tenga el siguiente aspecto:
ssh <user>@<remotehost> "arecord -f cd -D plughw:2 | oggenc -" | mplayer -cache 256 -
Otra cosa a mencionar es que hoy en día casi todas las distribuciones modernas usan PulseAudio, que toma el control del dispositivo de hardware, por lo tanto, el uso plughw:2
fallará si PulseAudio se está ejecutando.
En general, default
debería funcionar bien y usar PulseAudio, donde puede usar pavucontrol
o similar para seleccionar la fuente de entrada deseada con PulseAudio.
Eso haría el comando de la siguiente manera:
ssh <user>@<remotehost> "arecord -f cd | oggenc -" | mplayer -cache 256 -
PERO: Esto introduce un retraso. En mi caso, son alrededor de ocho segundos. Eso es terrible.
La solución es mucho más simple que cualquier otro comando:
ssh <user>@<host> "arecord -f S16_LE -r 36000" | aplay
Eso es. Esto está utilizando apenas cualquier CPU (0.1% según htop
). Está utilizando ~ 60 KB / s de ancho de banda para mí.
Si desea sonido estéreo: ssh <user>@<host> "arecord -f cd" | aplay
solo es útil si tiene un micrófono estéreo, aumenta el ancho de banda a ~ 150 KB / s para mí. (Dado que también aumenta la frecuencia de muestreo a 44100Hz).
Puede encontrar más información sobre la frecuencia de muestreo ( -r
) y la velocidad de bits (afectada por -f
) aquí .
Básicamente: cuanto más bajo sea, peor será la calidad, pero menor será el ancho de banda necesario.
Esta solución es totalmente compatible con PulseAudio, puede controlar el dispositivo de salida, el volumen y más utilizando pactl
o la pavucontrol
aplicación GUI:
cat - | mplayer -
lugar de solomplayer -
?