मैं 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 हेडर के रूप में भेजे गए एक उचित डोमेन नाम की आवश्यकता है) का उपयोग कर रहा है। इस समस्या को हल करने के लिए, आप उदाहरण के लिए अपनी hostsफ़ाइल में अस्थायी रूप से एक नियम जोड़ सकते हैं, mplayerजो यह सोचकर कि स्थानीय डोमेन पर लक्षित डोमेन होस्ट किया जाता है।
— लियोरी

3
या आप हेडर -http-header-fieldsको मजबूर करने के लिए उपयोग कर सकते हैं Host।
— इग्नासियो वाज़क्वेज़-अब्राम्स

@ IgnacioVazquez-Abrams आपको यह स्पष्ट करने में कहाँ मन है? मैं इस तरह के एक विकल्प में नहीं है man ssh।
— विलियम

@ लियमविलियम: यह एक mplayerविकल्प है।
— इग्नासियो वाज़केज़-अब्राम्स

34

आप उपयोग कर सकते हैं wgetके ऊपर sshतो एक HTTP कनेक्शन और आउटपुट धारा डेटा को खोलने के लिए, mplayerयह खेलने के लिए स्थानीय मशीन पर।

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

सूक्ष्मताएं:

  • wgetका -O(कैपिटल लेटर ओह) विकल्प अपनी आउटपुट फाइल को सेट करता है; -(डैश) का तात्पर्य है stdout।

  • mplayerके -cacheविकल्प नेटवर्क घबराना के लिए मुआवजा, इनपुट के एक कॉन्फ़िगर की बफ़र किए जाने का कारण बनता है। -(पानी का छींटा) विकल्प यह से पढ़ने में आता है stdin।

उदाहरण के लिए, सीनसैट रेडियो स्ट्रीमिंग का प्रयास करें ।http://r1.scenesat.com:8000/scenesat


6
मुझे यह भी नहीं पता कि यह किस तरह का संगीत है, लेकिन क्योंकि मैं इसे पाइप कर रहा हूं, यह बहुत बढ़िया है! धन्यवाद।
— सौल्टडॉन

1
ध्यान दें कि प्रश्न में किसी विशेष प्रोटोकॉल का उल्लेख नहीं है जिस पर संगीत प्रवाहित है। अन्य प्रोटोकॉल हैं, जिन पर संगीत प्रवाहित किया जा सकता है, उदाहरण के लिए RTP और MMS। दोनों द्वारा खेला जा सकता है mplayer, लेकिन डाउनलोड नहीं किया गया है wget।
— लियोरी

@ लिओरी गुड पॉइंट। यह स्पष्ट रूप से एक सामान्य समाधान नहीं है।
— एको

8

आप एक SOCKS प्रॉक्सी सेट कर सकते हैं :

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

आप इस प्रॉक्सी का उपयोग करने के लिए किसी अन्य एप्लिकेशन, जैसे आपके वेब ब्राउज़र, का उपयोग कर सकते हैं।


2
क्या http_proxy फीचर वास्तव में SOCKS प्रॉक्सी के साथ भी काम करता है? मेरे आदमी पृष्ठ में यह सुविधा अविभाजित है, और वेब पर विभिन्न साइटें tsocksदृष्टिकोण को पसंद करती हैं।
— लियोरी

1
@ लियोरी: हाँ, यह एक साथ काम करता है 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।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.