طريقة برمجة البث المباشر (live stream)

نشر issam 2020-10-27 في دروس ونصائح تقنية

طريقة برمجة البث المباشر (live stream)

نقدم لكم في هذا المقال شرح وافي ومفصل عن طرق برمجة البث المباشر سواء البث الصوتي أو الصوت مع صورة أو ألعاب الأون لاين

 

أولاً: أقسام البث المباشر

عندما بدأت البحث عن أفضل طرق برمجة البث المباشر اصطدمت مراراً وتكراراً بمسميّات كثيرة ولكي لا أدخلك في نفس المتاهات سأقسّم لك أجزاء البث المباشر لتفهم كل قسم و انواعه بسهوله

 

  • المرسل streamer:  وهو الشخص الذي سيرسل الإشارة، صوت وصورة إلى السيرفر او مباشرة للعميل 

  • سيرفر البث المباشر stream server: هو المسؤول عن عملية ال encoding والمعالجة للبيانات المرسلة من المرسل ومن ثم اعادة إرسالها للمستقبل

  • المستقبل client: هو الشخص الذي سيشاهد البث الخاص بالمرسل بعد استقباله

 

حالة peer to peer وهي حالة بث خاصّة يكون فيها المرسل والمستقبل على اتصال مباشر بدون سيرفر بث في الوسط

 من أمثلتها skype وحاليّاً تستخدمها google في برمجية البث المباشر الخاصة بها والتي تدعى webrtc

 

أنواع المرسل streamer: 

نقصد هنا الآلية والبروتوكولات  التي ستقوم بعمل capture للصوت والصورة من جهاز المرسل وارسالها عبر الانترنت

وأهم أنواعها:

  • يتم إرسال الصوت والصورة عبر برنامج مخصص للبث المباشر مثل obs: ومن الأمثلة على المواقع التي تستخدم هذه الطريقة هي twitch, youtube live

  • يتم إرسال البث عبر المتصفح مباشرة باستخدام webrtc التي ذكرناها سابقاً: من الأمثلة التي تستخدم هذه مثل facebook messenger عندما تستخدمه من المتصفح بدون برنامج

 

أنواع المستقبل client types:

ونقصد هنا الآلية الذي سيستقبل البث المباشر وأيضا لها أنواع أهمها:

  • يستقبل كفيديو عادي عبر سيرفر اللايف ستريم

  • يستقبل كبث مباشر عبر الـ webrtcالخاص بجهاز المتلقي

 

أنواع سيرفر البث المباشر live streaming server:

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

لدينا ثلاث حالات للبث المباشر وجميعهم يمكنهم استخدام الحالة الثالثة 

  • حالة (مكالمة بين شخصين) :

كما ذكرنا سابقاً يمكنك الاستغناء عن استخدام سيرفر وسيط beer to beer call وذلك باستخدام برمجية webrtc الخاصة بغوغل حيث تقوم بسحب البث من المرسل وإرساله للمستقبل ومن ثم استقباله لدى المستقبل 

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

  • حالة اجتماع اون لاين video conference :

في حالة لديك أكثر من (مستقبل / مرسل) وهنا تضعف طريقة peer to peer وعلى الرغم من أن بعض البرمجيات المفتوحة المصدر تستخدمها إلا أنها ليست بجودة وجود سيرفر بث مباشر وسيط والتي سنشرحها في الحالة رقم 3

برمجيات مفتوحة المصدر تساعدك في برمجة اجتماعات اون لاين بطريقة البث المباشر:

  • Jitsi

  • Janus

  • Kurento

  • Mediasoup

مشاكل وعيوب البرمجيات مفتوحة المصدر: 

  • التعديل والتخصيص قد يكون شبه مستحيل أحياناً وهي أهم مشكلة فيها.

  • أبطأ من البث المباشر عبر سيرفر البث المرخّص لانها تستخدم beer to beer.

  • لا تحتمل التوسّع scalability حيث لا ينصح باستخدامها للاجتماعات التي تتجاوز 5 إلى 10 أشخاص كحد أقصى.

 

  • حالة بث مباشر للعديد من المتابعين (one to many stream)

لا يصلح استخدام تقنية beer to beer أبداً فيه هذه الحالة، ولو أنه يوجد بعض البرمجيات مفتوحة المصدر حاولت القيام بذلك ولكنها طريقة غير صحيحة أساساً وخاطئة.

عليك بهذه الحالة التوجه لسيرفر البث المباشر والذي سيؤدي مهام

rtmp server (Real-Time Messaging Protocol), rtsp (Real-Time streaming Protocol).

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

 

تقدم معظم شركات برمجيات سيرفر البث المباشر برمجية مجانية (مفتوحة المصدر) بالإضافة لبرمجية مأجورة أفضل بكثير مقابل شراء ترخيص استخدام سواء شهري أو سنوي أو يدفع لمرة واحد مدى الحياة.

برمجيات مفتوحة المصدر ومدفوعة تساعدك في برمجة سيرفر بث مباشر اون لاين:

 

  • Ant media server

  • Red5 pro

  • Wowza

 

والفرق الأهم بين الخدمة المجانية والمدفوعة لهذه الشركات هو طبعا مدة التأخير latency حيث تكون مدة التأخير في النسخة مفتوحة المصدر(المجانية) بين 10 , 12 ثانية أما في النسخة المدفوعة فتكون أقل من ثانية

 

مقارنة بين شركات البث المباشر



تاريخ الاصدار

السعر/شهري

الحصة السوقية

مدة التأخير latency

سهولة التنصيب

 

2007

125$

الأكبر

غير محدد

متوسط

Wowza

2016

109$

وسط

~500ms 

سهل

Red5 pro

2017

49$

قليل

~500ms 

سهل

Ant media server

 

اختياري الشخصي: قمت بالتعامل في عدة مشاريع مع شركة Ant media server وقد كان الدعم الفني الخاص بهم متعاون جداً، ومحترم.

أهم العوامل التي تؤثر على مدة التأخير في البث المباشر

  1. المسافة بين دولة المرسل / المستقبل عن دولة سيرفر البث: يمكن حل هذه النقطة عبر إنشاء عدة سيرفرات في عدة دول لاختيار السيرفر الأقرب للعملاء

  2. الهاردوير الخاص بسيرفر البث المباشر: فكلما كان السيرفر أقوى سيقدّم إشارة أفضل.

  3. الضغط على السيرفر: بسبب عدد المستخدمين الذين يستخدمونه في آن واحد ،يمكن حل هذه النقطة عبر توزيع الضغط على عدة سيرفرات باستخدام ما يسمى load balancer.

  4. سرعة الانترنت الخاص بالمرسل / المستقبل. 

  5. مواصفات الجهاز الخاص بالمرسل / المستقبل.