इस दस्तावेज़ में, एन्कोडर से YouTube पर लाइव डेटा स्ट्रीम करने के लिए, RTMPS का इस्तेमाल करने का तरीका बताया गया है. RTMPS, एक सामान्य आरटीएमपी (रीयलटाइम मैसेजिंग प्रोटोकॉल) वीडियो स्ट्रीम है. यह एसएसएल कनेक्शन के ज़रिए टनल की जाती है. यह दस्तावेज़, एन्कोडर बनाने वाली उन कंपनियों के लिए है जो आरटीएमपी के साथ काम करने वाले एन्कोडर में आरटीएमपीएस की सुविधा जोड़ना चाहती हैं.
RTMPS, आम तौर पर इस्तेमाल किए जाने वाले कॉन्टेंट के लिए एक अच्छा विकल्प है. खास तौर पर, तब जब कम समय में डेटा ट्रांसफ़र करना हो. YouTube Live Streaming के साथ काम करने वाले अलग-अलग इनजेशन प्रोटोकॉल के बारे में खास जानकारी पाने के लिए, इनजेशन प्रोटोकॉल की तुलना देखें.
ज़रूरी शर्तें
YouTube लाइव पर RTMPS भेजने के लिए, कुछ ज़रूरी शर्तें पूरी करनी होती हैं:
- कनेक्शन यूआरएल (
<protocol>://<server>/<path>
) का हर हिस्सा सही होना चाहिए:- प्रोटोकॉल
rtmps
होना चाहिए. - सर्वर, YouTube RTMPS का मान्य इनजेशन एंडपॉइंट होना चाहिए.
- पाथ, YouTube Live RTMP ऐप्लिकेशन का मान्य नाम होना चाहिए.
- प्रोटोकॉल
- कनेक्शन, डेटा ट्रांसफ़र करने वाले सर्वर पर मौजूद पोर्ट 443 से होना चाहिए.
- मल्टीमीडिया स्ट्रीम को RTMPS का इस्तेमाल करके भेजा जाना चाहिए. इसका मतलब है कि इसे एसएसएल कनेक्शन पर आरटीएमपी का इस्तेमाल करके भेजा जाना चाहिए.
कनेक्शन का यूआरएल पाना
अगर आपका एन्कोडर पहले से ही YouTube Live API का इस्तेमाल करता है, तो RTMPS का इस्तेमाल करके डेटा डालने का यूआरएल पाने की प्रोसेस, RTMP के लिए इस्तेमाल की जाने वाली प्रोसेस जैसी ही होती है. नई स्ट्रीम बनाने के लिए, LiveStreams insert (POST) अनुरोध भेजें. जवाब में, cdn.ingestionInfo.rtmpsIngestionAddress
फ़ील्ड में आरटीएमपीएस यूआरएल दिया गया होता है. अगर डुअल इंजेक्शन की सुविधा उपलब्ध है, तो बैकअप पता cdn.ingestionInfo.rtmpsBackupIngestionAddress
है.
कनेक्शन बनाया जा रहा है
अपनी पसंद की सॉकेट लाइब्रेरी का इस्तेमाल करके, उस सर्वर पर पोर्ट 443 से एसएसएल/टीएलएस कनेक्शन बनाएं जिसके लिए, डेटा ट्रांसफ़र करने वाले यूआरएल में जानकारी दी गई है. TLS सिर्फ़ ट्रांसपोर्ट लेयर के साथ काम करता है. इसलिए, कनेक्शन शुरू करने के लिए सर्वर होस्टनेम की ज़रूरत नहीं होती. हालांकि, हमारे सर्वर के साथ पुष्टि करने के लिए इसकी ज़रूरत होती है. इसलिए, पक्का करें कि आपने अपने एसएसएल हैंडशेक में एसएनआई एक्सटेंशन (सर्वर नेम इंडिकेशन) जोड़ा हो. साथ ही, सर्वर का नाम उस सर्वर के होस्टनेम पर सेट किया हो जिससे आपको कनेक्ट करना है.
एसएसएल कनेक्शन बन जाने के बाद, इसे अपनी आरटीएमपी क्लाइंट लाइब्रेरी के लिए कनेक्शन के तौर पर इस्तेमाल करें. शुरू किए गए SSL कनेक्शन में, स्टैंडर्ड टीसीपी कनेक्शन वाला ही एपीआई होता है. इसलिए, RTMP लाइब्रेरी को दोनों के साथ एक जैसा काम करना चाहिए.
समस्या का हल
एसएसएल से जुड़ी गड़बड़ियां
अगर एसएसएल कनेक्शन बनाने की कोशिश करने पर आपको अमान्य सर्टिफ़िकेट मिलता है, तो हो सकता है कि आप ऐसे YouTube सर्वर से कनेक्ट कर रहे हों जिसके लिए आरटीएमपी ज़रूरी है. पक्का करें कि आपने जिस सर्वर का नाम इस्तेमाल किया है उसमें "rtmps" शामिल हो. "s" पर ध्यान दें.
अगर यूआरएल सही होने के बावजूद आपको एसएसएल से जुड़ी गड़बड़ी दिखती है, तो हो सकता है कि आपने गलत पोर्ट से कनेक्ट किया हो. पुष्टि करें कि आप पोर्ट 443 से कनेक्ट कर रहे हों.
अगर यूआरएल और पोर्ट सही हैं, तो हो सकता है कि आपकी एसएसएल लाइब्रेरी, सर्टिफ़िकेट को सही तरीके से मैनेज न कर रही हो. एसएसएल से जुड़ी गड़बड़ियों के बारे में, कम लेवल के डाइग्नोस्टिक मैसेज देखें. साथ ही, दोबारा जांच करें कि हैंडशेक में एसएनआई का इस्तेमाल किया जा रहा हो.
कनेक्शन का समय खत्म होना
अगर सर्वर से कनेक्ट किया जा सकता है, लेकिन RTMP लाइब्रेरी को कोई जवाब नहीं मिलता है और उसका टाइम आउट हो जाता है, तो हो सकता है कि आपने YouTube सर्वर से क्लियरटेक्स्ट RTMP कनेक्शन सेट अप किया हो. हालांकि, YouTube सर्वर को RTMPS की ज़रूरत होती है. पक्का करें कि आपने एसएसएल कनेक्शन बनाया हो, न कि टीसीपी कनेक्शन.