استعراض WCS 5.2 - خادم WebRTC لمطوري البث الشبكي وكاميرا الويب



Alice مطور مكدس ذي خبرة كاملة ، قادر على كتابة إطار عمل مشروع SAAS على إطارها المفضل باستخدام php في أسبوع. أما بالنسبة للواجهة الأمامية ، فهي تفضل Vue.js.


يتصل العميل بك عبر Telegram ، ويطلب منك تطوير موقع على شبكة الإنترنت سيكون مكان الاجتماع لصاحب العمل والموظف لإجراء مقابلة شخصية. في شخص يعني وجها لوجه ، اتصال فيديو مباشر في الوقت الحقيقي مع الفيديو والصوت. "لماذا لا تستخدم Skype؟" قد يسأل البعض. لقد حدث أن مشاريع جادة - وكل شركة ناشئة تعتبر بلا شك مشروعًا جادًا - تحاول تقديم خدمة اتصالات داخلية لعدة أسباب ، من بينها:


1) لا يرغبون في إقراض مستخدميها إلى جهات اتصال خارجية (Skype ، Hangouts ، وما إلى ذلك) ويريدون الاحتفاظ بها في الخدمة.


2) الرغبة في مراقبة اتصالاتهم ، مثل سجل المكالمات ونتائج المقابلة.


3) تسجيل المكالمات (وبطبيعة الحال ، إخطار كلا الطرفين حول التسجيل).


4) لا يريدون الاعتماد على سياسات وتحديثات خدمات الطرف الثالث. يعلم الجميع هذه القصة: تم تحديث Skype ، وكل شيء في حالة دخان ...


يبدو وكأنه مهمة سهلة. يأتي WebRTC عند googling حول الموضوع ، ويبدو أنه يمكنك تنظيم اتصال نظير إلى نظير بين متصفحين ، ولكن لا تزال هناك بعض الأسئلة:


1) أين يمكن الحصول على خوادم STUN / TURN؟


2) هل يمكننا الاستغناء عنها؟


3) كيفية تسجيل مكالمة WebRTC من نظير إلى نظير؟


4) ماذا سيحدث إذا كنا بحاجة إلى إضافة طرف ثالث إلى المكالمة ، على سبيل المثال ، مدير الموارد البشرية أو أخصائي آخر من صاحب العمل؟


اتضح أن WebRTC والنظير إلى النظير وحدهما لا يكفيان ، وليس من الواضح ما يجب القيام به مع كل هذا لبدء تشغيل وظائف الفيديو المطلوبة للخدمة.


محتوى المادة



الخادم و API


لإغلاق هذه الفجوات ، يتم استخدام حلول الخادم وهندسة نظير خادم النظير. Web Call Server 5.2 (المشار إليه فيما يلي - WCS) هو أحد حلول الخادم ؛ إنها منصة تطوير تتيح لك إضافة وظائف الفيديو هذه إلى المشروع ولا تقلق بشأن STUN / TURN واستقرار اتصال نظير إلى نظير.


على أعلى مستوى ، WCS هو جزء خادم JavaScript API +. تُستخدم واجهة برمجة التطبيقات (API) للتطوير باستخدام جافا سكريبت عادي من جانب المتصفح ، ويقوم الخادم بمعالجة حركة مرور الفيديو ، ويعمل كوكيل Stateful لحركة مرور الوسائط.



بالإضافة إلى JavaScript API ، هناك أيضًا Android SDK و iOS SDK ، وهما ضروريان لتطوير تطبيقات الأجهزة المحمولة الأصلية لنظامي iOS و Android ، على التوالي.


على سبيل المثال ، يبدو نشر دفق على الخادم (التدفق من كاميرا ويب باتجاه الخادم) كما يلي:


sdk الويب


session.createStream({name:”stream123”}).publish(); 

Android SDK


 publishStream = session.createStream(streamOptions) publishStream.publish(); 

