Odpowiedź Erika działa dobrze, ale używanie jej takim, jakim jest, używanie flac
lub oggenc
, istnieje znaczne opóźnienie.
Rozwiązaniem jest dodanie -cache 256
do mplayer
polecenia, aby wyglądało to następująco:
ssh <user>@<remotehost> "arecord -f cd -D plughw:2 | oggenc -" | mplayer -cache 256 -
Inną rzeczą, o której należy wspomnieć, jest fakt, że obecnie prawie każda nowoczesna dystrybucja korzysta z PulseAudio, która przejmuje kontrolę nad urządzeniem sprzętowym, dlatego korzystanie plughw:2
nie powiedzie się, jeśli PulseAudio jest uruchomione.
Ogólnie rzecz biorąc, default
powinien działać dobrze i korzystać z PulseAudio, gdzie można użyć pavucontrol
lub podobnego, aby wybrać żądane źródło wejściowe za pomocą PulseAudio.
Dzięki temu polecenie będzie wyglądać następująco:
ssh <user>@<remotehost> "arecord -f cd | oggenc -" | mplayer -cache 256 -
ALE: To wprowadza opóźnienie. W moim przypadku jest to około ośmiu sekund. To straszne.
Rozwiązanie jest znacznie prostsze niż jakiekolwiek inne polecenie:
ssh <user>@<host> "arecord -f S16_LE -r 36000" | aplay
Otóż to. Wykorzystuje to prawie żaden procesor (zgodnie z 0,1% htop
). Wykorzystuje dla mnie ~ 60KB / s przepustowości.
Jeśli chcesz dźwięku stereo: ssh <user>@<host> "arecord -f cd" | aplay
Przydaje się tylko, jeśli masz mikrofon stereo, dla mnie zwiększa przepustowość do ~ 150 KB / s. (Ponieważ podnosi również częstotliwość próbkowania do 44100 Hz).
Więcej informacji na temat częstotliwości próbkowania ( -r
) i częstości bitów (na które ma wpływ -f
) można znaleźć tutaj .
Zasadniczo: im niższy poziom, tym gorsza jakość, ale mniejsza wymagana przepustowość.
To rozwiązanie jest w pełni kompatybilne z PulseAudio, możesz kontrolować urządzenie wyjściowe, głośność i więcej za pomocą pactl
lub pavucontrol
aplikacji GUI:
cat - | mplayer -
zamiast tegomplayer -
?