شرح WebRTC وSFU وترميزات الصوت
كيف ينقل WebRTC الصوت، وكيف يضغط Opus الكلام، ومتى يحتاج الفيديو الجماعي إلى SFU. دليل للمطورين يشرح بنية Voxal مع مراجع RFC.

يقوم WebRTC بنقل الصوت والفيديو بين المتصفحات، ويضغط ترميز مثل Opus الكلام ليناسب سعة الشبكة، أما وحدة التوجيه الانتقائي (SFU) فهي خادم يعيد توجيه فيديو كل مشارك إلى بقية المشاركين في المكالمات الأكبر. تفسّر هذه العناصر الثلاثة معظم ما يحدث بين الميكروفون ومكبّر الصوت البعيد.
هذا الدليل موجّه للمطورين والقرّاء الفضوليين الذين يريدون فهم الآليات: التشوير (signaling)، وICE، وSTUN وTURN، وRTP، وOpus، والمفاضلة بين الشبكة المتشابكة (mesh) من نظير إلى نظير وSFU. وينتهي بشرح كيف يجمع Voxal بينها: يبقى الصوت من نظير إلى نظير، بينما يمكن للكاميرا ومشاركة الشاشة استخدام SFU. وإن كنت تريد المفهوم فقط، فابدأ بمقال ما هي الدردشة الصوتية من نظير إلى نظير.
1. ما هو WebRTC؟
WebRTC مجموعة من المعايير وواجهات برمجة التطبيقات في المتصفح للاتصال الفوري بالصوت والفيديو والبيانات.
يتيح للتطبيقات إنشاء اتصالات وسائط بين الأجهزة المتوافقة دون أن يضطر المطورون إلى تنفيذ كل آلية نقل وأمان من الصفر.
WebRTC ليس بروتوكولاً واحداً، بل تعمل عدة مكونات معاً.
التشوير (Signaling)
قبل أن يتمكن جهازان من إنشاء اتصال وسائط، عليهما تبادل معلومات عن الجلسة وقدرات الاتصال لدى كل منهما.
تسمى هذه العملية التشوير. يختار كل تطبيق آلية التشوير الخاصة به؛ فلا يفرض WebRTC خادم تشوير أو بروتوكول تشوير موحداً.
يستخدم Voxal التشوير لتنسيق عضوية الغرف وإنشاء الاتصالات. ومسار التشوير فيه منفصل عن مسار الوسائط.
ICE وSTUN وTURN
غالباً ما تكون الأجهزة خلف موجّهات أو جدران حماية أو ترجمة عناوين الشبكة (NAT). لذلك قد يكون اكتشاف مسار اتصال صالح أعقد بكثير من ربط عنوانَي IP عامَّين.
يستخدم WebRTC آلية Interactive Connectivity Establishment (ICE) لجمع مسارات الاتصال المحتملة واختبارها.
- يساعد STUN الجهاز على معرفة كيف يبدو من الشبكة العامة.
- يوفّر TURN مسار ترحيل عندما يتعذر إنشاء اتصال مباشر مناسب.
يقوم مرحّل TURN بتمرير حركة الوسائط المشفّرة. وهو ليس مثل SFU الذي ينهي اتصالات الوسائط ويعيد توجيه تدفقاتها بشكل انتقائي.
الاتصال المباشر مرغوب غالباً، لكن المرحّل قد يكون ضرورياً لإتمام الاتصال.
RTP ونقل الوسائط الآمن
تُنقل الوسائط الفورية عادةً عبر بروتوكول النقل الفوري (RTP)، إلى جانب RTCP للتحكم والتقارير.
يستخدم WebRTC بروتوكول RTP الآمن (SRTP) لحماية الوسائط. تساعد طبقة النقل على تسليم الحزم، بينما يحدد الترميز كيفية تمثيل الصوت أو الفيديو نفسه.
هاتان مسؤوليتان مختلفتان: فالترميز لا ينشئ اتصال شبكة، واتصال الشبكة لا يحدد كيفية ضغط الصوت.
2. ما هو ترميز الصوت؟
الترميز (codec) يشفّر الوسائط ويفك تشفيرها. وفي الاتصال الصوتي تتمثل مهمته في تمثيل الكلام بكفاءة مع الحفاظ على وضوحه وعلى جودة صوت مقبولة.
من دون ضغط، قد يستهلك إرسال الصوت الخام نطاقاً تردّدياً أكبر بكثير مما يحتاجه تطبيق الصوت.
يوازن الترميز بين عدة عوامل:
- جودة الصوت ووضوح الكلام.
- معدل البت واستهلاك عرض النطاق.
- تعقيد الترميز وفك الترميز.
- التأخير ومدة الإطار.
- السلوك في ظل ظروف شبكة متغيرة.
لا يوجد ترميز واحد هو الأفضل لكل التطبيقات. فبث الموسيقى والمكالمات الهاتفية ودردشة الألعاب والمحادثات الجماعية الفورية لكل منها أولويات مختلفة.

