OK, lo acabo de encontrar y todavía funciona. Muy divertido. No necesita ninguna aplicación sofisticada, mensajería instantánea o similar. Con este comando, envía su audio al host remoto.
arecord -f cd -t raw | oggenc - -r | ssh <user>@<remotehost> mplayer -
O si te gusta más ffmpeg
ffmpeg -f alsa -ac 1 -i hw:3 -f ogg - \
| ssh <user>@<remotehost> mplayer - -idle -demuxer ogg
Fuente: http://shmerl.blogspot.de/2011/06/some-fun-with-audio-forwarding.html
Si quieres un teléfono real:
El comando anterior era solo para una dirección. Para la otra dirección, debe comenzar otra sesión ssh. Entonces, para recibir lo que el otro usuario te dice , usa
ssh <user>@<remotehost> 'arecord -f cd -t raw | oggenc - -r' | mplayer -
O si te gusta más ffmpeg
ssh <user>@<remotehost> ffmpeg -f alsa -ac 1 -i hw:3 -f ogg - \
| mplayer - -idle -demuxer ogg
donde hw:3
es el alsadevice que desea grabar (encontrarlo con arecord -l
, también se puede utilizar un nombre de dispositivo, encontrar esto con arecord -L
, en muchos casos basta con utilizar el dispositivo que aparece con el siguiente comando: arecord -L | grep sysdefault
).
Actualizar
En 2018, en mis sistemas Linux Fedora ffmpeg
no se incluye soporte para alsa (parece ser lo mismo en sistemas RaspberryPi con Raspbian). Pero hay una solución simple sin recompilar. Simplemente canalice la salida de arecord (el alsarecorder) a ffmpeg:
ssh <user>@<remotehost> 'arecord -f cd -D plughw:2 | ffmpeg -ac 1 -i - -f ogg -' \
| mplayer - -idle -demuxer ogg
Obtiene el dispositivo de entrada plughw:2
al encontrar su dispositivo en la salida del siguiente comando:
arecord -l
En mi caso veo card0
y card2
(mi cámara web que tiene un micrófono). Entonces escribí plughw:2
para card2
.
Actualización 2 (sin mplayer)
Si no tiene o le gusta mplayer
pero ffplay
(que es parte de ffmpeg
) puede usar:
audio de onda sin comprimir (gran ancho de banda, muy bajo uso de CPU en el lado de grabación)
ssh <user>@<remotehost> "arecord -f cd -D plughw:2" | ffplay -nodisp -
comprimido con flac (bajo ancho de banda, bajo uso de CPU en el lado de grabación)
ssh <user>@<remotehost> "arecord -f cd -D plughw:2 | flac - -o -" | ffplay -nodisp -
comprimido con ogg (ancho de banda muy bajo, alto uso de CPU en el lado de grabación)
ssh <user>@<remotehost> "arecord -f cd -D plughw:2 | oggenc -" | ffplay -nodisp -
cat - | mplayer -
lugar de solomplayer -
?La respuesta de Erik funciona bien, pero al usarla como está, al usar
flac
ooggenc
, hay un retraso significativo.Una solución es agregar
-cache 256
almplayer
comando, para que tenga el siguiente aspecto: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 usarpavucontrol
o similar para seleccionar la fuente de entrada deseada con PulseAudio.Eso haría el comando de la siguiente manera:
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:
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 lapavucontrol
aplicación GUI:fuente