SSH経由でHTTP音楽ストリームを再生するにはどうすればよいですか?


29

ローカルマシンでストリームmplayer <stream>開い再生するためにできることを知っています。しかし、私はファイアウォールの内側にいます。

代わりに、リモートマシンでストリームを開きたいが、それでもこのマシン再生したい。リモート接続はSSHの目的ですが、リモートでストリームを開い再生することの両方を実行します。ssh "mplayer <stream>"

SSHの-xフラグは、X11ディスプレイ転送を有効にします。それが必要ですか?

回答:


19

あなたは使用することができるssh-Lあなたのシステムからリモートへのトンネルを作成するためのフラグを:

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

その後、mplayer他の方法でトンネルの終端に接続できます:

mplayer localhost:<localport>

1
HTTPサーバーが仮想ドメインを使用している場合(つまり、クライアントがHTTPヘッダーとして送信する適切なドメイン名が必要な場合)、これは機能しないことに注意してください。この問題を解決するには、たとえば一時的にルールを追加することができますhostsmplayer、ターゲットドメインがローカルマシンでホストされていると考えるファイルに。
リオリ

3
または-http-header-fieldsHostヘッダーを強制するために使用できます。
イグナシオバスケスアブラムス

@ IgnacioVazquez-Abramsはどこを明確にしていいですか?私はそのようなオプションはありませんman ssh
ウィリアム

@LiamWilliam:これはmplayerオプションです。
イグナシオバスケス-アブラムス

34

wgetover sshを使用してHTTP接続を開き、ストリームデータを出力mplayerしてから、ローカルマシンで再生できます。

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

微妙な点:

  • wgetさん-O(大文字オハイオ州)オプションは、出力ファイルを設定します。-(ダッシュ)はを意味しstdoutます。

  • mplayer-cacheオプションにより、設定可能な量の入力がバッファされ、ネットワークのジッターが補正されます。-(ダッシュ)オプションは、それから読んでますstdin

たとえば、SceneSat Radioをストリーミングしてみてください。http://r1.scenesat.com:8000/scenesat


6
私はこれがどんな音楽なのかさえ知りませんが、私はそれをパイピングしているので、それは素晴らしいです!ありがとう。
スードン

1
この質問では、音楽がストリーミングされる特定のプロトコルについては言及されていないことに注意してください。RTPやMMSなど、音楽をストリーミングできるプロトコルは他にもあります。両方で再生できますmplayerが、ダウンロードはできませんwget
リオリ

@liori良い点。これは明らかに一般的な解決策ではありません。
アンコ

8

設定できます SOCKSプロキシを

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

Webブラウザーなどの他のアプリケーションにこのプロキシを使用するように指示することもできます。


2
http_proxy機能は実際にSOCKSプロキシでも動作しますか?この機能は私のmanページには文書化されておらず、ウェブ上のさまざまなサイトがこのtsocksアプローチを好んでいます。
リオリ

1
@liori:はい、これはとともに機能しtsocks mplayer -playlist http://bassdrive.com/bassdrive.m3uます。ご助言ありがとうございます。tsocksがなければ(別名:のみhttp_proxy://…)動作しませんでした。
エリック

6

sshfsこのような場合に最適なツールです。これは多くのファイアウォールを隠し、選択したプレーヤーを使用できるようにします(ただし、mplayerは依然として優れた選択肢です)。

sudo apt-get install sshfs # your favorite packager here
sshfs me@mydomain.org:/home/arthur/Music ~/Music

私はまた、実行亜音速のポート4040にリスニングをlocalhostして、ssh一緒に家を-tunnel

ssh -L 4040:localhost:4040 me@mydomain.com

その後、ブラウザでSubsonicを開くことができhttp://localhost:4040ます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.