دائرة الرقابة الداخلية SDK


 FPWCSApi2Stream *stream = [session createStream:options error:&error]; if(![stream publish:&error]) { //published without errors } 

نتيجةً لذلك ، لا يمكننا تطبيق تطبيق ويب فحسب ، بل أيضًا تطبيق مكمّل على Google Play ومتجر التطبيقات مع دعم دفق الفيديو. إذا أضفنا SDK المحمول إلى صورة المستوى الأعلى ، فسنحصل على هذا:




تيارات واردة


يبدأ خادم البث ، وهو WCS ، مع التدفقات الواردة. لتوزيع شيء ما ، نحن بحاجة إلى الحصول عليه. لتوزيع تدفقات الفيديو على المشاهدين ، من الضروري أن تدخل هذه التدفقات إلى الخادم ، وتصفح ذاكرة الوصول العشوائي ، وتخرج من بطاقة الشبكة. لذلك ، فإن السؤال الأول الذي نحتاج إلى طرحه عند التعرف على خادم الوسائط هو البروتوكولات والتنسيقات التي يستخدمها الأخير لقبول التدفقات. في حالة WCS ، هذه هي التقنيات التالية: WebRTC ، RTMP ، RTSP ، VOD ، SIP / RTP.



كل بروتوكول يمكن استخدامه من قبل عملاء مختلفين. على سبيل المثال ، لا يمكن فقط الدخول من المتصفح عبر WebRTC ، ولكن أيضًا من خادم آخر. في الجدول أدناه ، هناك المصادر المحتملة لحركة المرور الواردة.


يتطلب WebRTCRTMPRTSPVODSIP / RTP
  • sdk الويب
    • كاميرا + هيئة التصنيع العسكري
    • قماش
    • مشاركة الشاشة

  • Android SDK
  • دائرة الرقابة الداخلية SDK
  • WCS
    • دفع
    • سحب

  • CDN

  • جهاز تشفير RTMP
    • فمبيج
    • OBS
    • Wirecast

  • أدوبي التشفير
  • WCS
    • دفع
    • سحب

  • مشغل الفلاش

  • كاميرا IP
  • خادم RTSP

  • الملفات
  • AWS S3

  • SIP نقطة النهاية
  • SIP مؤتمرات



إذا استعرضنا مصادر حركة المرور الواردة ، فيمكننا إضافة ما يلي:


WebRTC الواردة


لا يتيح Web SDK التقاط الكاميرا والميكروفون فحسب ، بل يتيح أيضًا استخدام إمكانيات واجهة برمجة تطبيقات المتصفح للوصول إلى الشاشة عن طريق مشاركة الشاشة. بالإضافة إلى ذلك ، يمكننا التقاط عنصر Canvas التعسفي ، وكل ما يتم رسمه عليه للبث اللاحق هو دفق قماش:


نظرًا لخصائص الهاتف المحمول ، يتمتع كل من Android SDK و iOS SDK بالقدرة على التبديل بين الكاميرات الأمامية والخلفية للجهاز أثناء التنقل. يسمح لنا ذلك بتبديل المصدر أثناء التدفق دون الحاجة إلى إيقاف الدفق مؤقتًا.


يمكن أيضًا الحصول على دفق WebRTC الوارد من خادم WCS آخر باستخدام طرق الدفع والشد و CDN ، والتي ستتم مناقشتها لاحقًا.




rtmp الواردة


يستخدم بروتوكول RTMP على نطاق واسع في OBS المفضل لدى اللافتات ، وكذلك في الترميزات الأخرى: Wirecast ، Adobe Media Encoder ، ffmpeg ، إلخ. باستخدام أحد هذه الترميزات ، يمكننا التقاط الدفق وإرساله إلى الخادم.


يمكننا أيضًا التقاط دفق RTMP من خادم وسائط آخر أو خادم WCS باستخدام طرق الدفع والسحب. في حالة الدفع ، يكون البادئ هو الخادم البعيد. في حالة السحب ، ننتقل إلى الخادم المحلي لسحب الدفق من جهاز التحكم عن بُعد.




rtsp الواردة


عادة ما تكون مصادر حركة مرور RTSP كاميرات IP أو خوادم وسائط خارجية تدعم بروتوكول RTSP. على الرغم من حقيقة أنه عند بدء اتصال RTSP ، فإن البادئ هو WCS ، تتحرك حركة الصوت والفيديو في الاتجاه من كاميرا IP نحو خادم WCS. لذلك ، نعتبر الدفق من الكاميرا واردة.




vod الواردة


للوهلة الأولى ، قد يبدو أن وظيفة VOD (فيديو عند الطلب) مرتبطة حصريًا بالتيارات الصادرة وبتشغيل الملفات عن طريق المتصفحات. لكن في حالتنا ، هذا ليس صحيحًا تمامًا. تقوم WCS ببث ملف mp4 من نظام الملفات إلى المضيف المحلي ؛ نتيجة لذلك ، يتم إنشاء دفق وارد ، كما لو كان مصدره مصدر خارجي. علاوة على ذلك ، إذا قمنا بتقييد أحد المشاهدين على ملف mp4 واحد ، فسوف نحصل على VOD الكلاسيكية ، حيث يحصل المشاهد على البث ويقوم بتشغيله من البداية. إذا لم نحصر أحد المشاهدين على ملف mp4 واحد ، فسوف نحصل على VOD LIVE - صيغة مختلفة من VOD ، حيث يمكن للمشاهدين تشغيل نفس الملف كدفق ، والاتصال بنقطة التشغيل التي يوجد بها جميع المشاهدين الحاليين (قبل وضع البث التلفزيوني المسجل).




SIP / RTP الواردة


لتلقي حركة مرور RTP الواردة داخل جلسة SIP ، نحتاج إلى إعداد مكالمة باستخدام بوابة SIP الخارجية. إذا تم إنشاء الاتصال بنجاح ، فستنتقل حركة مرور الصوت و / أو الفيديو من بوابة SIP ، والتي سيتم لفها في الدفق الوارد على جانب WCS.




تيارات المنتهية ولايته


بعد استلام الدفق إلى الخادم ، يمكننا نسخ الدفق المستلم إلى واحد أو أكثر من المشاهدين عند الطلب. يطلب العارض دفقًا من المشغل أو من جهاز آخر. تسمى هذه التدفقات تدفقات الصادرة أو "تدفقات العارض" ، لأن جلسات هذه التدفقات تبدأ دائمًا على جانب العارض / المشغل. تتضمن مجموعة تقنيات التشغيل البروتوكولات / التنسيقات التالية: WebRTC و RTMP و RTSP و MSE و HLS.



يتطلب WebRTCRTMPRTSPMSEHLS
  • sdk الويب
  • Android SDK
  • دائرة الرقابة الداخلية SDK
  • مرحاض
    • سحب
    • CDN


  • مشغل الفلاش
  • اللاعبين RTMP

  • RTSP لاعب
    • VLC
    • WCS
    • الخ


  • sdk الويب

  • HLS اللاعبين
    • hls.js
    • رحلات السفاري الأصلية



WebRTC المنتهية ولايته


في هذه الحالة ، تعمل Web SDK و Android SDK و iOS SDK كواجهة برمجة التطبيقات للمشغل. مثال على لعب WebRTC دفق يشبه هذا:


sdk الويب


 session.createStream({name:”stream123”}).play(); 

Android SDK


 playStream = session.createStream(streamOptions); playStream.play(); 

دائرة الرقابة الداخلية SDK


 FPWCSApi2Stream *stream = [session createStream:options error:nil]; if(![stream play:&error]) { //published without errors } 

يشبه هذا إلى حد كبير واجهة برمجة تطبيقات النشر ، والفرق الوحيد هو أنه بدلاً من stream.publish () ، يُطلق على stream.play () اللعب.


يمكن أن يكون خادم WCS التابع لجهة خارجية هو المشغل ، والذي سيتم توجيهه لاستلام الدفق عبر WebRTC من خادم آخر باستخدام طريقة السحب أو التقاط الدفق داخل CDN.



rtmp المنتهية ولايته



هنا سيكون هناك مشغلات RTMP بشكل أساسي - كل من مشغل الفلاش الشهير وتطبيقات سطح المكتب والهواتف المحمولة التي تستخدم بروتوكول RTMP ، تستقبل وتدفق دفق RTMP. على الرغم من أن Flash ترك المتصفح ، إلا أنه احتفظ ببروتوكول RTMP ، والذي يستخدم على نطاق واسع لبث الفيديو ، كما أن عدم وجود دعم محلي في المتصفحات لا يمنع استخدام هذا البروتوكول الناجح تمامًا في تطبيقات العملاء الأخرى. من المعروف أن RTMP يستخدم على نطاق واسع في مشغلات VR لتطبيقات الأجهزة المحمولة على Android و iOS.



rtsp المنتهية ولايته



يمكن أن يعمل خادم WCS كخادم RTSP ويوزع الدفق المستلم عبر RTSP ككاميرا IP عادية. في هذه الحالة ، يجب على اللاعب إنشاء اتصال RTSP مع الخادم والتقاط البث للتشغيل ، كما لو كان كاميرا IP.



MSE المنتهية ولايته



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



hls المنتهية ولايته



هنا ، تعمل WCS كخادم HLS أو خادم ويب يدعم HLS (HTTP Live Streaming). بمجرد ظهور الدفق الوارد على الخادم ، يتم إنشاء قائمة تشغيل .m3u8 HLS ، والتي يتم منحها للاعب استجابةً لطلب HTTP. تصف قائمة التشغيل شرائح الفيديو التي يجب على المشغل تنزيلها وعرضها. يقوم المشغل بتنزيل مقاطع الفيديو وتشغيله على صفحة المستعرض ، وعلى الجهاز المحمول ، وعلى سطح المكتب ، وفي جهاز استقبال Apple TV ، وفي أي مكان تتم المطالبة بدعم HLS.



الواردة والصادرة


في المجموع ، لدينا 5 أنواع تيار واردة والصادرة. وهي مدرجة في الجدول:



البريد الواردصندوق الصادر
يتطلب WebRTCيتطلب WebRTC
RTMPRTMP
RTSPRTSP
VODMSE
SIP / RTPHLS

وهذا يعني أنه يمكننا تحميل التدفقات إلى الخادم والاتصال بها وتشغيلها باللاعبين المناسبين. لتشغيل دفق WebRTC ، استخدم Web SDK. لتشغيل دفق WebRTC كـ HLS ، استخدم مشغل HLS ، إلخ. تيار واحد يمكن أن تقوم به العديد من المتفرجين. عمليات البث واحد إلى كثير تعمل.


الآن ، دعونا نصف الإجراءات التي يمكن تنفيذها بالتيارات.



تيار التلاعب واردة


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


تيار opeartions تشمل:


- التسجيل


- أخذ لقطة


- إضافة تيار إلى الخلاط


- تيار الترميز


- إضافة علامة مائية


- إضافة مرشح FPS


- تدوير الصورة بنسبة 90 ، 180 ، 270 درجة



تسجيل تيار وارد



ولعل أكثر وظيفة مفهومة واجهتها بشكل متكرر. في الواقع ، في كثير من الحالات ، تتطلب التدفقات تسجيل: ندوات عبر الإنترنت ، دروس في اللغة الإنجليزية ، استشارات ، إلخ.

يمكن بدء التسجيل باستخدام Web SDK أو REST API مع طلب خاص:


 /stream/startRecording {} 

يتم حفظ النتيجة في نظام الملفات كملف mp4.



أخذ لقطة



مهمة شائعة بنفس القدر هي التقاط صور للتيار الحالي لعرض الرموز على الموقع. على سبيل المثال ، لدينا 50 تدفقات في نظام المراقبة بالفيديو ، ولكل منها كاميرا IP واحدة كمصدر. إن عرض جميع سلاسل الرسائل الخمسين في صفحة واحدة لا يمثل مشكلة بالنسبة لموارد المتصفح فحسب ، بل إنه لا معنى له أيضًا. في حالة وجود 30 إطارًا في الثانية ، سيكون إجمالي FPS للصورة المتغيرة 1500 ، ولن تقبل العين البشرية ببساطة تردد العرض هذا. كحل ، يمكننا تكوين التقطيع التلقائي أو التقاط لقطة عند الطلب ؛ في هذه الحالة ، يمكن عرض الصور ذات التردد التعسفي على الموقع ، على سبيل المثال ، إطار واحد في 10 ثوانٍ. يمكن إزالة اللقطات من SDK من خلال REST API ، أو شرائح تلقائيًا.



يدعم خادم WCS طريقة REST لتلقي اللقطات:


 /stream/snapshot 




إضافة تيار إلى الخلاط



يمكن دمج صورة من مصدرين أو أكثر في واحد لعرضها على المشاهدين. هذا الإجراء يسمى الخلط. أمثلة أساسية: 1) المراقبة بالفيديو من كاميرات متعددة على الشاشة في صورة واحدة. 2) الفيديو كونفرنس ، حيث يتلقى كل مستخدم تيار واحد ، حيث يتم خلط الباقي ، لتوفير الموارد. يتم التحكم في الخلاط عبر واجهة برمجة تطبيقات REST وله وضع تشغيل MCU لإنشاء مؤتمرات فيديو.


