مِخبارMIKHBAR
الذكاء الاصطناعي

Cloudflare تطلق Streamline لبناء خطوط معالجة فيديو مخصصة

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

Cloudflare تطلق Streamline لبناء خطوط معالجة فيديو مخصصة

تجاوز حدود البث التقليدي

على الرغم من أن منصة Cloudflare Stream تُعد نظام بث قويًا يلائم احتياجات العديد من العملاء، إلا أن هناك طلبًا متزايدًا على ميزات متقدمة تتطلب تدخلًا برمجيًا مباشرًا. يبرز هذا الطلب في الرغبة بإضافة تعليقات ديناميكية على البث المباشر، أو إنشاء نسخ بديلة من الفيديوهات المضافة مع إدراج ترجمة نصية ثابتة داخل الصورة. لتحقيق هذه الأهداف، يحتاج المطورون إلى تشغيل خط معالجة فيديو مخصص (Custom Video Pipeline) يتجاوز قدرات المنصة القياسية.

معمارية مبنية على الحاويات والتنسيق

أعلنت Cloudflare عن إطلاق Streamline، وهي ساحة تجريبية للمطورين (Developer Playground) توضح كيفية بناء أنظمة لتسليم تجارب فيديو مخصصة على منصة المطورين. تعتمد هذه التقنية على مبدأ أساسي: تحتاج خطوط المعالجة إلى بيئة تشغيل دائمة وطويلة الأمد (Long-running) قادرة على تنفيذ أكواد مُجمّعة متخصصة مع سعة ذاكرة ومعالج متوقعة. نظرًا لأن تدفقات الفيديو قد تستمر لعدة دقائق أو ساعات، يجب أن تكون دورة حياة عملية الوسائط مستقلة تمامًا عن الطلب الشبكي الذي بدأها.

لتحقيق ذلك، تستخدم Streamline ثلاث ركائز تقنية من Cloudflare: الحاويات (Containers) كبيئة تشغيل طويلة الأمد مناسبة لمعالجة الوسائط، وأجسام الموثوقية (Durable Objects) لتنسيق العمليات، وWorkers لإشارات التحكم والمراقبة. تم بناء محرك وسائط يعمل داخل حاوية لمعالجة البيانات في الوقت الفعلي، بينما يتحكم فيه Worker يعرض خيارات التحكم والمعاينة للمستخدم أو للوكيل البرمجي (Agent).

Cloudflare تطلق Streamline لبناء خطوط معالجة فيديو مخصصة
صورة مرتبطة بالخبر من Cloudflare Blog · المصدر: Cloudflare Blog

مكونات النظام: محرك الوسائط والتطبيق

تتكون كل عملية نشر لنظام Streamline من مكونين رئيسيين: محرك الوسائط (Media Engine) الذي يتعامل مع مدخلات ومخرجات الفيديو ومعالجتها، وتطبيق التحكم (Controlling Application) الذي ينشئ جلسات المعالجة ويضبطها ويراقبها ويوقفها. يعمل محرك الوسائط داخل حاوية ويستطيع سحب البث عبر بروتوكول RTMPS من مدخلات Stream Live، أو نشر المخرجات إلى مدخلات أخرى. كما يدعم سحب قوائم HLS من الفيديوهات المضافة لاستخدامها كمدخلات، أو استقبال الفيديو من مصادر خارجية مثل كاميرات الويب.

من ناحية أخرى، يُبنى تطبيق التحكم باستخدام Workers، ويمكن أن يكون تطبيق ويب كامل، أو وكيلًا برمجيًا، أو نظامًا مدمجًا. يتضمن هذا التطبيق واجهة مستخدم (UI) تحتوي على منطق العميل وسياسات الوصول، بالإضافة إلى منسق (Orchestrator) يُنفذ بواسطة Durable Object. يتولى هذا المنسق تنسيق الجلسة ودورة حياة الحاوية ونقاط التحويل للمعاينة (Preview Relay).

Cloudflare تطلق Streamline لبناء خطوط معالجة فيديو مخصصة
صورة مرتبطة بالخبر من Cloudflare Blog · المصدر: Cloudflare Blog

إدارة دورة حياة المعالجة المستمرة

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

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

واجهات برمجية مرنة وموحدة

لتبسيط التعامل مع النظام، توفر Streamline حزمين برمجيين رئيسيين: @cloudflare/streamline/client الذي يعرّف واجهة برمجية عالية المستوى مبنية على الجلسات، و @cloudflare/streamline/ الذي يكشف عن فئة Durable Object الأساسية المرتبطة بالحاوية. في النشر عن بُعد، يُتوقع من Worker المتحكم فيه استيراد الحزمة وتعريف فئة فرعية محددة يمكن استخدامها للمنطق الخاص بالتطبيق والتخزين. هذا التصميم يجعل النظام محايدًا تجاه هوية المتحكم (سواء كان شخصًا أو وكيلًا ذكيًا) ويخفي التفاصيل غير الضرورية للتنفيذ الخلفي.

في الوضع المحلي، حيث لا يوجد Durable Object، يعرّف الواجهة الأمامية طبقة تكيف رقيقة تحافظ على واجهة الجلسات البرمجية، لكنها تتصل مباشرةً بمثال Docker المحلي دون ضوابط وصول. هذا يتيح للمطورين اختبار خطوط المعالجة محليًا بسهولة قبل نشرها على البنية التحتية السحابية.

Cloudflare تطلق Streamline لبناء خطوط معالجة فيديو مخصصة
صورة مرتبطة بالخبر من Cloudflare Blog · المصدر: Cloudflare Blog

التحكم في خط المعالجة عبر JSON

يعتمد تشغيل خط المعالجة على استدعاء session.start() الذي يستقبل كائن JSON واحد يحدد المعالجة المطلوبة. يسمح هذا التصميم بتكوين خطوط معقدة من خلال تعريف المدخلات والمخرجات والتحويلات المطلوبة بشكل برمجي. على سبيل المثال، يمكن بدء خط يأخذ بث RTMP كمدخل، ثم تطبيق فلاتر أو تحويلات، ونشر النتيجة كمعاينة عبر WebSocket أو كفيديو نهائي. يوفر النظام أيضًا نقاط نهاية لإرسال مقاطع فيديو قصيرة في وضع 'كاميرا الويب'، مما يوسع نطاق الاستخدامات المحتملة للتطبيق.

المصادر

  • Cloudflare BlogStreamline: custom video pipelines with Cloudflare Stream and Workers

تابع التسلسل الزمني

تغطية الكيانات المرتبطة