La risposta di Erik funziona bene, ma usandola così com'è, usando flac
o oggenc
, c'è un ritardo significativo.
Una soluzione è aggiungere -cache 256
al mplayer
comando, quindi dovrebbe apparire come segue:
ssh <user>@<remotehost> "arecord -f cd -D plughw:2 | oggenc -" | mplayer -cache 256 -
Un'altra cosa da menzionare è che al giorno d'oggi praticamente tutte le moderne distribuzioni utilizzano PulseAudio, che prende il controllo del dispositivo hardware, quindi l'utilizzo plughw:2
fallirà se PulseAudio è in esecuzione.
In generale, default
dovrebbe funzionare correttamente e utilizzare PulseAudio, dove è possibile utilizzare pavucontrol
o simili per selezionare la sorgente di input desiderata utilizzando PulseAudio.
Ciò renderebbe il comando come segue:
ssh <user>@<remotehost> "arecord -f cd | oggenc -" | mplayer -cache 256 -
MA: questo introduce un ritardo. Nel mio caso, sono circa otto secondi. È terribile.
La soluzione è molto più semplice di qualsiasi altro comando:
ssh <user>@<host> "arecord -f S16_LE -r 36000" | aplay
Questo è tutto. Questo utilizza quasi nessuna CPU (0,1% secondo htop
). Per me sta usando ~ 60KB / s di larghezza di banda.
Se vuoi un suono stereo: ssh <user>@<host> "arecord -f cd" | aplay
utile solo se hai un microfono stereo, aumenta la larghezza di banda a ~ 150KB / s per me. (Dal momento che aumenta anche la frequenza di campionamento a 44100Hz).
Maggiori informazioni sulla frequenza di campionamento ( -r
) e sulla velocità di trasmissione (influenzata da -f
) sono disponibili qui .
Fondamentalmente: più basso si va, peggiore è la qualità ma minore è la larghezza di banda necessaria.
Questa soluzione è completamente compatibile con PulseAudio, è possibile controllare il dispositivo di output, il volume e altro utilizzando pactl
o l' pavucontrol
applicazione GUI:
cat - | mplayer -
invece di solomplayer -
?