أمر REST لإضافة دفق إلى الخلاط:


 /mixer/startup 


تيار الترميز


transcoding_WebRTC_Android_iOS_SDK_API_WCS_browser_RTMP_RTSP_VOD_SIP_RTP


تحتاج التدفقات في بعض الأحيان إلى الضغط من أجل التكيف مع مجموعات معينة من الأجهزة العميلة بدقة ومعدل بت. لهذا ، يتم استخدام الترميز. يمكن تمكين تحويل الشفرة من جانب Web SDK ، من خلال واجهة برمجة تطبيقات REST ، أو تلقائيًا من خلال عقدة تحويل الشفرة الخاصة في CDN. على سبيل المثال ، يمكن تحويل الفيديو بحجم 1280 × 720 إلى 640 × 360 لتوزيعه على العملاء من منطقة جغرافية ذات نطاق ترددي منخفض تقليديًا. أين أقمارك الصناعية ، إيلون موسك؟



طريقة REST المستخدمة:


 /transcoder/startup 


إضافة علامة مائية



من المعروف أنه يمكن سرقة أي محتوى وتحويله إلى WebRip ، بغض النظر عن الحماية التي يتمتع بها اللاعب. إذا كان المحتوى الخاص بك ذا قيمة ، فيمكنك تضمين علامة مائية أو شعار فيه مما يؤدي إلى تعقيد استخدامه إلى حد كبير وعرضه العام. لإضافة علامة مائية ، ما عليك سوى تحميل صورة بتنسيق PNG ، وسيتم إدراجها في دفق الفيديو عن طريق تحويل الشفرة. لذلك ، سيتعين عليك إعداد اثنين من مراكز وحدة المعالجة المركزية على جانب الخادم في حالة ما إذا كنت لا تزال ترغب في إضافة علامة مائية إلى الدفق. من أجل عدم إنشاء علامة مائية على الخادم عن طريق الترميز ، من الأفضل إضافتها مباشرة على المشفر / المبرمج ، والتي توفر هذه الفرصة في كثير من الأحيان.



