Stream Reader
هذا الـ function block يقوم بتشغيل تدفقات الشبكة (YouTube، Twitch، HTTP/RTSP وما شابه) في الخلفية ويحتفظ بأحدث إطار جاهزًا للاستهلاك من قِبل بقية البلوكات. تم تصميمه للمعاينة المستمرة للتدفق والمعالجة اللاحقة مع عناصر تحكم لسرعة التشغيل، الجودة المطلوبة، وتحديد حد معدل الإطارات.
📥 المدخلات
هذا الـ function block لا يحتوي على مدخلات.
📤 المخرجات
Image Any
أحدث إطار تم استرجاعه من مصدر البث المزوّد (يتحدّث باستمرار أثناء تشغيل التدفق).
🕹️ الضوابط (Controls)
Status
يعرض الحالة الحالية ورسائل مفيدة (مثل: waiting, connecting, live, paused, reconnecting).
Stream URL
أدخل عنوان أو رابط التدفق الذي تريد تشغيله (أمثلة: روابط البث العامة، HTTP livestreams، أو روابط المزود).
Playback speed
اضبط معدل التشغيل (النطاق يظهر في واجهة المستخدم). استخدم قيم أقل من 1.0 للحركة البطيئة أو أعلى من 1.0 للتشغيل الأسرع.
Preferred quality
اطلب جودة مفضلة للتدفق عندما تتوفر نسخ متعددة (مثال: Best، 1080p، 720p).
FPS limit
حدد حدًا لمعدل الإطارات الصادرة من هذا البلوك. اضبطه على 0 لاستخدام معدل الإطارات الأصلي للمصدر.
Pause playback
مفتاح للتوقيف المؤقت/المتابعة للتدفق دون إغلاق الاتصال.
🎨 الميزات (Features)
تشغيل في الخلفية: يقوم بتشغيل التدفقات البعيدة في عملية خلفية حتى تظل واجهة المستخدم سريعة مع الاحتفاظ بأحدث إطار متاح.
تعامل متين مع الاتصال: يعرض رسائل حالة واضحة (connecting, live, paused, reconnecting) ويحاول التعافي من الأخطاء العابرة.
تحكم في التشغيل: تحكم بسرعة التشغيل واطلب تمثيلًا معينًا عند توفره.
تحديد معدل الإطارات: خفّض الحمل اللاحق بتحديد سقف للإطارات في الثانية.
رفع إطارات اختيارية عن بعد: عند التهيئة، يمكن إرسال الإطارات الملتقطة إلى ناقل رفع عن بُعد للتخزين أو التسجيل.
إيقاف مؤقت دون فقدان الإطار الأخير: الإيقاف المؤقت يحتفظ بآخر إطار متاح للتفتيش أو المعالجة.
📝 تعليمات الاستخدام (Usage)
أدخل رابط البث في
Stream URL.اضبط
Preferred qualityإذا أردت تمثيلًا معينًا.حدّد
Playback speedوFPS limitللتحكم في كيفية تسليم التدفق إلى البلوكات التالية.استخدم
Pause playbackلإيقاف تحديثات الإطارات مؤقتًا مع الحفاظ على الاتصال.قم بتوصيل مخرج هذا البلوك
Image Anyإلى بلوكات العرض أو المعالجة لاستهلاك الإطارات الحية.
📊 التقييم (Evaluation)
عند التنشيط، يقوم هذا الـ function block بجلب إطارات بشكل مستمر من التدفق المُكوَّن ويوفر أحدث إطار عبر المخرج Image Any. تتحدّث رسائل الحالة لتعكس حالة الاتصال. عند التوقيف المؤقت، تتوقف تحديثات الإطارات لكن يبقى آخر إطار متاحًا.
💡 نصائح وحيل (Tips and Tricks)
لمعاينة البث تفاعليًا، قم بتوصيل المخرج
Image Anyإلى بلوكShow Imageلفتح عارض الصور وفحص الإطارات.خفّض حمل CPU/GPU بتوصيل
Image Anyإلى بلوكImage Resizerقبل البلوكات الثقيلة على الـ AI مثلObject Detection (D-FINE),Mask Detection,Pose Estimation.للتسجيل طويل الأمد أو التصحيح، مرر المخرج إلى
Record Video,Image LoggerأوImage Write.استخدم
Background Subtractorعلى مخرج التدفق لاكتشاف الحركة أو استخراج مناطق المقدمة للمتنبِّهات اللاحقة (مثلاًObject Detection - Custom).إذا رغبت بالتركيز على منطقة معينة من المشهد، استخدم
Image ROI,Image ROI SelectأوImage ROI Polygonقبل بلوكات الكشف أو القياس (مثلFind ObjectأوHistogram On Line).اجمع مع
Object_Detection_TrackerوDraw Detectionsلتتبع وتصوير الكائنات المكتشفة عبر الإطارات من التدفق.للـ OCR على البث المباشر، وصل المخرج إلى
OCRأوOCR (EasyOCR)بعد قص مناسب (Image ROI Select) وتحسين الصورة (Contrast OptimizationأوDenoising).إذا كان مصدر التدفق كبيرًا أو غير مستقر، جرّب تقليل
FPS limitأو خفضPreferred qualityلتحسين الاستقرار وتقليل استهلاك النطاق الترددي.
🛠️ استكشاف الأخطاء وإصلاحها (Troubleshooting)
إذا أظهرت الحالة "Waiting for stream link"، تأكد أن
Stream URLعبارة عن رابط كامل يتضمن البروتوكول (مثال:http://,https://,rtsp://).إذا فشل الاتصال أو أعاد الاتصال بشكل متكرر، جرّب خفض الجودة المطلوبة أو تقليل حد الإطارات لتخفيف النطاق والتحميل.
إذا توقفت الإطارات عن التحديث بينما تظهر الحالة live، قم بإيقاف ثم تفعيل
Pause playbackلإجبار تحديث.إذا احتجت لتصحيح رسائل الاتصال، راقب تسمية
Statusفي البلوك للحصول على مؤشرات نصية عن تقدم الاتصال أو الأخطاء.
آخر تحديث