يتصل RTSP ولكنه لا يعرض أي فيديو: ما الذي يجب فحصه قبل إلقاء اللوم على المشغل
مسار تشخيصي عملي لتدفقات كاميرا RTSP التي تقوم بالمصادقة والاتصال ولكن لا تزال تظهر شاشة سوداء أو لا يوجد فيديو تم فك تشفيره.
تبدو إحدى بطاقات دعم الكاميرا الأكثر شيوعًا بسيطة: "يتم الاتصال بعنوان URL لـ RTSP، وتنجح المصادقة، ولكن لا يعرض المشاهد أي فيديو. الغريزة الطبيعية هي تجربة لاعب آخر. يمكن أن يكون ذلك مفيدًا، لكنه لا يجيب على السؤال الهندسي: هل فشل التدفق عند التحكم في RTSP، أو تفاوض SDP، أو تسليم RTP، أو جاهزية برنامج الترميز؟" بالنسبة لمتكاملي الدوائر التلفزيونية المغلقة، ومهندسي VMS، وبائعي الكاميرات، فإن هذا التمييز مهم. يمكن للاعب إخفاء فقدان الحزمة أو إعادة استخدام حالة وحدة فك التشفير القديمة أو إعادة محاولة أوضاع النقل بصمت. يجب أن يوضح التقرير التشخيصي أي جزء من مجرى الدم أثبت صحته وأي جزء لم يكن كذلك.
فصل نجاح السيطرة عن نجاح وسائل الإعلام
RTSP هو بروتوكول تحكم. يُثبت تسلسل "الوصف" و"الإعداد" و"التشغيل" الناجح أن الكاميرا قبلت الجلسة. لا يثبت وصول حزم RTP. كما أنه لا يثبت أن الحمولة هي في الواقع H.264 أو H.265 بالشكل المعلن عنه بواسطة SDP.
سجلات المرور الأولى المفيدة:
- رموز حالة RTSP لـ
OPTIONSوDESCRIBEوSETUPوPLAY - ما إذا كان نص SDP يحتوي على قسم وسائط الفيديو
- نوع الحمولة التي تم التفاوض عليها لمسار الفيديو
- ما إذا كانت حزم RTP تصل بعد "PLAY".
- ما إذا كان الطابع الزمني لـ RTP والأرقام التسلسلية يتحركان للأمام
- ما إذا كانت حمولة الفيديو الأولى تحتوي على دليل معلمات برنامج الترميز
إذا نجح التحكم ولكن لم يصل RTP، فعادةً ما تكون المشكلة هي النقل أو جدار الحماية أو NAT أو وضع الكاميرا أو توفر الدفق من جانب الخادم. إذا وصل RTP ولكن لا يوجد فيديو جاهز لفك التشفير، فستنتقل المشكلة نحو الحمولة أو الحزم أو البيانات التعريفية لبرنامج الترميز.
لماذا يعتبر SDP هو الحد الأول للدليل
يخبر SDP العميل بما تدعي الكاميرا أنه سيرسله. بالنسبة لـ H.264، يبحث المهندسون عن قيم rtpmap وfmtp مثل وضع الحزم، ومعرف مستوى الملف الشخصي، ومجموعات معلمات sprop. بالنسبة لـ H.265، قد يحمل SDP معلومات VPS وSPS وPPS بشكل مختلف، والعديد من المستهلكين لديهم حدود دعم أكثر صرامة.
عندما يقول SDP H.264 لكن بايتات الوسائط لا تحتوي على بنية وحدة NAL المتوقعة، فإن الفشل ليس "مشكلة مشغل" عامة. إنه عدم تطابق بين البيانات الوصفية المعلن عنها وواقع الحمولة. عندما يحذف SDP مجموعات المعلمات ولا يرسلها تدفق RTP أبدًا داخل النطاق، فقد ينتظر جهاز فك التشفير إلى الأبد.
ولهذا السبب يجب أن يحافظ سير عمل فحص RTSP على SDP بجانب أدلة الوسائط، وليس مدفونًا في سجل اللاعب.
وصول RTP ليس كافيًا
حتى عند وصول حزم RTP، قد يفشل الفيديو. تعتمد إطارات H.264 وH.265 غالبًا على الحزم السابقة. يمكن للحزمة المفقودة أن تجعل الشريحة التالية غير قابلة للفك. يمكن أن يبدو التسليم خارج الترتيب وكأنه فساد. قد لا تكون الحمولة النافعة التي تبدأ في منتصف GOP جاهزة لفك التشفير حتى يظهر الإطار الرئيسي ومجموعة المعلمات التالية.
الحد الأدنى من الأدلة التي يجب جمعها هو:
- استمرارية تسلسل RTP
- تقدم الطابع الزمني
- سلوك بت العلامة
- اتساق نوع الحمولة
- فئات الوحدات H.264 أو H.265 NAL
- SPS وPPS ولرؤية H.265 VPS
- الاستعداد الأول للإطار الرئيسي
وهذا ما يفسر سبب صحة "تشغيل VLC" و"رفض مسار التحليلات لدينا". يتعافى بعض المشاهدين بقوة. غالبًا ما تحتاج الأنظمة الهندسية إلى أدلة واضحة للمعايير.
TCP مقابل UDP هو خيار تشخيصي
يعد تحويل نقل RTSP من UDP إلى TCP خطوة شائعة لاستكشاف الأخطاء وإصلاحها، ولكن لا ينبغي التعامل معها كعلاج شامل. يمكن أن يؤدي تشذير TCP إلى تجنب منافذ UDP المحظورة وتقليل فقدان الحزم الناتج عن سياسة الشبكة. ويمكنه أيضًا إخفاء ما إذا كان مسار UDP المقصود للنشر يعمل أم لا.
يسجل التقرير الميداني الجيد كلتا المحاولتين:
- RTSP عبر TCP معشق: هل تصل الوسائط؟
- RTP عبر البث الأحادي UDP: هل تصل الحزم إلى المنافذ التي تم التفاوض عليها؟
- RTCP: هل تُظهر تعليقات المرسل التوقيت وعدد الحزم؟
إذا كان TCP يعمل وفشل UDP، فربما تكون الإجابة هي عدم دعم برنامج الترميز. من المحتمل أن يكون مسار الشبكة أو جدار الحماية أو NAT أو تخصيص المنفذ. إذا كانت كلتا وسيلتي النقل تقدمان RTP ولكن لا يزال فك التشفير يفشل، فافحص بنية برنامج الترميز.
حيث يناسب مفتش RTSP
تم تصميم RTSP Inspector لهذه الحدود الدقيقة. إنها لا تحاول أن تصبح مشغل فيديو أو NVR. فهو يلتقط الأدلة حول جلسة RTSP، وSDP، وتدفق RTP/RTCP، واستعداد H.264/H.265 حتى يتمكن المهندس من شرح سبب عدم تحول "متصل" إلى "فيديو قابل للاستخدام".
الإخراج المفيد ليس لقطة شاشة لنافذة مشغل سوداء. إنها إجابة متكررة:
- نجح التحكم في RTSP
- أعلن SDP عن برنامج الترميز ونوع الحمولة هذا
- لقد وصل RTP أو لم يصل
- كان تسلسل الحزمة مستمرًا أو متقطعًا
- كان دليل معلمة الترميز موجودًا أو مفقودًا
- ينتمي الإجراء التالي إلى الشبكة أو تكوين الكاميرا أو البرامج الثابتة أو مستهلك البث
هذا هو الفرق بين مشاهدة البث وتشخيصه.