如何通过 SSH 播放 HTTP 音乐流?

如何通过 SSH 播放 HTTP 音乐流?

我知道我可以mplayer <stream>打开本地机器上的流。但是,我位于防火墙后面。

相反,我想打开上的流远程机器,但仍然它在这个。远程连接是什么SSH是为了,但是ssh "mplayer <stream>"两者都打开在遥控器上播放流。

SSH 的-x标志启用 X11 显示转发。我需要那个吗?

答案1

您可以使用wgetoverssh打开 HTTP 连接并输出流数据,然后mplayer在本地机器上播放。

ssh <user>@<host> "wget <stream> -O -" | mplayer -cache 512 -

微妙之处:

  • wget-O(大写字母哦)选项设置其输出文件;-(破折号)意味着stdout.

  • mplayer-cache选项会导致可配置的输入量被缓冲,从而补偿网络抖动。 (破折号)选项-使其从 读取stdin

尝试串流场景卫星电台, 例如。http://r1.scenesat.com:8000/scenesat

答案2

您可以使用ssh's-L标志创建从您的系统到远程系统的隧道:

ssh -L <localport>:<streamhost>:<streamport> <user>@<remote>

mplayer然后,您可以像其他方式一样连接到隧道的一端:

mplayer localhost:<localport>

答案3

您可以设置一个SOCKS代理:

ssh -D localhost:8080 user@remotehost
mplayer http_proxy://localhost:8080/http://stream

您可以告诉任何其他应用程序(例如您的网络浏览器)也使用此代理。

答案4

sshfs对于此类情况来说,这是一个很棒的工具。它隐藏了许多防火墙,并允许您使用您选择的任何播放器(尽管 mplayer 仍然是一个不错的选择)。

sudo apt-get install sshfs # your favorite packager here
sshfs [email protected]:/home/arthur/Music ~/Music

我也跑亚音速侦听端口 4040 localhost,然后ssh使用 -tunnel home

ssh -L 4040:localhost:4040 [email protected]

然后我可以在浏览器中打开 Subsonic http://localhost:4040

相关内容