إضافة مرشح FPS



في بعض الحالات ، يلزم أن يكون للتيار FPS زوجي (إطارات في الثانية). قد يكون هذا مفيدًا في حالة إعادة دفق الدفق إلى مورد تابع لجهة خارجية مثل Youtube أو Facebook أو تشغيله مع مشغل HLS حساس. تتطلب التصفية أيضًا تحويل الشفرة ، لذا تأكد من تقييم قوة خادمك بشكل صحيح وإعداد نقطتين لكل تيار إذا تم التخطيط لهذه العملية.



تدوير الصورة بنسبة 90 ، 180 ، 270 درجة


rotation_WebRTC_Android_iOS_SDK_API_WCS_browser_RTMP_RTSP_VOD_SIP_RTP


تتمتع الأجهزة المحمولة بالقدرة على تغيير دقة البث المنشور اعتمادًا على زاوية الدوران. على سبيل المثال ، بدأت في التدفق ، مع الاستمرار على أفق iPhone ، ثم تدويره. وفقًا لمواصفات WebRTC ، يجب أن يشير مستعرض البث لجهاز الهاتف المحمول (في هذه الحالة iOS Safari) إلى التدوير إلى الخادم. بدوره ، يجب أن يرسل الخادم هذا الحدث إلى جميع المشتركين. بخلاف ذلك ، سيكون الأمر هكذا - وضع الشريط في وضعه على جانبه ، لكن لا يزال يرى الكاميرا عموديًا ، بينما يرى المشاهدون صورة مدارة. للعمل مع التناوب على الجانب SDK ، يتم تضمين ملحق cvoExtension المقابلة.



