Comment jouer un stream de musique HTTP sur SSH?

Je sais que je peux juste faire mplayer <stream> pour ouvrir et jouer un stream sur la machine locale. Cependant, je suis derrière un pare-feu.

Au lieu de cela, je voudrais ouvrir le stream sur une machine distante , mais toujours jouer sur celui-ci . Les connections distantes sont ce à quoi sert SSH , mais faire ssh "mplayer <stream>" ouvre et lit le stream sur la télécommand.

L'indicateur -x de SSH active le transfert d'affichage X11. Ai-je besoin de ça?

Vous pouvez utiliser l'indicateur -L ssh pour créer un tunnel depuis votre système vers une télécommand:

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

Vous pouvez ensuite vous connecter à votre extrémité du tunnel avec mplayer comme vous le feriez autrement:

 mplayer localhost:<localport> 

Vous pouvez utiliser wget sur ssh pour ouvrir une connection HTTP et émettre des données de stream, puis mplayer sur la machine locale pour le lire.

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

Les subtilités:

  • wget option -O (majuscule oh) de wget définit son file de sortie; - (tiret) implique stdout .

  • L'option -cache mplayer provoque la mise en tampon d'une quantité configurable d'input, compensant la gigue réseau. L'option - (tiret) le fait lire depuis stdin .

Essayez le streaming de SceneSat Radio , par exemple. http://r1.scenesat.com:8000/scenesat

Vous pouvez configurer un proxy SOCKS :

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

Vous pouvez utiliser toute autre application, telle que votre browser Web, pour utiliser ce proxy.

sshfs est un outil merveilleux pour des cas comme celui-ci. Il cache beaucoup de pare-feu et vous permet d'utiliser n'importe quel lecteur que vous choisissez (même si mplayer est toujours un bon choix).

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

Je lance aussi Subsonic en train d'écouter le port 4040 sur localhost , puis ssh -tunnel home avec

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

Je peux ensuite ouvrir Subsonic dans le browser à http://localhost:4040 .