Ответ Эрика работает хорошо, но используя его, как есть, используя flacили oggenc, есть существенное отставание.
Решение состоит в том, чтобы добавить -cache 256к mplayerкоманде, так что это будет выглядеть следующим образом :
ssh <user>@<remotehost> "arecord -f cd -D plughw:2 | oggenc -" | mplayer -cache 256 -
Еще одна вещь, которую стоит упомянуть, - это то, что в настоящее время практически каждый современный дистрибутив использует PulseAudio, который берет на себя управление аппаратным устройством, поэтому использование не plughw:2будет работать, если PulseAudio работает.
Как правило, defaultдолжно работать нормально и использовать PulseAudio, где вы можете использовать pavucontrolили подобное, чтобы выбрать нужный источник входного сигнала с помощью PulseAudio.
Это сделало бы команду следующим образом:
ssh <user>@<remotehost> "arecord -f cd | oggenc -" | mplayer -cache 256 -
НО: Это вводит отставание. В моем случае это около восьми секунд. Это ужасно.
Решение намного проще, чем любая другая команда:
ssh <user>@<host> "arecord -f S16_LE -r 36000" | aplay
Вот и все. Это использует только любой процессор (0,1% в соответствии с htop). Для меня он использует пропускную способность ~ 60 КБ / с.
Если вы хотите стереозвук: ssh <user>@<host> "arecord -f cd" | aplay
полезно, только если у вас есть стереомикрофон, для меня увеличивается пропускная способность до ~ 150 КБ / с. (Так как это также увеличивает частоту дискретизации до 44100 Гц).
Более подробную информацию о частоте дискретизации ( -r) и битовой скорости (зависит от -f) можно найти здесь .
По сути: чем ниже вы идете, тем хуже качество, но ниже необходимая пропускная способность.
Это решение полностью совместимо с PulseAudio, вы можете контролировать выходное устройство, громкость и многое другое с помощью pactlили pavucontrolприложения с графическим интерфейсом:

cat - | mplayer -вместо простоmplayer -?