إدارة الجداول القادمة


تلقائي - يتم ضبط التكوين عادةً على جانب الخادم في الإعدادات.


عمل التدفقالويب ، iOS ، Android SDKREST APIتلقائيCDN
سجل++

إزالة لقطة+++
مضيفا إلى الخلاط++

تيار الترميز++
+
إضافة الماء
علامة


+
إضافة مرشح FPS

+
تدوير الصورة بنسبة 90 ،
180 ، 270 درجة
+




تيار ترحيل


الترحيل هو أيضًا خيار لمعالجة التدفقات التي تدخل إلى الخادم ؛ يتكون ذلك من فرض الدفق على خادم جهة خارجية. الترحيل مرادف لكلمات مثل إعادة النشر والدفع والحقن.


يمكن تنفيذ الترحيل باستخدام أحد البروتوكولات التالية: WebRTC ، RTMP ، SIP / RTP. يوضح الجدول الاتجاه الذي يمكن فيه نقل التيار.



يتطلب WebRTCRTMPSIP / RTP
WCSخادم RTMP WCSخادم SIP


ترحيل WebRTC



يمكن نقل الدفق إلى خادم WCS آخر إذا كان هناك حاجة لسبب ما لإتاحة البث على خادم آخر. يتم الترحيل من خلال REST API عبر / طريقة الدفع. عند استلام طلب REST من هذا القبيل ، تتصل WCS بالخادم المحدد وتنشر دفق خادم خادم عليه. بعد ذلك ، يصبح الدفق متاحًا للتشغيل على جهاز آخر.


 /pull/push 

