Discourse Video Stream يضيف تكاملاً سلسًا مع Cloudflare Stream لتحميل وتضمين محتوى الفيديو الطويل عالي الجودة والبث المباشر في موقع Discourse الخاص بك.
نظرة عامة
يوفر هذا المكون الإضافي سير عمل كاملاً للتعامل مع ملفات الفيديو الكبيرة مع بث معدل البت التكيفي، مما يسمح للمستخدمين بتحميل مقاطع الفيديو مباشرة من المُنشئ وتشغيلها مع تعديل الجودة التلقائي بناءً على ظروف شبكتهم. كما أنه يدعم إنشاء بث مباشر باستخدام بث RTMPS.
الميزات الرئيسية
تكامل المُنشئ: زر شريط أدوات اختياري للتحميل المباشر للفيديو من المُنشئ
اعتراض التحميل التلقائي: يتم تحميل مقاطع الفيديو التي تتجاوز عتبة حجم قابلة للتكوين تلقائيًا إلى Cloudflare Stream بدلاً من التخزين المحلي
عمليات تحميل قابلة للاستئناف: مبني على tus-js-clientلعمليات تحميل موثوقة للملفات التي تتجاوز 200 ميجابايت بكثير مع استئناف تلقائي عند حدوث مشكلات في الاتصال
وكيل آمن: نقطة نهاية من جانب الخادم تُنشئ عناوين URL تحميل Cloudflare Stream قصيرة الأجل، مما يحافظ على أمان بيانات اعتماد واجهة برمجة التطبيقات الخاصة بك
البث المباشر: إنشاء بث مباشر باستخدام بث RTMPS مباشرة من المُنشئ
BBCode مخصص: صيغة [video-stream id="..."]بسيطة لتضمين مقاطع الفيديو
البث التكيفي: تكامل Shaka Player مع بيانات بيان DASH لتشغيل سلس عبر سرعات الشبكة المتغيرة
عناصر تحكم التشغيل: واجهة مستخدم مدمجة لاختيار الدقة والتحكم في سرعة التشغيل
التثبيت
أضف المكون الإضافي إلى ملف app.yml الخاص بك:
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/xfalcox/discourse-video-stream.git
ثم أعد بناء الحاوية الخاصة بك:
./launcher rebuild app
الإعداد
انتقل إلى المسؤول ← الإعدادات ← بث الفيديو وقم بتكوين ما يلي:
| الإعداد | الوصف | الافتراضي |
|---|---|---|
| video_stream_enabled | تمكين مكون بث الفيديو الإضافي | false |
| video_stream_account_id | مُعرف حساب Cloudflare الخاص بك | - |
| video_stream_api_token | رمز API مميز بأذونات Stream:Edit | - |
| video_stream_customer_subdomain | نطاق Cloudflare Stream الخاص بك (على سبيل المثال، customer-xxxxx.cloudflarestream.com) | - |
| video_stream_allowed_extensions | قائمة مفصولة بفواصل بتنسيقات الفيديو المسموح بها | mp4,webm,mov |
| video_stream_max_file_size | الحد الأقصى لحجم الملف بالميجابايت (1-2000) | 500 |
| video_stream_intercept_native_uploads | اعتراض تحميلات الفيديو الكبيرة تلقائيًا | true |
| video_stream_intercept_threshold_mb | عتبة الحجم بالميجابايت للاعتراض التلقائي (1-2000) | 10 |
| video_stream_enable_live_streams | تمكين ميزة البث المباشر | false |
الحصول على بيانات اعتماد Cloudflare Stream
- سجّل الدخول إلى لوحة تحكم Cloudflare الخاصة بك
- انتقل إلى Stream ضمن حسابك
- انسخ مُعرف الحساب الخاص بك من نظرة عامة على Stream
- أنشئ رمز API مميزًا بأذونات Stream:Edit
- لاحظ النطاق الفرعي للعميل الخاص بك من إعدادات Stream
الاستخدام
بمجرد التكوين، لدى المستخدمين طريقتان لتحميل مقاطع الفيديو:
الاعتراض التلقائي
عندما يقوم المستخدم بسحب وإسقاط أو تحديد ملف فيديو يتجاوز الإعداد video_stream_intercept_threshold_mb، يتعامل المكون الإضافي معه تلقائيًا عبر Cloudflare Stream بدلاً من التخزين المحلي. تحتاج إلى السماح بملحقات ملفات الفيديو في إعدادات الامتدادات المسموح بها لكي يعمل هذا .
التحميل اليدوي
يمكن للمستخدمين النقر على القائمة المنبثقة لشريط أدوات المُنشئ (
) واختيار خيار تحميل الفيديو للتحميل صراحةً إلى Cloudflare Stream.
تقوم كلتا الطريقتين بإدراج علامة BBCode [video-stream id="video_id"] التي يتم عرضها كلاعب بث تكيفي مع عناصر تحكم في الدقة والسرعة.
البث المباشر
عند تمكين video_stream_enable_live_streams، يمكن للمستخدمين إنشاء بث مباشر:
- انقر على القائمة المنبثقة لشريط أدوات المُنشئ (
) وحدد “إنشاء بث مباشر” - يُنشئ نموذج منبثق بيانات اعتماد RTMPS عبر واجهة برمجة تطبيقات Cloudflare Stream
- انسخ عنوان URL الخاص بـ RTMPS ومفتاح البث باستخدام أزرار النسخ المريحة
- استخدم بيانات الاعتماد مع OBS أو Streamlabs أو أي برنامج بث متوافق مع RTMPS
- انقر فوق “إدراج التضمين” لإضافة علامة BBCode
[video-stream id="..."]إلى منشورك - ابدأ البث فورًا
ميزات البث المباشر:
- التسجيل التلقائي ممكّن بشكل افتراضي (يتم حفظ البثوث للتشغيل لاحقًا)
- نفس المشغل التكيفي يعمل للمحتوى المباشر والمسجل
- يرى المستخدمون المحتوى المباشر أثناء البث، ثم يمكنهم مشاهدة التسجيل بعد ذلك
- معالجة آمنة لبيانات الاعتماد مع رسائل تحذير
لماذا Cloudflare Stream؟
لدينا دعم للقيام بنفس الشيء باستخدام AWS في الكود، ومع Mux في https://github.com/discourse/discourse-video، لذا كان البديل الأرخص يبدو فكرة جيدة.
المتطلبات
- حساب Cloudflare نشط مع تمكين Stream
المصدر والدعم
- المستودع: GitHub - xfalcox/discourse-video-stream
لقطات الشاشة
تجريبي
قم بزيارة موقع الاختبار الخاص بي وقم بتحميل بعض مقاطع الفيديو
https://discourse-on-a-pi5.falco.dev/t/test-video-upload-plugin/20?u=falco
ملاحظة: هذا ليس مكونًا إضافيًا #رسميًا.


