
هناك بالفعل العديد من الخدمات الإعلامية ، لكن الناس يواصلون إنشائها. قررت تناول اختراع دراجتي.
بعد أن واجهت مشروع
Kurento ، أدركت أن هذا هو ما أحتاج إليه. هذه المقالة جزءًا من ترجمة
Kurento Documentatin ، وتلاحظ جزئيًا عن تجاربي في KurentoTutorial. آمل أن يساعد المطورين الذين بدأوا في دراسة هذه المشكلة ، على إتقان موضوع إنشاء خدمات الوسائط بسرعة.
Kurento c الإسبرانتو يترجم إلى "تيار". صممه جامعة
ري الإسبانية
خوان كارلوس يونيفرسيداد . Kurento هو WebRTC Media Server ومجموعة من واجهات برمجة التطبيقات للعميل التي تعمل على تبسيط إنشاء تطبيقات للويب والهواتف الذكية. يمكن أن يكون الاتصال الهاتفي عبر الفيديو ، وخدمات مؤتمرات الفيديو ، ومراقبة الصور من كاميرات الفيديو مع التعرف على الحركة ، ويمكن تشغيل محتوى الصوت والفيديو من ملف أو من شبكة ، والتعرف على شخص أو أرقام السيارات ، وأكثر من ذلك بكثير. كود Kurento مفتوح المصدر ، ويتم توزيعه وفقًا لشروط
Apache License الإصدار 2.0 ، وهو متاح على
github . وفقًا لمنشئي Kurento ، فهو مشابه لـ Lego ، يمكن صنع العديد من التطبيقات المفيدة من كتل البرنامج. يمكن استخدام الكتل مباشرة "خارج الصندوق" ، ولكن يمكنك أيضًا تطوير المكونات الإضافية الخاصة بك إذا كنت ترغب في ذلك.
يتم توفير أمثلة لتطبيقات الويب في Java و Node.js و JavaScript ، على الرغم من إمكانية تطويرها بأي لغة ، فإن الشيء الرئيسي هو أن التبادل مع Kurento Media Server يجب أن يتم على بروتوكول Kurento الذي يفهمه. صحيح ، لقد تم بالفعل اختراع المكتبات للغات المذكورة أعلاه ، لذلك ستكون هناك مشكلة أقل. وبما أنني أتعلم Java و Spring ، فإن تعليقاتي ستكون لهذه الأمثلة.
يبدأ كل برنامج تعليمي يحترم نفسه باستخدام تطبيق HelloWorld. هذا لم يكن استثناء. ولكن قبل كتابة التطبيق الأول ، تحتاج إلى تثبيت KMS - Kurento Media Server ، والذي هو مكتوب في C ++ وتثبيته فقط على Ubuntu أو Linux Mint ، ويجب أن يتراوح الإصدار (وقت كتابة هذا التقرير) بين 14 و 18. لقد قمت بتثبيت إصدار Linux Mint 19 مباشرةً. ولم يتم تثبيت 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
نبدأ فريق KMS:
sudo service kurento-media-server start
استنساخ البرنامج التعليمي بأكمله لـ Java:
git clone https://github.com/Kurento/kurento-tutorial-java.git
انتقل إلى الدليل المطلوب
cd kurento-tutorial-java/kurento-hello-world
نطلق التطبيق تحت Maven أو ، كما في حالتي ، من خلال Idea. بعد بدء تطبيق الويب ، نذهب إلى متصفح Firefox على
المضيف المحلي: 8443 / نرى صفحة حيث ، بعد النقر على زر "ابدأ" ، نحصل على شيء مشابه لهذا

في عنصر الفيديو الأيسر ، يتم عرض صورة من كاميرا الويب ، وفي نفس الصورة ، ولكن يتم تمرير الصورة عبر حلقة KMS.
بناءً على هذه التجربة ، نخلص إلى أن HelloWorld يعمل دائمًا تقريبًا.
الآن دعونا نرى كيف يعمل. يوضح هذا الشكل مخطط اتصال أجزاء من تجربتنا.

يبدو تخطيطيا كما وصفتها. من الناحية المنطقية ، تتألف تجربتنا من ثلاثة أجزاء رئيسية: مستضافة في مستعرض JavaScript Client ، جمعت فقط Application Server وتثبيتها في بداية Kurento Media Server. يظهر تفاعل هذه الأجزاء في الشكل أدناه.


يرسل عميل JavaScript إلى خادم التطبيق رسالة نصية "ابدأ". يقوم خادم التطبيق بتنفيذ ثلاثة إجراءات رئيسية في هذا التطبيق:
final MediaPipeline pipeline = kurento.createMediaPipeline(); user.setMediaPipeline(pipeline); final WebRtcEndpoint webRtcEp = new WebRtcEndpoint.Builder(pipeline).build(); user.setWebRtcEndpoint(webRtcEp); webRtcEp.connect(webRtcEp);
ينشئ MediaPipeline يتم من خلاله نقل حركة مرور الوسائط ، وإنشاء كائن WebRtcEndpoint الذي يعالج حركة مرور الوسائط ، ويلتف نقل هذا الحظر إلى نفسه لاستقباله.
وبهذا نختتم عرضي الموجز لتطبيق HelloWorld باستخدام Kurento. أتمنى لك النجاح في إنشاء خدمات وسائل الإعلام.
المادة التالية