لماذا يُستخدم Opus على نطاق واسع
Opus ترميز صوتي تفاعلي صُمم لتطبيقات مثل الصوت عبر الإنترنت (VoIP) ومؤتمرات الفيديو ودردشة الألعاب.
يدعم نطاقاً واسعاً من معدلات البت ومعدلات أخذ العينات ومدد الإطارات. وتجعله هذه المرونة مناسباً للكلام وللتطبيقات الصوتية الأكثر تطلباً.
كما أن Opus ترميز صوتي إلزامي التنفيذ لنقاط نهاية WebRTC بحسب متطلبات الترميزات الصوتية في WebRTC.
لا يعني ذلك أن كل اتصال WebRTC يستخدم Opus دائماً. فاختيار الترميز الفعلي يعتمد على القدرات التي تتفاوض عليها نقاط النهاية المشاركة.
في Voxal، يستخدم مسار الصوت في WebRTC داخل المتصفح الترميز Opus افتراضياً وفق البنية الموثّقة. ويتولى المتصفح جزءاً كبيراً من أعمال الترميز والنقل وفك الترميز.
وفي تطبيق صوتي فوري، لا يمثل الترميز سوى جزء من التجربة. فجودة الميكروفون ومعالجة الصوت وفقدان الحزم وكمون الشبكة ومخزن الارتعاش (jitter buffer) وتشغيل الصوت على الجهاز كلها مهمة أيضاً.
3. ما هو SFU؟
SFU اختصار لعبارة Selective Forwarding Unit، أي وحدة التوجيه الانتقائي.
SFU خادم وسائط يُستخدم عادةً لدعم مكالمات الفيديو الجماعية. فبدلاً من أن يرسل كل مشارك تدفق فيديو منفصلاً مباشرة إلى كل مشارك آخر، يستطيع كل مشارك إرسال وسائطه إلى SFU، الذي يعيد توجيه التدفقات المناسبة إلى بقية المشاركين.
تخيّل غرفة فيها ستة أشخاص، يرسل كل منهم تدفق كاميرا.
في شبكة mesh كاملة من نظير إلى نظير، قد يحتاج كل مشارك إلى رفع فيديوه الصادر إلى خمسة مشاركين آخرين. أما في طوبولوجيا تعتمد إعادة التوجيه عبر خادم، فيمكن لكل مشارك إرسال تدفق واحد إلى SFU الذي يتولى التوزيع.
وهذا قد يقلل بدرجة كبيرة عدد تدفقات الفيديو الصادرة المنفصلة التي يجب على المشارك الحفاظ عليها.
ماذا يفعل SFU فعلياً؟
يستقبل SFU عادةً تدفقات وسائط مشفّرة ويعيد توجيهها بشكل انتقائي. وبحسب التنفيذ والميزات المتفاوض عليها، قد يختار أي التدفقات أو طبقات الجودة يرسلها إلى كل مستقبِل.
فمثلاً، قد لا يحتاج مشارك يشاهد صورة مصغرة صغيرة إلى جودة الفيديو نفسها التي يحتاجها من يعرض المتحدث بملء الشاشة.
يساعد SFU على إدارة هذه المتطلبات المختلفة دون أن يرسل كل مرسِل تدفقاً منفصلاً إلى كل مستقبِل.
لكن SFU ليس مجانياً. فهو يستلزم بنية تحتية وعرض نطاق على الخادم وتكاليف تشغيلية، ويضيف مكوّناً آخر إلى مسار الوسائط.
كما أن لـ SFU نموذج خصوصية مختلفاً عن مرحّل TURN. فلأنه ينهي نقل الوسائط ويعيد توجيهها بشكل انتقائي، يمكنه تقنياً الوصول إلى الوسائط التي يستقبلها. ولا يوفّر التشفير بين المشارك وSFU بحد ذاته سرية من طرف إلى طرف في مواجهة ذلك SFU.
4. شبكة mesh من نظير إلى نظير مقابل SFU
تحل البنيتان مشكلتين متقاربتين لكنهما مختلفتان.

