OK, ich habe es gerade gefunden und es funktioniert immer noch! Wirklich lustig. Sie benötigen keine ausgefallenen Anwendungen, Instant Messenger oder ähnliches. Mit diesem Befehl senden Sie Ihre Audiodaten an den Remote-Host.
arecord -f cd -t raw | oggenc - -r | ssh <user>@<remotehost> mplayer -
Oder wenn dir ffmpeg besser gefällt
ffmpeg -f alsa -ac 1 -i hw:3 -f ogg - \
| ssh <user>@<remotehost> mplayer - -idle -demuxer ogg
Quelle: http://shmerl.blogspot.de/2011/06/some-fun-with-audio-forwarding.html
Wenn Sie ein echtes Telefon wünschen:
Der obige Befehl galt nur für eine Richtung. Für die andere Richtung müssen Sie eine weitere SSH-Sitzung starten. Verwenden Sie also, um zu empfangen, was der andere Benutzer zu Ihnen sagt
ssh <user>@<remotehost> 'arecord -f cd -t raw | oggenc - -r' | mplayer -
Oder wenn dir ffmpeg besser gefällt
ssh <user>@<remotehost> ffmpeg -f alsa -ac 1 -i hw:3 -f ogg - \
| mplayer - -idle -demuxer ogg
wo hw:3
ist das alsadevice das sie aufnehmen wollen (suchen mit arecord -l
; sie können auch einen gerätenamen verwenden, suchen mit arecord -L
; in vielen fällen können sie einfach das mit folgendem befehl aufgeführte gerät verwenden:) arecord -L | grep sysdefault
.
Aktualisieren
Im Jahr 2018 war auf meinen Fedora Linux-Systemen ffmpeg
keine Unterstützung enthalten (dies scheint auf RaspberryPi-Systemen mit Raspbian der Fall zu sein). Es gibt aber eine einfache Lösung ohne Neukompilierung. Leiten Sie einfach die Ausgabe von arecord (dem alsarecorder) an ffmpeg weiter:
ssh <user>@<remotehost> 'arecord -f cd -D plughw:2 | ffmpeg -ac 1 -i - -f ogg -' \
| mplayer - -idle -demuxer ogg
Sie erhalten das Eingabegerät, plughw:2
indem Sie Ihr Gerät in der Ausgabe des folgenden Befehls suchen:
arecord -l
In meinem Fall sehe ich card0
und card2
(meine Webcam, die ein Mikrofon hat). Also schrieb ich plughw:2
für card2
.
Update 2 (ohne mplayer)
Wenn Sie nicht haben oder mögen, mplayer
aber ffplay
(was ein Teil von ist ffmpeg
), können Sie verwenden:
unkomprimiertes Wave-Audio (hohe Bandbreite, sehr niedrige CPU-Auslastung auf der Aufnahmeseite)
ssh <user>@<remotehost> "arecord -f cd -D plughw:2" | ffplay -nodisp -
komprimiert mit flac (geringe Bandbreite, geringe CPU-Auslastung auf der Aufnahmeseite)
ssh <user>@<remotehost> "arecord -f cd -D plughw:2 | flac - -o -" | ffplay -nodisp -
komprimiert mit ogg (sehr geringe Bandbreite, hohe CPU-Auslastung auf der Aufnahmeseite)
ssh <user>@<remotehost> "arecord -f cd -D plughw:2 | oggenc -" | ffplay -nodisp -
cat - | mplayer -
anstatt nurmplayer -
?Eriks Antwort funktioniert gut, aber wie es ist, mit
flac
oderoggenc
, gibt es erhebliche Verzögerung.Eine Lösung besteht darin
-cache 256
, demmplayer
Befehl Folgendes hinzuzufügen :Eine andere Sache, die erwähnt werden muss, ist, dass heutzutage so ziemlich jede moderne Distribution PulseAudio verwendet, das die Kontrolle über das Hardwaregerät übernimmt. Daher
plughw:2
schlägt die Verwendung fehl, wenn PulseAudio ausgeführt wird.Im Allgemeinen
default
sollte funktionieren und PulseAudio verwenden, wo Siepavucontrol
oder ähnliches verwenden können, um Ihre gewünschte Eingangsquelle mit PulseAudio auszuwählen.Das würde den Befehl wie folgt machen:
ABER: Dies führt zu einer Verzögerung. In meinem Fall sind es ungefähr acht Sekunden. Das ist furchtbar.
Die Lösung ist viel einfacher als jeder andere Befehl:
Das ist es. Dies verbraucht kaum CPU (0,1% laut
htop
). Ich verbrauche etwa 60 KB / s Bandbreite.Wenn Sie Stereo-Sound wollen:
ssh <user>@<host> "arecord -f cd" | aplay
Nur nützlich, wenn Sie ein Stereo-Mikrofon haben, erhöht sich die Bandbreite für mich auf ~ 150KB / s. (Da es auch die Abtastrate auf 44100Hz erhöht).
Weitere Informationen zu Abtastrate (
-r
) und Bitrate (betroffen von-f
) finden Sie hier .Grundsätzlich gilt: Je niedriger Sie gehen, desto schlechter ist die Qualität, desto geringer ist jedoch die benötigte Bandbreite.
Diese Lösung ist vollständig mit PulseAudio kompatibel. Sie können das Ausgabegerät, die Lautstärke und mehr mithilfe
pactl
derpavucontrol
GUI-Anwendung steuern :quelle