Answers:
好的,我刚刚找到了它,但是它仍然有效!真是可笑。您不需要任何精美的应用程序,即时通讯工具或类似工具。使用此命令,您可以将音频发送到远程主机。
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
。
在我的Fedora Linux系统ffmpeg
上,2018年不包含alsa支持(在具有Raspbian的RaspberryPi系统上似乎相同)。但是有一个简单的解决方案,无需重新编译。只需将 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
。
如果您没有或喜欢,mplayer
但是ffplay
(属于ffmpeg
),可以使用:
未压缩的波形音频(高带宽,记录侧的cpu使用率非常低)
ssh <user>@<remotehost> "arecord -f cd -D plughw:2" | ffplay -nodisp -
用flac压缩(记录端的低带宽,低CPU使用率)
ssh <user>@<remotehost> "arecord -f cd -D plughw:2 | flac - -o -" | ffplay -nodisp -
用ogg压缩(记录侧的带宽非常低,CPU使用率很高)
ssh <user>@<remotehost> "arecord -f cd -D plughw:2 | oggenc -" | ffplay -nodisp -
Erik的答案很好用,但是按原样使用,flac
或者使用oggenc
,都有很大的滞后。
一种解决方案是将命令添加-cache 256
到该mplayer
命令,因此其外观如下所示:
ssh <user>@<remotehost> "arecord -f cd -D plughw:2 | oggenc -" | mplayer -cache 256 -
还要提到的另一件事是,如今,几乎每个现代发行版都使用PulseAudio来控制硬件设备,因此,plughw:2
如果PulseAudio正在运行,则使用将失败。
通常,default
应该可以正常工作并使用PulseAudio,在这里您可以使用PulseAudio pavucontrol
或类似方法来选择所需的输入源。
这将使命令如下所示:
ssh <user>@<remotehost> "arecord -f cd | oggenc -" | mplayer -cache 256 -
但是:这会带来滞后。就我而言,大约是八秒钟。这太可怕了。
ssh <user>@<host> "arecord -f S16_LE -r 36000" | aplay
而已。这几乎没有使用任何CPU(根据占0.1%htop
)。它为我使用了约60KB / s的带宽。
如果要立体声:ssh <user>@<host> "arecord -f cd" | aplay
仅当您有立体声麦克风时才有用,对我来说带宽增加到〜150KB / s。(因为它还将采样率提高到44100Hz)。
有关采样率(-r
)和比特率(受-f
)影响的更多信息,请参见此处。
基本上:走得越低,质量越差,但所需的带宽越低。
此解决方案与PulseAudio完全兼容,您可以使用pactl
或pavucontrol
GUI应用程序控制输出设备,音量等。
cat - | mplayer -
而不是在做mplayer -
呢?