- طريقة REST المستخدمة



ترحيل RTMP



كما هو الحال مع ترحيل WebRTC ، من الممكن أيضًا نقل RTMP إلى خادم آخر. سيكون الفرق فقط في بروتوكول الترحيل. يتم أيضًا تنفيذ ترحيل RTMP عبر / دفع ويسمح بنقل الدفق إلى خوادم RTMP من طرف ثالث وإلى الخدمات التي تدعم RTMP Ingest: Youtube ، Facebook streaming ، إلخ. وبالتالي ، يمكن ترحيل دفق WebRTC إلى RTMP. قد نقوم كذلك بنقل أي تدفق آخر يدخل الخادم ، على سبيل المثال RTSP أو VOD ، إلى RTMP.


يتم نقل دفق الفيديو إلى خادم RTMP آخر باستخدام مكالمات REST.


 /push/startup 

- تستخدم دعوة REST



SIP / RTP ترحيل



نادرا ما تستخدم وظيفة. في معظم الأحيان ، يتم استخدامه في المؤسسة. على سبيل المثال ، عندما نحتاج إلى إجراء مكالمة SIP مع خادم مؤتمرات SIP خارجي وإعادة توجيه دفق الصوت أو الفيديو إلى هذه المكالمة حتى يرى جمهور المؤتمر نوعًا من محتوى الفيديو: "الرجاء مشاهدة هذا الفيديو" أو "الزملاء" ، دعنا الآن نشاهد تدفق كاميرا IP من موقع البناء ". نحتاج إلى أن نضع في اعتبارنا أنه في هذه الحالة ، يوجد المؤتمر نفسه ويتم إدارته على خادم VKS خارجي مع دعم SIP (في الآونة الأخيرة ، لقد اختبرنا الحل من Polycom DMA) ، بينما نحن فقط نصل وننقل التيار الحالي إلى هذا الخادم. تسمى وظيفة REST API / حقن وتخدم فقط لهذه الحالة.


أمر REST API:


 /call/inject_stream/startup 


توصيل الخوادم بشبكة معالجة محتوى CDN


عادة ، خادم واحد لديه كمية محدودة من الموارد. لذلك ، بالنسبة لعمليات البث الكبيرة عبر الإنترنت حيث يصل عدد المشتركين إلى الآلاف وعشرات الآلاف ، فإن التوسع ضروري. يمكن دمج عدة خوادم WCS في شبكة واحدة لتوصيل محتوى CDN. داخليًا ، ستعمل CDN من خلال WebRTC للحفاظ على زمن الاستجابة المنخفض أثناء التدفق.



يمكن تكوين الخادم في أحد الأدوار التالية: الأصل أو الحافة أو محول الشفرة. تستقبل خوادم الأنواع الأصلية حركة المرور وتوزعها على خوادم Edge ، المسؤولة عن تسليم البث للمشاهدين. إذا كان من الضروري إعداد دفق في عدة قرارات ، يتم تضمين العقد Transcoder في المخطط ، والتي تأخذ مهمة المستهلكة للموارد من تدفقات الترميز.



لتلخيص


