2012-05-09 26 views
12

के लिए यूडीपी या आरटीपी स्ट्रीमिंग समाधान मुझे लाइव टीवी फ़ीड प्रदर्शित करने के लिए एंड्रॉइड ऐप बनाना होगा। गेटवे विक्रेता के अनुसार ऐप को एक डीवीबी गेटवे के मल्टीकास्ट से लाइव वीडियो स्ट्रीम खेलना है, यह यूडीपी या आरटीपी को स्ट्रीम कर सकता है। मैंने यूडीपी और आरटीपी को स्ट्रीम करने के लिए अपने कंप्यूटर पर वीएलसी स्थापित किया और एंड्रॉइड प्लेयर को दिखाने के लिए मेरी अंगुलियों को तोड़ दिया। थोड़ी देर के बाद मुझे पता चला कि एंड्रॉइड केवल HTTP/एस और आरटीएसपी लाइव स्ट्रीम का समर्थन करता है। मैंने अभी तक कोई सफलता नहीं के साथ सभी एफएफएमपीईजी समाधान और विभिन्न मीडिया प्लेयरों की कोशिश की। मैं एक वीडियो विशेषज्ञ नहीं हूं लेकिन मेरी समझ के लिए आरटीएसपी आरटीपी का एक encapsulation है, क्या मेरी आरटीपी फ़ीड लपेटा और स्ट्रीम किया जा सकता है (प्रॉक्सी के माध्यम से भी)? क्या कोई काम कर रहे यूडीपी समाधान के बारे में जानता है?एंड्रॉइड

धन्यवाद

मैं एक सुरंग है कि पोर्ट 1234 से एक स्थानीय यूडीपी धारा गुजरता लेखन, बंदरगाह 8888. मैं वीएलसी के साथ परीक्षण कर रहा हूँ पर एक TCP कनेक्शन शुरू कर दिया, यूडीपी पेलोड सही लग रहा है, और मैं देख रहा हूँ करने में सक्षम हूँ जब मैं टीसीपी श्रोता कनेक्शन को स्वीकार करने की प्रतीक्षा करता हूं तो वीएलसी http कनेक्शन में प्रवेश करता है। लेकिन अभी भी वीएलसी अभ्यस्त जिसके परिणामस्वरूप HTTP धारा खेलते हैं, मेरी कोड:

public void Bridge() 
    { 
     //endpoints 
     IPEndPoint myRemoteEndpoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1234); 

     //communications objects 
     UdpClient myUdpClient = new UdpClient(myRemoteEndpoint); 
     TcpListener myTcpListener = new TcpListener(IPAddress.Any, 8888); 

     //buffer 
     byte[] buffer = new byte[2048]; 

     //start tcp listener 
     myTcpListener.Start(); 
     Socket tcpAcceptedSocket = myTcpListener.AcceptSocket();    

     while (true) 
     { 
      try 
      { 
       //get data from UDP client 
       buffer = myUdpClient.Receive(ref myRemoteEndpoint); 

       //send bytes received from UDP over TCP 
       tcpAcceptedSocket.Send(buffer); 
      } 
      catch (Exception ex) 
      { 
       Console.WriteLine(ex.Message); 
      } 
     } 

     //close sockets 
     myUdpClient.Close(); 
     myTcpListener.Stop(); 

    } 

किसी भी विचार?

+0

मैं किसी भी कोड की सराहना करेंगे/कार्यान्वयन नमूने। धन्यवाद फिर से – Omriko

+0

"क्या कोई और नहीं है?" – Omriko

उत्तर

2

उम्मीद है कि आपने इसे पहले ही हल कर लिया है?

मेरा पहला विचार था "आप while (true) लूप से कैसे बाहर निकलते हैं?" lol

आरटीपी एपीआई स्तर 12 में एंड्रॉयड एसडीके के लिए जोड़ा गया:

http://developer.android.com/reference/android/net/rtp/package-summary.html

शायद आप android.net.rtp उपयोग कर सकते हैं अपने स्ट्रीमिंग वीडियो को पकड़ने के लिए। इस क्षेत्र में ट्यूटोरियल की एक महत्वपूर्ण कमी प्रतीत होती है, इसलिए यदि आपने यह काम किया है/तो मुझे यकीन है कि एक त्वरित लेखन-अप बड़े जी खोज परिणामों को उड़ा सकता है; एक "एंड्रॉइड udp आरटीपी" खोज में आने वाले स्टैक ओवरफ्लो पर 600+ अन्य प्रश्नों के पोस्टर्स की मदद करने का उल्लेख न करें।

ब्लॉग-ओ-क्षेत्र से:

http://burcudogan.com/2011/06/05/android-rtp-implementation-is-based-on-udp/

और मैं WebRTC के लिए एक प्लग में टॉस जाएगा क्योंकि यह आशाजनक दिखता है:

http://www.html5rocks.com/en/tutorials/webrtc/basics/

+1

शेन लिंक के लिए धन्यवाद, क्योंकि जब मैंने यूडीपी ब्रॉडकास्टर (काफी सस्ता ...) पर एमपीईजी 2 टीएस खरीदा था तब मुझे कोई समाधान नहीं मिला था और एक प्रॉक्सी कोड लिखा था जो मीडिया को स्ट्रीम से लाता है, इसे फाइल में ले जाता है और " डाउनलोड करना "या क्लाइंट से फ़ाइल की प्रगतिशील स्ट्रीमिंग। यह समस्या के लिए पाठ्यपुस्तक समाधान नहीं है लेकिन हम इसे ऊपर और चल रहे हैं। मुझे उम्मीद है कि Google हमें भविष्य में कुछ प्यार दिखाएगा और अतिरिक्त प्रोटोकॉल में समर्थन जोड़ देगा। एक बार फिर धन्यवाद! – Omriko

+0

खुशी है कि आप इसे काम कर चुके हैं, और आपके अनुभव से संबंधित धन्यवाद! – CodeShane

+0

क्या आप अपने द्वारा खरीदे गए डिवाइस से लिंक कर सकते हैं? मुझे कुछ इसी तरह की दिलचस्पी है। – egfconnor