شبكة mesh من نظير إلى نظير
ينشئ كل مشارك اتصالات وسائط مع بقية المشاركين.
المزايا:
- مسارات الوسائط المباشرة ممكنة.
- لا حاجة إلى خادم وسائط مركزي لإعادة توزيع الوسائط.
- يمكن للغرف الصغيرة أن تعمل دون خدمة لإعادة توجيه الوسائط.
المفاضلات:
- قد يحتاج كل مرسِل إلى رفع تدفق منفصل إلى كل مشارك آخر.
- يزداد عدد اتصالات الوسائط كلما كبرت الغرفة.
- قد يصبح عرض نطاق الرفع وإدارة الاتصالات عاملين مقيِّدين.
التوزيع القائم على SFU
يرسل كل مشارك وسائطه إلى خدمة إعادة توجيه مركزية توزعها على بقية المشاركين.
المزايا:
- توزيع أكثر كفاءة في كثير من سيناريوهات الفيديو الجماعي.
- حاجة أقل إلى أن يرفع كل مرسِل نسخاً منفصلة إلى كل مستقبِل.
- تحكم أكبر في تدفقات الفيديو وطبقات الجودة التي يحصل عليها المستقبِلون.
المفاضلات:
- بنية خوادم إضافية وتكاليف عرض نطاق.
- دخول وسيط في مسار الوسائط.
- يختلف نموذج الخصوصية والثقة عن الاتصال المباشر من نظير إلى نظير.
المهم ألا نفترض أن طوبولوجيا واحدة يجب استخدامها لكل أنواع الوسائط. فللصوت والفيديو أنماط حركة بيانات ومتطلبات مختلفة.
5. لماذا يُبقي Voxal الصوت من نظير إلى نظير لكنه قد يستخدم SFU للفيديو
يفصل Voxal بين الصوت وبين فيديو الكاميرا ومشاركة الشاشة.
يبقى الصوت دائماً من نظير إلى نظير، ولا يمر أبداً عبر SFU الاختياري الخاص بالفيديو.
هذا قرار معماري متعمَّد: فالصوت هو ميزة الاتصال الأساسية، ولا يستخدم Voxal الـ SFU كخدمة مركزية لتوزيع الصوت.
أما فيديو الكاميرا ومشاركة الشاشة فأمرهما مختلف. ففي الغرف الأكبر قد تتطلب شبكة mesh كاملة من نظير إلى نظير أن يرفع كل مشارك عدة تدفقات فيديو، ويصبح ذلك أكثر إرهاقاً كلما زاد عدد المشاركين.
لذلك يمكن لـ Voxal استخدام Realtime SFU من Cloudflare للفيديو ومشاركة الشاشة عندما يسمح بذلك تفضيل التوجيه المضبوط وتتجاوز الغرفة الحدود العملية للشبكة المتشابكة.
يهمّ تفضيل التوجيه:
- السماح بالمرحّل للغرف الكبيرة: يمكن لـ Voxal استخدام SFU عندما تتجاوز الغرفة طوبولوجيا فيديو مريحة من نظير إلى نظير.
- تفضيل الاتصال المباشر: يجرّب Voxal الاتصال من نظير إلى نظير أولاً، ويسأل قبل السماح بالمرحّل حين تصبح الشبكة المتشابكة غير مناسبة.
- مباشر فقط: لا يستخدم الفيديو ومشاركة الشاشة الـ SFU أبداً، حتى لو واجهت غرفة كبيرة صعوبة في إنشاء كل الاتصالات المباشرة.
تؤثر هذه الإعدادات في الفيديو ومشاركة الشاشة، لا في الصوت.

