streaming स्ट्रीमिंग सर्वर में RTP या RTSP में क्या अंतर है?




live-streaming (5)

मैं एक स्ट्रीमिंग सर्वर विकसित करने के बारे में सोच रहा हूं और मेरे पास निम्नलिखित प्रश्न हैं, RTSP (उदाहरण url: rtsp://192.168.0.184/myvideo.mpg ) या RTP (उदाहरण url: rtp://192.168.0.184 ) पर करें।

जैसा कि मैंने समझा है, एक RTSP सर्वर मुख्य रूप से फ़ाइलों की स्ट्रीमिंग के लिए उपयोग किया जाता है जो पहले से मौजूद हैं, अर्थात, लाइव नहीं। RTP सर्वर का उपयोग प्रसारण के लिए किया जाता है।

अगर मैं गलत हूं, तो कोई मुझे सही कर रहा है, क्या मैं सही हूं?

मैं कंप्यूटर स्क्रीन पर लाइव सामग्री प्रसारित करने के लिए एक सर्वर विकसित करना चाहता हूं, जो कि स्ट्रीमिंग में प्रसारित होने वाले समय पर प्रदर्शित होता है।


कुछ मूल बातें:

RTSP सर्वर का उपयोग मृत स्रोत के साथ-साथ लाइव स्रोत के लिए भी किया जा सकता है। आरटीएसपी प्रोटोकॉल आपको कमांड प्रदान करता है (जैसे आपके वीसीआर रिमोट), और कार्यक्षमता आपके कार्यान्वयन पर निर्भर करती है।

आरटीपी वास्तविक समय प्रोटोकॉल है जिसका उपयोग वास्तविक समय में ऑडियो और वीडियो के परिवहन के लिए किया जाता है। ट्रांसपोर्ट एड्रेस और पोर्ट के आधार पर, ट्रांसपोर्ट यूनिकैस्ट, मल्टिकास्ट या ब्रॉडकास्ट किया जा सकता है। RTP ट्रांसपोर्ट करने के अलावा आपके लिए बहुत सारे काम करता है जैसे कि पैकेटबंदी, रीक्रिएटिंग, घबराना कंट्रोल, QoS, होंठों के लिए सपोर्ट .....

आपके मामले में यदि आप स्ट्रीमिंग सर्वर का प्रसारण करना चाहते हैं तो आपको RTSP (नियंत्रण के लिए) के साथ-साथ RTP (प्रसारण ऑडियो वीडियो) दोनों की आवश्यकता है

आप के साथ शुरू करने के लिए live555 द्वारा प्रदान किए गए नमूना कोड के माध्यम से जा सकते हैं


RTSP (वास्तव में RTP) का उपयोग स्ट्रीमिंग वीडियो के लिए किया जा सकता है, लेकिन लाइव प्रस्तुतियों सहित कई अन्य प्रकार के मीडिया भी। Rtsp सिर्फ RTP सत्र को सेटअप करने के लिए उपयोग किया जाने वाला प्रोटोकॉल है।

सभी विवरणों के लिए आप निम्नलिखित पते पर मेरे खुले स्रोत आरटीएसपी सर्वर कार्यान्वयन की जांच कर सकते हैं: https://net7mma.codeplex.com/

या मेरा लेख @ http://www.codeproject.com/Articles/507218/Managed-Media-Aggregation-using-Rtsp-and-Rtp

यह री-सोर्सिंग स्ट्रीम के साथ-साथ धाराओं के गतिशील निर्माण का समर्थन करता है, विभिन्न आरएफसी लागू होते हैं और लाइब्रेरी बेहतर प्रदर्शन और कम मेमोरी तब एफएफएमपीईजी और बस परिवहन परत में किसी भी अन्य समाधान के बारे में प्राप्त करता है और इस तरह इसका उपयोग करने के लिए एक अच्छा उम्मीदवार बनाता है। अधिकांश परिदृश्यों के लिए एक केंद्रीकृत बिंदु।


मैं आपका दर्द सुनता हूं। मैं अभी (वर्षों बाद) इस दौर से गुजर रहा हूं। मैंने जो सीखा है, उससे आप आरटीएसपी को "वीसीआर नियंत्रक" के रूप में सोच सकते हैं, प्रोटोकॉल आपको यह निर्दिष्ट करने की अनुमति देता है कि आप किन धाराओं (प्रस्तुतियों) को खेलना चाहते हैं, यह तब आपको मीडिया का विवरण देगा, और फिर आप कर सकते हैं RTSP का उपयोग दूरस्थ स्ट्रीम को चलाने, रोकने, रोकने और रिकॉर्ड करने के लिए करें। मीडिया खुद RTP पर चला जाता है। RTSP आम तौर पर एक अलग सॉकेट या संचार परत पर लागू किया जाता है। हालाँकि यह बस एक प्रोटोकॉल है, लेकिन अक्सर इसे सॉकेट पर सर्वर द्वारा लागू किया जाता है। लाइव स्ट्रीम के लिए, आपके द्वारा अनुरोधित RTSP स्ट्रीम केवल एक स्ट्रीम का नाम है। यह सर्वर पर एक फ़ाइल को संदर्भित करने की आवश्यकता नहीं है, सर्वर का RTSP कार्यान्वयन उस स्ट्रीम को पार्स कर सकता है, साथ में एक लाइव ग्राफ़ रख सकता है, और फिर उस स्ट्रीम नाम के लिए एसडीपी (विवरण) प्रदान कर सकता है। लेकिन, यह RTSP सर्वर को लागू करने के तरीके के लिए निश्चित रूप से विशिष्ट है। "लाइव" स्ट्रीम के लिए, यह शायद आरटीपी का उपयोग करने के लिए सरल है, लेकिन आपको आरटीपी सर्वर से एसडीपी को उस स्ट्रीम को खेलने के लिए क्लाइंट को स्थानांतरित करने के लिए एक तरीके की आवश्यकता होगी।


आप कुछ गलत कर रहे हैं ... RTSP एक रीयलटाइम स्ट्रीमिंग प्रोटोकॉल है। मतलब, आप वास्तविक समय में जो चाहें कर सकते हैं। तो आप इसका उपयोग LIVE कंटेंट (चाहे वह वीडियो, ऑडियो, टेक्स्ट, प्रेजेंटेशन हो ...) को स्ट्रीम करने के लिए कर सकते हैं। RTP एक ट्रांसपोर्ट प्रोटोकॉल है, जिसका उपयोग RTSP पर बातचीत करने वाले मीडिया डेटा को ट्रांसपोर्ट करने के लिए किया जाता है।

RTP पर मीडिया ट्रांसमिशन को नियंत्रित करने के लिए आप RTSP का उपयोग करते हैं। आप इसे सेटअप, प्ले, पॉज़, स्ट्रीम को फाड़ ...

इसलिए, यदि आप चाहते हैं कि आपका सर्वर URL के अनुरोध के बाद ही स्ट्रीमिंग शुरू कर दे, तो आप किसी प्रकार का आरटीपी-ओनली सर्वर लागू कर सकते हैं। लेकिन अगर आप अधिक नियंत्रण चाहते हैं और यदि आप लाइव वीडियो स्ट्रीमिंग कर रहे हैं, तो आपको आरटीएसपी का उपयोग करना चाहिए, क्योंकि यह एसडीपी और अन्य महत्वपूर्ण डिकोडिंग डेटा को प्रसारित करता है।

जिन दस्तावेज़ों को मैंने यहाँ जोड़ा है, वे एक अच्छा प्रारंभिक बिंदु हैं।


AFAIK, RTSP स्ट्रीम को बिल्कुल भी ट्रांसमिट नहीं करता है, यह प्ले और STOP जैसे फंक्शंस के साथ सिर्फ एक आउट-ऑफ-बैंड कंट्रोल प्रोटोकॉल है।

कच्चे यूडीपी या आरटीपी, यूडीपी पर कच्चे टीसीपी या एचटीटीपी की तरह धाराओं के लिए ट्रांसमिशन प्रोटोकॉल हैं।

दिए गए ट्रांसमिशन प्रोटोकॉल पर एक निश्चित कार्यक्रम को स्ट्रीम करने में सक्षम होने के लिए, आपके कंटेनर प्रारूप के लिए एक एनकैप्सुलेशन विधि को परिभाषित किया जाना है। उदाहरण के लिए टीएस कंटेनर को यूडीपी पर प्रेषित किया जा सकता है, लेकिन माट्रोस्का नहीं कर सकता।

हालांकि बहुत कुछ सब कुछ टीसीपी के माध्यम से ले जाया जा सकता है।

(तथ्य यह है कि आप किस कोडेक का उपयोग करते हैं यह भी अप्रत्यक्ष रूप से मायने रखता है क्योंकि यह आपके द्वारा उपयोग किए जाने वाले कंटेनर प्रारूपों को प्रतिबंधित करता है।)