WCS 5.2 هو خادم لتطوير التطبيقات مع دعم الصوت والفيديو الحقيقي للمتصفحات والأجهزة المحمولة. يتم توفير أربعة واجهات برمجة التطبيقات للتطوير: Web SDK و iOS SDK و Android SDK و REST API. يمكننا نشر (تغذية) بث الفيديو إلى الخادم باستخدام خمسة بروتوكولات: WebRTC ، RTMP ، RTSP ، VOD ، SIP / RTP. من الخادم ، يمكننا تشغيل التدفقات مع اللاعبين باستخدام خمسة بروتوكولات: WebRTC ، RTMP ، RTSP ، MSE ، HLS. يمكن التحكم في التدفقات والخضوع لعمليات مثل التسجيل ، وتقطيع اللقطات ، والخلط ، وتحويل الشفرة ، وإضافة علامة مائية ، وتصفية FPS ، وتشغيل بث الفيديو على الأجهزة المحمولة. يمكن نقل التدفقات إلى خوادم أخرى عبر بروتوكولات WebRTC و RTMP ، وكذلك إعادة توجيهها إلى مؤتمرات SIP. يمكن دمج الخوادم في شبكة تسليم المحتوى وتوسيع نطاقها لمعالجة عدد عشوائي من تدفقات الفيديو.


ما يجب أن تعرفه أليس للعمل مع الخادم


يجب أن يكون المطور قادراً على استخدام Linux. الأوامر التالية في سطر الأوامر لا ينبغي أن تسبب الارتباك:


 tar -xvzf wcs5.2.tar.gz 

 cd wcs5.2 

 ./install.sh 

 tail -f flashphoner.log 

 ps aux | grep WebCallServer 

 top 

يحتاج المرء أيضًا إلى معرفة Vanilla JavaScript عندما يتعلق الأمر بتطوير الويب.


 //publishing the stream session.createStream({name:'mystream'}).publish(); //playing the stream session.createStream({name:'mystream'}).play(); 

قد تكون القدرة على العمل مع الجهة الخلفية مفيدة أيضًا.



لا يمكن لـ WCS تلقي أوامر التحكم فقط من خلال واجهة برمجة تطبيقات REST ، ولكن أيضًا إرسال الخطافات - أي إعلامات حول الأحداث التي تحدث فيها. على سبيل المثال ، عند محاولة إنشاء اتصال من مستعرض أو تطبيق جوال ، ستقوم WCS بتشغيل الخطاف / connect ، وعند محاولة تشغيل دفق ، ستؤدي إلى تشغيل ربط playStream. لذلك ، سيتعين على المطور السير قليلاً في حذاء الطرف الخلفي ، القادر على إنشاء عميل REST بسيط وخادم REST صغير لمعالجة الخطافات.


مثال API REST


 /rest-api/stream/find_all 

- مثال REST API لسرد التدفقات على الخادم


مثال ربط REST


 https://myback-end.com/hook/connect 

- ربط REST / ربط المعالجة على الجانب الخلفي.


Linux و JavaScript و REST Client / Server - ثلاثة عناصر تكفي لتطوير خدمة إنتاج على منصة WCS التي تعمل مع تدفقات الفيديو.


سيتطلب تطوير تطبيقات الهاتف المحمول معرفة Java و Objective-C لنظامي Android و iOS ، على التوالي.


التثبيت والإطلاق


هناك ثلاث طرق لإطلاق WCS بسرعة اليوم:


1) تثبيت Ubuntu 16.x LTS أو Ubuntu 18.x LTS وما إلى ذلك على Centos7 الخاص بك. أو الاسترشاد بمقال من الوثائق .


أو


2) احصل على صورة جاهزة على Amazon EC2 .


أو


3) الحصول على صورة الخادم الجاهزة على المحيط الرقمي .


وبدء تطوير مشروع مثير مع ميزات تدفق الفيديو.


تبين أن مقالة المراجعة كبيرة جدًا. شكرا لك على الصبر لقراءته.


هل لديك تدفق جيدة!



الروابط


WCS 5.2 - خادم WebRTC


التثبيت والإطلاق


تركيب وتشغيل WCS
قم بتشغيل صورة جاهزة على Amazon EC2
قم بتشغيل صورة الخادم الجاهزة على DigitalOcean


SDK


وثائق الويب SDK
الوثائق Android SDK
الوثائق دائرة الرقابة الداخلية SDK


الحالات


تيارات واردة
تيارات المنتهية ولايته
إدارة الجداول
تيار ترحيل
CDN لتدفق WebRTC الكمون المنخفض


توثيق


الوثائق Web Call Server 5.2

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


All Articles