Хорошо, я только что нашел это, и это все еще работает! Действительно смешно. Вам не нужны модные приложения, мессенджеры или тому подобное. С помощью этой команды вы отправляете аудио на удаленный хост.
arecord -f cd -t raw | oggenc - -r | ssh <user>@<remotehost> mplayer -
Или если вам нравится ffmpeg лучше
ffmpeg -f alsa -ac 1 -i hw:3 -f ogg - \
| ssh <user>@<remotehost> mplayer - -idle -demuxer ogg
Источник: http://shmerl.blogspot.de/2011/06/some-fun-with-audio-forwarding.html
Если вы хотите настоящий телефон:
Команда выше была только для одного направления. Для другого направления вы должны начать другой сеанс SSH. Итак, чтобы получить то, что вам говорит другой пользователь , используйте
ssh <user>@<remotehost> 'arecord -f cd -t raw | oggenc - -r' | mplayer -
Или если вам нравится ffmpeg лучше
ssh <user>@<remotehost> ffmpeg -f alsa -ac 1 -i hw:3 -f ogg - \
| mplayer - -idle -demuxer ogg
где hw:3
alsadevice, который вы хотите записать (найдите его arecord -l
; вы также можете использовать имя устройства, найти его arecord -L
; во многих случаях вы можете просто использовать устройство, перечисленное с помощью следующей команды:) arecord -L | grep sysdefault
.
Обновить
В 2018 году в моих системах Fedora Linux ffmpeg
не была включена поддержка alsa (похоже, то же самое в системах RaspberryPi с Raspbian). Но есть простое решение без перекомпиляции. Просто направьте вывод arecord (alsarecorder) в ffmpeg:
ssh <user>@<remotehost> 'arecord -f cd -D plughw:2 | ffmpeg -ac 1 -i - -f ogg -' \
| mplayer - -idle -demuxer ogg
Вы получаете устройство ввода plughw:2
, находя ваше устройство в выводе следующей команды:
arecord -l
В моем случае я вижу card0
и card2
(моя веб-камера с микрофоном). Поэтому я написал plughw:2
для card2
.
Обновление 2 (без mplayer)
Если у вас нет или нравится, mplayer
но ffplay
(который является частью ffmpeg
) вы можете использовать:
несжатый волновой звук (высокая пропускная способность, очень низкое использование процессора на стороне записи)
ssh <user>@<remotehost> "arecord -f cd -D plughw:2" | ffplay -nodisp -
сжатый с помощью flac (низкая пропускная способность, низкое использование процессора на стороне записи)
ssh <user>@<remotehost> "arecord -f cd -D plughw:2 | flac - -o -" | ffplay -nodisp -
сжатый с помощью ogg (очень низкая пропускная способность, высокая загрузка процессора на стороне записи)
ssh <user>@<remotehost> "arecord -f cd -D plughw:2 | oggenc -" | ffplay -nodisp -
cat - | mplayer -
вместо простоmplayer -
?Ответ Эрика работает хорошо, но используя его, как есть, используя
flac
илиoggenc
, есть существенное отставание.Решение состоит в том, чтобы добавить
-cache 256
кmplayer
команде, так что это будет выглядеть следующим образом :Еще одна вещь, которую стоит упомянуть, - это то, что в настоящее время практически каждый современный дистрибутив использует PulseAudio, который берет на себя управление аппаратным устройством, поэтому использование не
plughw:2
будет работать, если PulseAudio работает.Как правило,
default
должно работать нормально и использовать PulseAudio, где вы можете использоватьpavucontrol
или подобное, чтобы выбрать нужный источник входного сигнала с помощью PulseAudio.Это сделало бы команду следующим образом:
НО: Это вводит отставание. В моем случае это около восьми секунд. Это ужасно.
Решение намного проще, чем любая другая команда:
Вот и все. Это использует только любой процессор (0,1% в соответствии с
htop
). Для меня он использует пропускную способность ~ 60 КБ / с.Если вы хотите стереозвук:
ssh <user>@<host> "arecord -f cd" | aplay
полезно, только если у вас есть стереомикрофон, для меня увеличивается пропускная способность до ~ 150 КБ / с. (Так как это также увеличивает частоту дискретизации до 44100 Гц).
Более подробную информацию о частоте дискретизации (
-r
) и битовой скорости (зависит от-f
) можно найти здесь .По сути: чем ниже вы идете, тем хуже качество, но ниже необходимая пропускная способность.
Это решение полностью совместимо с PulseAudio, вы можете контролировать выходное устройство, громкость и многое другое с помощью
pactl
илиpavucontrol
приложения с графическим интерфейсом:источник