संकट:
WebRTC हमें पीयर-टू-पीयर वीडियो / ऑडियो कनेक्शन देता है। यह पी 2 पी कॉल, हैंगआउट के लिए एकदम सही है। लेकिन प्रसारण के बारे में क्या है (उदाहरण के लिए, 1 से 10000 तक)?
कहते हैं कि हमारे पास एक ब्रॉडकास्टर "बी" और दो उपस्थित "ए 1", "ए 2" हैं। निश्चित रूप से यह सॉल्व करने योग्य लगता है: हम सिर्फ B को A1 से और फिर B को A2 से जोड़ते हैं। तो B, सीधे A1 में वीडियो / ऑडियो स्ट्रीम भेजता है और A2 को दूसरी स्ट्रीम देता है। B धाराएँ दो बार भेजता है।
अब कल्पना करते हैं कि 10000 उपस्थित हैं: A1, A2, ..., A10000। इसका मतलब है कि बी को 10000 स्ट्रीम भेजने होंगे। प्रत्येक स्ट्रीम ~ 40KB / s है जिसका मतलब है कि इस प्रसारण को बनाए रखने के लिए B को 400MB / s आउटगोइंग इंटरनेट स्पीड की आवश्यकता है। गवारा नहीं।
मूल प्रश्न (OBSOLETE)
क्या इसे हल करना किसी तरह संभव है, इसलिए बी कुछ सर्वर पर केवल एक स्ट्रीम भेजता है और उपस्थित लोग इस सर्वर से सिर्फ इस स्ट्रीम को खींचते हैं? हां, इसका मतलब है कि इस सर्वर पर आउटगोइंग स्पीड अधिक होनी चाहिए, लेकिन मैं इसे बनाए रख सकता हूं।
या शायद इसका मतलब है WebRTC विचार को बर्बाद करना?
टिप्पणियाँ
Flash अंतिम ग्राहकों के लिए खराब UX के अनुसार मेरी जरूरतों के लिए काम नहीं कर रहा है।
समाधान (वास्तव में नहीं)
26.05.2015 - फिलहाल WebRTC के लिए स्केलेबल प्रसारण के लिए ऐसा कोई समाधान नहीं है, जहाँ आप मीडिया-सर्वरों का उपयोग बिल्कुल नहीं करते हैं। बाजार पर सर्वर-साइड समाधान के साथ-साथ हाइब्रिड (पी 2 पी + सर्वर-साइड अलग-अलग स्थितियों के आधार पर) हैं।
कुछ होनहार तकनीकें हैं, जैसे https://github.com/muaz-khan/WebRTC-Scalable-Broadcast लेकिन उन्हें उन संभावित मुद्दों का जवाब देने की आवश्यकता है: विलंबता, समग्र नेटवर्क कनेक्शन स्थिरता, स्केलेबिलिटी सूत्र (वे अनंत-स्केलेबल नहीं हैं) )।
सुझाव
- ऑडियो और वीडियो कोडेक्स दोनों को मिलाकर सीपीयू / बैंडविड्थ घटाएं;
- एक मीडिया सर्वर प्राप्त करें।