حول إس آر تي | المميزات | البداية | تعليمات البناء | نماذج من التطبيقات والأدوات | ساهم | الترخيص | الإصدارات
النقل الآمن الموثوق (SRT) هو بروتوكول نقل لبث الفيديو المباشر والصوت بزمن انتقال منخفض جدًا (دون الثانية)، بالإضافة إلى نقل البيانات المجمعة العامة 1 . SRT متاحة كتقنية مفتوحة المصدر مع الكود الموجود على GitHub، ومسودة إنترنت منشورة، ومجتمع متزايد من مستخدمي SRT.
يتم تطبيق SRT على نقاط نهاية المساهمة والتوزيع كجزء من سير عمل دفق الفيديو لتقديم أفضل جودة وأقل زمن وصول للفيديو في جميع الأوقات.
يؤمن | يقوم بتشفير دفق الفيديو |
موثوق | يتعافى من فقدان الحزمة الشديد |
ينقل | يتكيف ديناميكيًا مع ظروف الشبكة المتغيرة |
في تكوينات البث المباشر، يحافظ بروتوكول SRT على زمن انتقال ثابت من طرف إلى طرف. وهذا يسمح بإعادة إنشاء خصائص إشارة البث المباشر على جانب جهاز الاستقبال، مما يقلل الحاجة إلى التخزين المؤقت. أثناء تدفق الحزم من المصدر إلى الوجهة، يكتشف SRT ظروف الشبكة في الوقت الفعلي بين نقطتي النهاية ويتكيف معها. فهو يساعد على التعويض عن الارتعاش وتقلبات عرض النطاق الترددي بسبب الازدحام على الشبكات المزعجة.
تطبق SRT تشفير AES لحماية حمولة تدفقات الوسائط، وتوفر آليات مختلفة لاستعادة الأخطاء لتقليل فقدان الحزمة الذي يعد نموذجيًا لاتصالات الإنترنت، والتي يعد طلب التكرار التلقائي (ARQ) هو الأسلوب الأساسي فيها. باستخدام ARQ، عندما يكتشف جهاز الاستقبال أن هناك حزمة مفقودة، فإنه يرسل تنبيهًا إلى المرسل يطلب إعادة إرسال هذه الحزمة المفقودة. ويدعم البروتوكول أيضًا تصحيح الأخطاء الأمامي (FEC) وربط الاتصال، الذي يضيف حماية سلسة للتدفق وتجاوز الفشل بدون إصابات.
لمعرفة المزيد حول البروتوكول، اشترك في مدونة Innovation Labs على
لطرح سؤال انضم إلى المحادثة في قناة #التنمية على
؟ انقر على زر ► لتوسيع وصف الميزة.
بغض النظر عن مدى عدم موثوقية شبكتك، يمكن لـ SRT التعافي من فقدان الحزمة الشديد والارتعاش، مما يضمن سلامة وجودة تدفقات الفيديو الخاصة بك.
يمكن تكوين تصحيح خطأ دفق SRT ليناسب ظروف النشر الخاصة بالمستخدم. من خلال الاستفادة من تطوير اتصالات IP في الوقت الفعلي لتوسيع ممارسات استرداد أخطاء الشبكة التقليدية، توفر SRT وسائط ذات زمن وصول أقل بكثير من TCP/IP، بينما تقدم سرعة نقل UDP مع موثوقية محسنة بشكل كبير.
على عكس بعض بروتوكولات البث الأخرى التي تدعم تنسيقات فيديو وصوت معينة فقط، فإن SRT لا يولي أي حمولة. نظرًا لأن SRT يعمل على مستوى النقل عبر الشبكة، ويعمل بمثابة غلاف حول المحتوى الخاص بك، فيمكنه نقل أي نوع من تنسيقات الفيديو أو برنامج الترميز أو الدقة أو معدل الإطارات.
تدعم عملية المصافحة التي تستخدمها SRT الاتصالات الصادرة دون المخاطر المحتملة والمخاطر المتمثلة في فتح المنافذ الخارجية الدائمة في جدار الحماية، وبالتالي الحفاظ على سياسات أمان الشبكة المحلية الخاصة بالشركة وتقليل الحاجة إلى تدخل تكنولوجيا المعلومات.
باستخدام تشفير 128/192/256 بت AES الموثوق به من قبل الحكومات والمنظمات حول العالم، تضمن SRT حماية المحتوى القيم من البداية إلى النهاية من المساهمة إلى التوزيع حتى لا تتمكن أي أطراف غير مصرح لها من الاستماع.
شهد SRT 1.4 تقديم واجهة برمجة تطبيقات مرشح الحزمة . تسمح هذه الآلية بإجراء معالجة مخصصة على حزم الشبكة على جانب المرسل قبل إرسالها، وعلى جانب المتلقي بمجرد استلامها من الشبكة. تسمح واجهة برمجة التطبيقات (API) للمستخدمين بكتابة المكونات الإضافية الخاصة بهم، وبالتالي توسيع قدرات بروتوكول SRT بشكل أكبر مع جميع أنواع تصفية الحزم المختلفة. يمكن للمستخدمين معالجة بيانات مرشح الحزمة الناتجة بأي طريقة، مثل التشفير المخصص أو فحص الحزمة أو الوصول إلى البيانات قبل إرسالها.
أول مكون إضافي تم إنشاؤه كمثال لما يمكن تحقيقه باستخدام واجهة برمجة تطبيقات مرشح الحزمة هو لتصحيح الأخطاء الأمامية (FEC) والذي، في حالات استخدام معينة، يمكن أن يوفر زمن وصول أقل قليلاً من طلب التكرار التلقائي (ARQ). يسمح هذا البرنامج المساعد بثلاثة أوضاع مختلفة:
ARQ فقط - يعيد إرسال الحزم المفقودة،
FEC فقط - يوفر الحمل اللازم لاسترداد FEC على جانب جهاز الاستقبال،
FEC وARQ – يعيد إرسال الحزم المفقودة التي تفشل FEC في استعادتها.
على غرار SMPTE-2022-7 عبر الشبكات المُدارة، يضيف Connection Bonding حماية سلسة للتدفق وتجاوز الفشل بدون إصابات إلى بروتوكول SRT. وتعتمد هذه التقنية على أكثر من مسار لشبكة IP لمنع انقطاع البث المباشر للفيديو في حالة ازدحام الشبكة أو انقطاعها، مما يحافظ على استمرارية الخدمة.
يتم تحقيق ذلك باستخدام مجموعات المقابس المقدمة في SRT v1.5. المفهوم العام لمجموعات المقابس يعني وجود مجموعة تحتوي على مآخذ توصيل متعددة، حيث يتم تطبيق عملية واحدة لإرسال إشارة بيانات واحدة على المجموعة. سوف تتولى المقابس الفردية داخل المجموعة هذه العملية وتقوم بما هو ضروري لتوصيل الإشارة إلى جهاز الاستقبال.
يتم دعم وضعين:
البث - في وضع البث ، يتم إرسال البيانات بشكل متكرر عبر جميع روابط الأعضاء في المجموعة. إذا فشل أحد الروابط أو تعرض لاهتزاز الشبكة و/أو فقدان الحزمة، فسيتم تلقي البيانات المفقودة عبر رابط آخر في المجموعة. ويتم ببساطة التخلص من الحزم الزائدة على جانب جهاز الاستقبال.
الرئيسي/النسخ الاحتياطي - في الوضع الرئيسي/النسخ الاحتياطي ، يتم استخدام رابط (رئيسي) واحد فقط في كل مرة لنقل البيانات بينما تكون الاتصالات (الاحتياطية) الأخرى في وضع الاستعداد لضمان استمرار الإرسال في حالة فشل الارتباط الرئيسي. الهدف من الوضع الرئيسي/النسخ الاحتياطي هو تحديد انقطاع الارتباط المحتمل قبل حدوثه، وبالتالي توفير نافذة زمنية يمكن من خلالها التبديل بسلاسة إلى أحد الارتباطات الاحتياطية.
يمكّن التحكم في الوصول التطبيق الأساسي من تعيين معرف التدفق لتدفقات SRT الفردية. باستخدام معرف دفق فريد، سواء تم إنشاؤه تلقائيًا أو تخصيصه، يمكن للتطبيق الرئيسي إرسال تدفقات SRT متعددة إلى عنوان IP واحد ومنفذ UDP واحد. يمكن بعد ذلك استخدام معرفات الدفق بواسطة جهاز الاستقبال لتحديد التدفقات المستوعبة والتمييز بينها، وتطبيق طرق الوصول إلى كلمة مرور المستخدم، وفي بعض الحالات حتى تطبيق الأتمتة بناءً على تسمية معرف الدفق. على سبيل المثال، يمكن إرسال المساهمة إلى سير عمل إنتاج الفيديو والمراقبة إلى خدمة المراقبة.
بالنسبة للمذيعين، يعد Stream ID هو المفتاح لاستبدال RTMP لاستيعاب تدفقات الفيديو، وخاصة محتوى HEVC/H.265، في الخدمة السحابية أو شبكات CDN التي تحتوي على مقبس IP واحد (عنوان + منفذ) مفتوح للفيديو الوارد.
واجهة برمجة تطبيقات SRT | مسودة إنترنت IETF | تطبيقات عينة |
الوثائق المرجعية لواجهة برمجة تطبيقات مكتبة SRT | مشروع بروتوكول الإنترنت SRT | تعليمات استخدام تطبيقات الاختبار ( srt-live-transmit ، srt-file-transmit ، وما إلى ذلك) |
نظرة عامة على تقنية SRT | دليل نشر SRT | كتاب الطبخ SRT |
نظرة عامة فنية على المسودة المبكرة (تمهيد لمسودة الإنترنت) | نظرة شاملة للبروتوكول مع إرشادات النشر | ملاحظات التطوير على بروتوكول SRT |
مدونة مختبرات الابتكار | قناة SRTLab على اليوتيوب | الركود |
مدونة على Medium تحتوي على مقالات فنية متعلقة بـ SRT | قناة يوتيوب التقنية تحتوي على فيديوهات مفيدة | قنوات Slack للحصول على آخر التحديثات وطرح الأسئلة انضم إلى تحالف SRT على Slack |
لماذا إس آر تي؟ - تاريخ موجز وأساس منطقي لـ SRT بقلم مارك سيمونتكوفسكي.
RTMP مقابل SRT: ورقة بيضاء حول مقارنة زمن الوصول والحد الأقصى لعرض النطاق الترددي.
التوثيق على GitHub مع مستندات SRT API ووصف الميزات وما إلى ذلك.
مسودة الإنترنت لبروتوكول SRT: Datatracker | أحدث إصدار | أحدث نسخة عمل | جيثب الريبو
لينكس (أوبونتو/سينت أو إس) | ويندوز | ماك | دائرة الرقابة الداخلية | أندرويد | مدراء الحزم
مترجم متوافق مع C++03 أو أعلى.
CMake 2.8.12 أو أعلى كنظام بناء.
OpenSSL 1.1 لتمكين التشفير، أو إنشاءه باستخدام -DENABLE_ENCRYPTION=OFF
.
يتم توفير تعدد مؤشرات الترابط عن طريق أي مما يلي:
C++11: المكتبة القياسية ( std
by -DENABLE_STDCXX_SYNC=ON
CMake option)،
C++03: Pthreads (بالنسبة لأنظمة POSIX فهي مدمجة، وبالنسبة لنظام التشغيل Windows توجد مكتبة منقولة).
Tcl 8.5 اختياري ويستخدم بواسطة البرنامج النصي ./configure
. بخلاف ذلك، استخدم CMake مباشرة.
للحصول على أوصاف تفصيلية لنظام البناء وخياراته، يرجى قراءة مستند SRT Build Options.
يوفر الريبو الحالي نماذج من التطبيقات وأمثلة التعليمات البرمجية التي توضح استخدام واجهة برمجة تطبيقات مكتبة SRT. من بينها srt-live-transmit
و srt-file-transmit
و تطبيقات أخرى. يمكن العثور على الوثائق المعنية هنا. لاحظ أن جميع العينات يتم توفيرها لأغراض تعليمية، ولا ينبغي استخدامها في بيئة الإنتاج.
يتم استخدام الأداة المساعدة srt-xtransmit
بشكل نشط للاختبار الداخلي وتقييم الأداء. ومن بين الميزات الأخرى، فهو يدعم إنشاء الحمولة الوهمية، وتوجيهات حركة المرور، وربط الاتصال. تتوفر تفاصيل إضافية في srt-xtransmit
repo نفسه.
أدوات بايثون التي قد تكون مفيدة أثناء التطوير هي:
srt-stats-plotting
- برنامج نصي مصمم لرسم الرسوم البيانية بناءً على إحصائيات SRT .csv
.
lib-tcpdump-processing
- مكتبة مصممة لمعالجة ملفات التتبع .pcap(ng)
tcpdump أو Wireshark واستخراج حزم SRT ذات الأهمية لمزيد من التحليل.
lib-srt-utils
- مكتبة Python تحتوي على تعليمات برمجية داعمة لتشغيل اختبارات SRT بناءً على تكوين التجربة.
أي شخص مدعو للمساهمة. إذا قررت المشاركة، يرجى تخصيص بعض الوقت لمراجعة الإرشادات:
دليل مطور SRT
المساهمة
قضايا الإبلاغ
للحصول على معلومات حول المساهمة في مسودة الإنترنت أو إرسال المشكلات، يرجى الانتقال إلى الريبو التالي. يمكن العثور على الريبو الخاص بالمساهمة في SRT CookBook هنا.
من خلال المساهمة بالكود في مشروع SRT، فإنك توافق على ترخيص مساهمتك بموجب ترخيص MPLv2.0.
ملاحظات الإصدار
إصدار SRT
يشير مصطلح "البث المباشر" إلى النقل المستمر للبيانات (MPEG-TS أو ما يعادله) مع إدارة الكمون. لا يعد البث المباشر المستند إلى تجزئة الملفات ونقلها كما هو الحال في بروتوكول HTTP Live Streaming (HLS) (كما هو موضح في RFC8216) جزءًا من حالة الاستخدام هذه. ينبغي النظر في نقل الملف إما في وضع الرسالة أو المخزن المؤقت في هذه الحالة. راجع القسم 7. أفضل الممارسات ونصائح التكوين لنقل البيانات عبر SRT في مسودة الإنترنت للحصول على التفاصيل. لاحظ أن SRT لا يعرف المحتوى، مما يعني أنه يمكن نقل أي نوع من البيانات عبر حمولتها. ↩