जावा, स्प्रिंग, कुरेंटो और मीडिया सर्विसेज



पहले से ही कई मीडिया सेवाएं हैं, लेकिन लोग उन्हें बनाना जारी रखते हैं। मैंने अपनी बाइक का आविष्कार करने का फैसला किया।

कुरेंटो परियोजना का सामना करने के बाद , मुझे एहसास हुआ कि यही मेरी जरूरत है। यह लेख आंशिक रूप से कुरेंटो डॉक्यूमेंटैटिन का अनुवाद है, आंशिक रूप से कुर्तेटीपर्स के साथ मेरे प्रयोगों के बारे में नोट करता है। मुझे उम्मीद है कि डेवलपर्स इस मुद्दे का अध्ययन करना शुरू कर देंगे, यह सामग्री मीडिया सेवाओं को बनाने के विषय को जल्दी से मास्टर करने में मदद करेगी।

कुर्तेनो सी एस्पेक्ट्राका "स्ट्रीम" में अनुवाद करता है। रे स्पेनिश विश्वविद्यालय द्वारा डिज़ाइन किया गया
जुआन कार्लोस यूनिवर्सिटेड । Kurento WebRTC मीडिया सर्वर और क्लाइंट APIs का एक सेट है जो वेब और स्मार्टफ़ोन के लिए एप्लिकेशन के निर्माण को सरल बनाता है। यह वीडियो टेलीफोनी, वीडियो कॉन्फ्रेंसिंग सेवाएं, मोशन रिकग्निशन वाले कैमरों से छवियों की निगरानी, ​​किसी फाइल या नेटवर्क से ऑडियो-वीडियो सामग्री, किसी व्यक्ति या कार के नंबर को पहचानने और बहुत कुछ कर सकता है। कुरेंटो कोड खुला स्रोत है, जिसे अपाचे लाइसेंस संस्करण 2.0 की शर्तों के तहत वितरित किया गया है और यह गीथब पर उपलब्ध है। कुरेंटो के रचनाकारों के अनुसार, यह लेगो के समान है, इसके कार्यक्रम ब्लॉकों से कई उपयोगी अनुप्रयोग किए जा सकते हैं। ब्लॉक सीधे "बॉक्स से बाहर" का उपयोग किया जा सकता है, लेकिन आप चाहें तो अपने खुद के प्लगइन्स भी विकसित कर सकते हैं।

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

हर स्वाभिमानी ट्यूटोरियल HelloWorld ऐप से शुरू होता है। यह कोई अपवाद नहीं था। लेकिन पहला आवेदन लिखने से पहले, आपको KMS - Kurento Media सर्वर स्थापित करना होगा, जो C ++ में लिखा गया है और केवल Ubuntu या Linux टकसाल पर स्थापित किया गया है, और संस्करण (लेखन के समय) 14 और 18 के बीच होना चाहिए। मैंने तुरंत लिनक्स टकसाल संस्करण स्थापित किया और KMS स्थापित नहीं था, मुझे 18 वीं पंक्ति में वापस जाना पड़ा।

ठीक है, हमने सिस्टम स्थापित किया, Intellij Idea, Kurento रिपॉजिटरी को जोड़ें और KMS स्थापित करें:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5AFA7A83 

 sudo tee "/etc/apt/sources.list.d/kurento.list" >/dev/null <<EOF # Kurento Media Server - Release packages deb [arch=amd64] http://ubuntu.openvidu.io/6.7.1 $DISTRO kms6 EOF 

 sudo apt-get update 

 sudo apt-get install kurento-media-server 

हम केएमएसएस टीम शुरू करते हैं:

 sudo service kurento-media-server start 

जावा के लिए संपूर्ण ट्यूटोरियल क्लोन करें:

 git clone https://github.com/Kurento/kurento-tutorial-java.git 

वांछित निर्देशिका पर जाएं

 cd kurento-tutorial-java/kurento-hello-world 

हम आइडिया के माध्यम से, मावेन के तहत या मेरे मामले में आवेदन लॉन्च करते हैं। वेब एप्लिकेशन शुरू करने के बाद, हम लोकलहोस्ट पर फ़ायरफ़ॉक्स ब्राउज़र के माध्यम से जाते हैं: 8443 / हम एक पृष्ठ देखते हैं, जहां "स्टार्ट" बटन पर क्लिक करने के बाद, हमें कुछ ऐसा मिलता है

छवि

बाएं वीडियो तत्व में, वेब कैमरा से एक चित्र प्रदर्शित होता है, और दाईं ओर, एक ही चित्र, लेकिन छवि केएमएस लूप-बैक के माध्यम से पारित की जाती है।

इस अनुभव के आधार पर, हम निष्कर्ष निकालते हैं: HelloWorld लगभग हमेशा चलता है।
अब देखते हैं कि यह कैसे काम करता है। यह आंकड़ा हमारे अनुभव के कुछ हिस्सों के कनेक्शन आरेख को दर्शाता है।

छवि

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

छवि

छवि

जावास्क्रिप्ट क्लाइंट एप्लिकेशन सर्वर को एक "स्टार्ट" टेक्स्ट संदेश भेजता है। अनुप्रयोग सर्वर इस अनुप्रयोग में तीन मुख्य कार्य करता है:

 final MediaPipeline pipeline = kurento.createMediaPipeline(); user.setMediaPipeline(pipeline); final WebRtcEndpoint webRtcEp = new WebRtcEndpoint.Builder(pipeline).build(); user.setWebRtcEndpoint(webRtcEp); webRtcEp.connect(webRtcEp); 

एक मीडियापिपल बनाता है जिसके माध्यम से मीडिया ट्रैफ़िक को प्रसारित किया जाएगा, एक WebRtcEndpoint ऑब्जेक्ट बनाता है जो मीडिया ट्रैफ़िक को संसाधित करता है, और रिसेप्शन के लिए इस ब्लॉक के प्रसारण को स्वयं में लपेटता है।

यह कौरेंटो का उपयोग करके हैलोवर्ल्ड एप्लिकेशन के लिए मेरा संक्षिप्त परिचय समाप्त करता है। मैं आपको मीडिया सेवाओं के सफल निर्माण की कामना करता हूं।
अगला लेख

Source: https://habr.com/ru/post/hi435580/


All Articles