لماذا لا نمرّر كل شيء عبر الخادم نفسه؟
لأن أفضل طوبولوجيا تعتمد على نوع حركة البيانات المنقولة.
تدفق الصوت أصغر عموماً بكثير من تدفق الكاميرا. وتمرير الصوت عبر خدمة إعادة توجيه مركزية سيُدخل مفاضلة مختلفة في البنية التحتية والخصوصية دون ضرورة لها في بنية الصوت التي اختارها Voxal.
أما الفيديو فله متطلبات أعلى لعرض النطاق، ويمكن أن يستفيد كثيراً من التوزيع بمساعدة الخادم كلما كبر حجم المجموعة.
والفصل بين الاثنين يتيح لـ Voxal الاحتفاظ بنموذجه الصوتي من نظير إلى نظير مع تقديم خيار أكثر قابلية للتوسع للفيديو الجماعي.
6. ماذا يعني ذلك للخصوصية
تُستخدم مصطلحات الشبكات أحياناً كما لو كانت تضمن تلقائياً مستوى معيناً من الخصوصية. وهي لا تفعل ذلك.
الصوت من نظير إلى نظير يعني أن وسائط الصوت لا تمر عبر خادم وسائط مركزي، لكن خوادم التشوير قد تظل تنسق الاتصالات وتعالج البيانات الوصفية المرتبطة بها.
يعيد مرحّل TURN توجيه الوسائط المشفّرة دون فك تشفيرها. أما SFU فعلى العكس، ينهي نقل الوسائط ليعيد توجيه التدفقات بشكل انتقائي، ويمكنه تقنياً الوصول إلى الفيديو الذي يستقبله.
ولهذا فإن تمييز Voxal مهم:
- يبقى الصوت من نظير إلى نظير، مع إمكانية استخدام مرحّل TURN مشفّر.
- قد يستخدم فيديو الكاميرا ومشاركة الشاشة SFU في الغرف الأكبر، بحسب تفضيل التوجيه.
- تتم معالجة الخلفية الافتراضية محلياً على جهاز المرسِل، لكن ذلك وحده لا يعني أن كل اتصال فيديو مباشر.
وفهم مسار الوسائط الفعلي أنفع من الاكتفاء بوصف تطبيق ما بأنه "بلا خوادم".
7. جمع كل شيء معاً
يجمع تطبيق الاتصال الفوري بين عدة طبقات مستقلة:
- التشوير ينسق المشاركين وإعداد الاتصال.
- ICE وSTUN وTURN تساعد على إنشاء مسار شبكة صالح.
- WebRTC ونقل RTP الآمن ينقلان الوسائط الفورية.
- ترميز مثل Opus يمثّل الصوت بكفاءة.
- طوبولوجيا الشبكة تحدد ما إذا كانت الوسائط تتدفق مباشرة بين الأطراف أم عبر خدمة إعادة توجيه.
يطبّق تصميم Voxal هذه الخيارات على الصوت والفيديو كلٌّ على حدة. والنتيجة بنية تضع الصوت أولاً، يبقى فيها الصوت من نظير إلى نظير، بينما يمكن للفيديو ومشاركة الشاشة استخدام إعادة توجيه اختيارية بمساعدة الخادم عندما تحتاجها الغرف الأكبر.
وهذه الفروق مهمة عند تصميم أي نظام اتصال فوري. فالهدف ليس مجرد تقليل الخوادم أو زيادة الاتصالات المباشرة إلى أقصى حد، بل اتخاذ مفاضلات مدروسة بين الكمون وعرض النطاق والموثوقية وقابلية التوسع والخصوصية.
جرّب Voxal
يجمع Voxal بين الدردشة الصوتية من نظير إلى نظير، وخاصية اضغط للتحدث (push-to-talk)، ووضع التحدث دون استخدام اليدين، وكتم الضوضاء، والفيديو ومشاركة الشاشة الاختياريين.
جرّب Voxal في متصفحك، أو استكشف التنفيذ في مستودع Voxal مفتوح المصدر.
قراءات ذات صلة: ما هي الدردشة الصوتية من نظير إلى نظير؟ · ما هو push-to-talk؟ دليل عملي · وثائق توجيه الفيديو في Voxal

