كيفية إصلاح أخطاء RTP / NDPI \"كتابة غير معروفة\" - نوع الحمولة الديناميكية وتعيين SDP في تدفقات RTSP
تصحيح أخطاء RTP / NDPI 'الكتابة غير المعروفة' في عمليات التقاط RTSP عن طريق تعيين أنواع حمولة RTP الديناميكية مرة أخرى إلى خطوط SDP rtpmap وfmtp. يغطي البيانات التعريفية H.264 وH.265 وAAC وONVIF ومعرفات الحمولة وأخطاء أداة إزالة الحزم.
يمكن أن تبدو جلسة RTSP سليمة حتى يحاول محلل الوسائط فهم حزم RTP. DESCRIBE يُرجع SDP. نجح SETUP. نجح "اللعب". وصول حزم RTP. ثم يقوم مصنف التطبيق أو الحزمة بالإبلاغ عن "كتابة غير معروفة"، أو "حمولة RTP غير معروفة"، أو "NDPI غير معروف"، أو "نوع حمولة غير مدعوم"، أو "لم يتم العثور على أداة إلغاء الحزم"، أو "تعيين برنامج ترميز غير صالح"، أو "لا يوجد وحدة فك ترميز لنوع الحمولة 96"، أو "يحتوي الدفق على مسار غير معروف".
تعني هذه الأخطاء عادةً أن وحدات البايت موجودة ولكن لا يمكن للمحلل تعيين نوع حمولة RTP إلى برنامج الترميز وتعريف التتبع من SDP. في RTSP، لا يكون نوع الحمولة 96 هو H.264 تلقائيًا. إنه معرف ديناميكي محلي للجلسة. عليك أن تقرأ SDP.
إجابة سريعة: تحقق من SDP قبل إلقاء اللوم على NDPI أو الكاميرا
إذا كانت اللقطة تقول "كتابة غير معروفة" / "RTP" / "NDPI"، فابدأ هنا:
- ابحث عن استجابة RTSP
DESCRIBE. - انسخ ملف SDP.
- ابحث عن كل سطر وسائط
m=وأرقام حمولته. - لكل حمولة ديناميكية (
96-127)، ابحث عن السطر المطابقa=rtpmap:<id>. - تحقق من السطر
a=fmtp:<id>لمعلمات برنامج الترميز. - قارن بايت نوع حمولة حزمة RTP مع تعيين SDP هذا.
إذا كانت حزم RTP تستخدم نوع الحمولة النافعة 96 وقالت SDP a=rtpmap:96 H265/90000، فإن المحلل الذي يتوقع H.264 سيبلغ عن هراء. إذا كان SDP يحتوي على a=rtpmap:96 vnd.onvif.metadata/90000، فإن الحمولة غير المعروفة ليست فيديو على الإطلاق؛ إنها بيانات تعريف ONVIF ويجب ألا تؤدي إلى إيقاف التشغيل.
ولهذا السبب فإن تسمية DPI العامة مثل NDPI غير معروف ليست كافية. ترى محركات DPI بايتات الحزمة. لا يتوفر لديهم دائمًا سياق مستوى التحكم RTSP اللازم لتفسير معرفات الحمولة الديناميكية المحلية للجلسة. بالنسبة إلى RTSP، يجب قراءة مستوى التحكم ومستوى الوسائط معًا.
هذه مشكلة في تفسير البروتوكول. يعد RTSP Inspector مفيدًا لأنه يحافظ على أدلة SDP وRTP معًا. لا يمكنك تفسير معرفات حمولة RTP الديناميكية بشكل صحيح بدون SDP الذي يحددها.
أنواع الحمولة الثابتة مقابل الديناميكية
بعض أنواع حمولة RTP ثابتة. والبعض الآخر ديناميكي. عادةً ما توجد أنواع الحمولة النافعة الديناميكية في النطاق 96-127 ويجب تعيينها بواسطة SDP.
مثال:
m=video 0 RTP/AVP 96
a=rtpmap:96 H264/90000
SDP rtpmap is required for dynamic payloads
For dynamic payload types, SDP should include a=rtpmap:
a=rtpmap:96 H264/90000
a=rtpmap:97 MPEG4-GENERIC/48000/2
a=rtpmap:98 H265/90000
إذا كان SDP يفتقد rtpmap، فقد لا يعرف العميل أداة إزالة الحزم التي سيستخدمها. تنتج بعض الكاميرات SDP غير مكتمل. تقوم بعض المرحلات أو الوكلاء بتغيير SDP. يقوم بعض العملاء بتحليل المسارات الشائعة فقط وتجاهل مسارات بيانات التعريف.
النتائج المشتركة:
- تصل حمولة الفيديو ولكن لم يتم فك تشفيرها.
- يتم تجاهل المسار الصوتي.
- يؤدي تتبع البيانات التعريفية لـ ONVIF إلى حدوث أخطاء غير معروفة في الحمولة.
- تم الخلط بين H.265 وH.264.
- معدل ساعة AAC أو عدد القنوات غير صحيح.
يتغير نوع الحمولة بين الجلسات
لا تقم بترميز معرفات الحمولة الصافية الديناميكية. قد تقوم الكاميرا بتعيين أرقام حمولة مختلفة بعد إعادة التشغيل أو تغيير ملف التعريف أو تحديث البرنامج الثابت أو تغيير مسار الدفق.
على سبيل المثال:
Session A: payload 96 = H264
Session B: payload 96 = H265
Session C: payload 97 = H264, payload 96 = metadata
H.264 and H.265 confusion
Symptoms:
AAC and MPEG4-GENERIC
Relevant SDP:
a=rtpmap:97 MPEG4-GENERIC/48000/2
a=fmtp:97 streamtype=5; profile-level-id=1; mode=AAC-hbr; config=...
إن نوع الحمولة ومعدل الساعة والقنوات ومعلمات fmtp كلها أمور مهمة.
مسارات البيانات الوصفية وملحقات البائعين
يمكن أن تظهر بيانات تعريف ONVIF وتراكبات التحليلات ومسارات الأحداث الخاصة والحمولات الخاصة بالمورد في SDP. قد لا يعرف مشغل الوسائط ماذا يفعل بها.
هذا ليس بالضرورة فشل الدفق. قد يعني ذلك أنه يجب على العميل تجاهل المسارات غير المدعومة للوسائط أثناء الاستمرار في معالجة الفيديو والصوت. ولكن إذا تعامل العميل مع بيانات التعريف غير المعروفة على أنها قاتلة، فقد يفشل التشغيل.
يجب أن يساعد RTSP Inspector في تحديد نوع المسار، ورسم خرائط الحمولة، وما إذا كانت الحمولات غير المعروفة عبارة عن فيديو أو صوت أو بيانات تعريف أو بيانات خاصة.
قائمة التحقق من التصحيح
استخدم هذه العملية:
- التقط SDP الذي تم إرجاعه بواسطة "DESCRIBE".
- قم بإدراج كل قسم وسائط
m=. - قم بإدراج كل أنواع الحمولة الصافية الديناميكية.
- قم بتعيين معرفات الحمولة النافعة باستخدام
a=rtpmap. - افحص
a=fmtpلتكوين برنامج الترميز. - قارن قيم نوع حمولة حزمة RTP بقيم SDP.
- تحقق مما إذا كانت معرفات الحمولة تتغير بين الجلسات.
- فصل الفيديو والصوت والبيانات الوصفية والمسارات الخاصة.
- تأكد من أن العميل لديه أداة إلغاء الحزم لكل برنامج ترميز مطلوب.
- تجاهل المسارات الاختيارية غير المدعومة فقط إذا كان التطبيق يمكنه القيام بذلك بأمان.
التشخيص النهائي
يحدث عدم تطابق نوع حمولة RTP الديناميكية عندما لا يتمكن العميل من تعيين حزم RTP الواردة إلى برنامج الترميز أو المسار الصحيح. يتمثل الإصلاح في التعامل مع SDP باعتباره مرجعًا للجلسة: تحليل rtpmap، وتحليل fmtp، وربط معرفات الحمولة النافعة لكل جلسة، وتمييز مسارات الوسائط المطلوبة عن بيانات التعريف الاختيارية.
يدعم RTSP Inspector سير العمل الذي يعتمد على الأدلة أولاً من خلال عرض SDP وRTP جنبًا إلى جنب، بحيث يمكن تشخيص مشكلات الحمولة قبل إلقاء اللوم على الكاميرا أو وحدة فك التشفير أو الشبكة.
<!-- rtsp-localized-evidence-foundation-v1:start -->خطة إثبات عملية لموضوع «كيفية إصلاح أخطاء RTP / NDPI "كتابة غير معروفة" - نوع الحمولة الديناميكية وتعيين SDP في تدفقات RTSP»
الإجابة المباشرة هي أن تشخيص بث كاميرا لا يعتمد على ظهور صورة أو على رمز خطأ منفرد. يجب ربط النتيجة بطلب RTSP وردّه، وباختيار Transport، وبهوية جلسة صالحة، ثم بأرقام تسلسل RTP والطوابع الزمنية وبيانات RTCP عند وصول الوسائط. في موضوع «كيفية إصلاح أخطاء RTP / NDPI "كتابة غير معروفة" - نوع الحمولة الديناميكية وتعيين SDP في تدفقات RTSP» ابدأ بأقرب طبقة إلى العرض الظاهر، لكن احتفظ بسجل زمني واحد حتى لا تختلط مشكلة التحكم بمشكلة الشبكة أو برنامج فك الترميز.
أنشئ حالة اختبار صغيرة قبل تغيير إعدادات الكاميرا أو الجدار الناري. دوّن عنوان RTSP بعد إخفاء كلمة المرور، ووقت الاختبار، واسم المسار، ونوع النقل المطلوب، ورد الخادم، وأول لحظة تصل فيها الوسائط. نفّذ محاولة واحدة عبر UDP وأخرى عبر TCP interleaved عندما يسمح الجهاز بذلك. لا تغيّر عنوان المسار وبيانات الاعتماد والنقل في التجربة نفسها، لأن نجاح المحاولة التالية لن يوضح أي متغير أصلح العطل.
| طبقة الفحص | الدليل الذي يجب حفظه | سؤال القرار |
|---|---|---|
| RTSP | الطلب، الحالة، الرؤوس، CSeq وSession | هل وافق الخادم على العملية نفسها؟ |
| SDP | control وpayload type وclock rate وcodec | هل وصف الخادم المسار الذي سيُستقبل؟ |
| Transport | client_port أو interleaved وقيمة server_port | هل يرسل الطرفان عبر القناة نفسها؟ |
| RTP | SSRC والتسلسل والطابع الزمني وmarker | هل تصل وحدات الوسائط بترتيب يمكن تفسيره؟ |
| RTCP | sender report وCNAME وBYE | هل توجد ساعة وهوية ونهاية جلسة قابلة للتتبع؟ |
| Decoder | SPS/PPS/VPS وpacketization mode | هل البيانات الواصلة قابلة للتهيئة وفك الترميز؟ |
افصل دائمًا بين «لم تصل وسائط» و«وصلت وسائط غير قابلة للفك». غياب حزم RTP بعد SETUP وPLAY يشير إلى مسار UDP أو NAT أو جدار ناري أو رد Transport غير متطابق. وصول RTP مع فجوات في التسلسل يثبت فقدًا أو إعادة ترتيب. وصول تسلسل متماسك مع فشل الصورة ينقل التحقيق إلى payload type وclock rate وحدود الإطار ومعلمات H.264 أو H.265. هذه الحدود أهم من رسالة اللاعب العامة لأنها تحدد المالك المحتمل للإصلاح.
كيف تُكتب إجابة قابلة للاقتباس؟
اكتب النتيجة في ثلاث جمل: العملية التي نجحت، أول دليل أخفق، والتجربة التالية التي تفصل بين سببين. مثال البنية هو: «نجح DESCRIBE وSETUP وPLAY؛ لم تصل أي حزمة RTP إلى منافذ العميل المعلن عنها؛ إعادة الاختبار عبر TCP interleaved ستفصل بين حجب UDP وخطأ عنوان المسار». لا تقل إن الكاميرا أو الشبكة «معطلة» من دون حزمة أو رد يثبت الحد.
ما الحد الأدنى لإعادة إنتاج المشكلة؟
احتفظ بنسخة من تبادل OPTIONS وDESCRIBE وSETUP وPLAY، ونص SDP، ورد Transport، ومعرّف Session بعد إخفاء الأسرار. بالنسبة للوسائط، سجّل SSRC وأول وآخر رقم تسلسل ومعدل الساعة وعدد الفجوات ومدة الالتقاط. اذكر هل يعمل VLC أو VMS آخر، لكن تعامل مع ذلك كاختبار فرق لا كدليل أن الطرف الآخر صحيح في كل شيء.
متى يجب فحص الخادم بدل العميل؟
افحص الخادم عندما يرفض العملية بحالة واضحة، أو يغيّر عنوان control إلى مسار غير موجود، أو يعيد Transport لا يطابق العرض، أو يبدّل SSRC والساعة من دون انتقال معلن. افحص العميل عندما يكرر nonce قديمًا، أو يرسل Session مفقودة، أو يطلب UDP ثم لا يفتح المنافذ، أو يفسر marker بوصفه نهاية كل NAL. قد يكون العطل بينهما؛ لذلك يجب أن تبقى الحزمة والوقت جزءًا من التقرير.
كيف تُراجع النتيجة قبل التسليم؟
أعد المحاولة من بداية اتصال جديدة، ثم قارن السجلين عند أول اختلاف فقط. تأكد من أن التقرير لا يحتوي كلمة مرور أو رمز Authorization كاملًا. اربط كل استنتاج برقم CSeq أو رقم تسلسل أو طابع زمني. استخدم دليل RTSP المرتبط للخطوات المجاورة، وارجع إلى RTSP Inspector لمسار اختبار بث RTSP وجمع الأدلة محليًا. لا يحتاج هذا التشخيص إلى رفع تدفق الكاميرا إلى خدمة عامة.
<!-- rtsp-localized-evidence-foundation-v1:end --><!-- multilingual-blog-closeout:start -->إجابة مباشرة وحدود القبول
الإجابة المختصرة عن «كيفية إصلاح أخطاء RTP / NDPI "كتابة غير معروفة" - نوع الحمولة الديناميكية وتعيين SDP في تدفقات RTSP» هي: تصحيح أخطاء RTP / NDPI 'الكتابة غير المعروفة' في عمليات التقاط RTSP عن طريق تعيين أنواع حمولة RTP الديناميكية مرة أخرى إلى خطوط SDP rtpmap وfmtp. يغطي البيانات التعريفية H.264 وH.265 وAAC وONVIF ومعرفات الحمولة وأخطاء أداة إزالة الحزم. تعامل مع هذه العبارة كنتيجة يجب التحقق منها، لا كوعد ينطبق على كل إدخال أو جهاز أو مشروع أو بيئة. النتيجة المكتملة تسجل الحالة الأولية والإجراء الدقيق والمخرج المرئي والشرط الذي يثبت اكتمال المهمة في RTSP Inspector.
إجراء يبدأ من الأدلة
ابدأ بحالة صغيرة قابلة للتكرار قبل تغيير مشروع كامل. سجل إصدار التطبيق ونظام التشغيل وهوية الإدخال أو الجهاز والإعدادات المهمة والنتيجة المتوقعة. نفذ إجراءً واحدًا مقصودًا، واحتفظ بأول انتقال غير متوقع، وقارنه بحالة سليمة معروفة إن توفرت. تغيير عدة عناصر معًا يخفي الشرط الذي أنشأ المشكلة أو أصلحها.
نقطة التحقق 1: كيفية إصلاح أخطاء RTP / NDPI "كتابة غير معروفة" - نوع الحمولة الديناميكية وتعيين SDP في
لا تغلق «كيفية إصلاح أخطاء RTP / NDPI "كتابة غير معروفة" - نوع الحمولة الديناميكية وتعيين SDP في تدفقات RTSP» حتى تظل النتيجة المحفوظة أو المصدرة أو المعاد فتحها مطابقة للحالة المرصودة. استجابة الواجهة المؤقتة مفيدة، لكن الدليل الدائم أقوى. سجل أي قيد باق لمن يتابع العمل.
نقطة التحقق 2: تصحيح أخطاء RTP / NDPI 'الكتابة غير المعروفة' في عمليات التقاط RTSP عن طريق تعيين أنواع حم
عند «تصحيح أخطاء RTP / NDPI 'الكتابة غير المعروفة' في عمليات التقاط RTSP عن طريق تعيين أنواع حمولة RTP الديناميكية مرة أخرى إلى خطوط SDP rtpmap وfmtp. يغطي»، افصل قرار المنتج عن حدود النظام أو العتاد أو الملف المصدر أو الصلاحية أو سير العمل. أثبت أي طبقة قدمت الدليل قبل نسبة السبب. بذلك لا يتحول عرض قريب إلى سبب جذري مزعوم.
نقطة التحقق 3: إجابة سريعة: تحقق من SDP قبل إلقاء اللوم على NDPI أو الكاميرا
لا تغلق «إجابة سريعة: تحقق من SDP قبل إلقاء اللوم على NDPI أو الكاميرا» حتى تظل النتيجة المحفوظة أو المصدرة أو المعاد فتحها مطابقة للحالة المرصودة. استجابة الواجهة المؤقتة مفيدة، لكن الدليل الدائم أقوى. سجل أي قيد باق لمن يتابع العمل.
نقطة التحقق 4: أنواع الحمولة الثابتة مقابل الديناميكية
عند «أنواع الحمولة الثابتة مقابل الديناميكية»، افصل قرار المنتج عن حدود النظام أو العتاد أو الملف المصدر أو الصلاحية أو سير العمل. أثبت أي طبقة قدمت الدليل قبل نسبة السبب. بذلك لا يتحول عرض قريب إلى سبب جذري مزعوم.
نقطة التحقق 5: SDP rtpmap is required for dynamic payloads
لا تغلق «SDP rtpmap is required for dynamic payloads» حتى تظل النتيجة المحفوظة أو المصدرة أو المعاد فتحها مطابقة للحالة المرصودة. استجابة الواجهة المؤقتة مفيدة، لكن الدليل الدائم أقوى. سجل أي قيد باق لمن يتابع العمل.
نقطة التحقق 6: يتغير نوع الحمولة بين الجلسات
عند «يتغير نوع الحمولة بين الجلسات»، افصل قرار المنتج عن حدود النظام أو العتاد أو الملف المصدر أو الصلاحية أو سير العمل. أثبت أي طبقة قدمت الدليل قبل نسبة السبب. بذلك لا يتحول عرض قريب إلى سبب جذري مزعوم.
نقطة التحقق 7: H.264 and H.265 confusion
لا تغلق «H.264 and H.265 confusion» حتى تظل النتيجة المحفوظة أو المصدرة أو المعاد فتحها مطابقة للحالة المرصودة. استجابة الواجهة المؤقتة مفيدة، لكن الدليل الدائم أقوى. سجل أي قيد باق لمن يتابع العمل.
نقطة التحقق 8: AAC and MPEG4-GENERIC
عند «AAC and MPEG4-GENERIC»، افصل قرار المنتج عن حدود النظام أو العتاد أو الملف المصدر أو الصلاحية أو سير العمل. أثبت أي طبقة قدمت الدليل قبل نسبة السبب. بذلك لا يتحول عرض قريب إلى سبب جذري مزعوم.
نقطة التحقق 9: مسارات البيانات الوصفية وملحقات البائعين
لا تغلق «مسارات البيانات الوصفية وملحقات البائعين» حتى تظل النتيجة المحفوظة أو المصدرة أو المعاد فتحها مطابقة للحالة المرصودة. استجابة الواجهة المؤقتة مفيدة، لكن الدليل الدائم أقوى. سجل أي قيد باق لمن يتابع العمل.
نقطة التحقق 10: قائمة التحقق من التصحيح
عند «قائمة التحقق من التصحيح»، افصل قرار المنتج عن حدود النظام أو العتاد أو الملف المصدر أو الصلاحية أو سير العمل. أثبت أي طبقة قدمت الدليل قبل نسبة السبب. بذلك لا يتحول عرض قريب إلى سبب جذري مزعوم.
مصفوفة القبول
| النقطة | الدليل الواجب حفظه | شرط النجاح |
|---|---|---|
| كيفية إصلاح أخطاء RTP / NDPI "كتابة غير معروفة" - نوع الحمولة الديناميكية وتعيين SDP في تدفقات RTSP | الحالة الأولية وإجراء واحد والحالة الناتجة | يستطيع مشغل ثان تكرار النتيجة |
| تصحيح أخطاء RTP / NDPI 'الكتابة غير المعروفة' في عمليات التقاط RTSP عن طريق تعيين أنواع حمولة RTP الديناميكية مرة أخرى إ | الحالة الأولية وإجراء واحد والحالة الناتجة | يستطيع مشغل ثان تكرار النتيجة |
| إجابة سريعة: تحقق من SDP قبل إلقاء اللوم على NDPI أو الكاميرا | الحالة الأولية وإجراء واحد والحالة الناتجة | يستطيع مشغل ثان تكرار النتيجة |
| أنواع الحمولة الثابتة مقابل الديناميكية | الحالة الأولية وإجراء واحد والحالة الناتجة | يستطيع مشغل ثان تكرار النتيجة |
| SDP rtpmap is required for dynamic payloads | الحالة الأولية وإجراء واحد والحالة الناتجة | يستطيع مشغل ثان تكرار النتيجة |
| يتغير نوع الحمولة بين الجلسات | الحالة الأولية وإجراء واحد والحالة الناتجة | يستطيع مشغل ثان تكرار النتيجة |
عزل الفشل والاستعادة والتسليم
توقف عند أول حد يفشل. احتفظ بالمصدر أو المشروع أو الجلسة أو الالتقاط، وأنشئ نسخة قبل التحرير المدمر، وغيّر متغيرًا واحدًا في كل تجربة. إعادة سير واسع بعد عدة تغييرات قد تعطي نتيجة مختلفة من دون تفسير السبب.
افصل غياب الدليل عن دليل الغياب. قد تعني الشاشة الفارغة إدخالًا أو نطاقًا أو مرشحًا أو صلاحية أو جهازًا أو فترة أو حالة مشروع خاطئة. أثبت مسار الالتقاط أو الاستيراد قبل تفسير decoder أو المحرر أو التقرير أو التصدير.
قبل التسليم، أعد فتح الأثر الدائم وافحص بدايته ونقطة القرار ونهايته. سجل الإصدار والمنصة والإعداد والتوقع والملاحظة وأصغر إعادة إنتاج. احذف البيانات الحساسة أو احجبها وتأكد من أن المستلم مخول.
أسئلة وأجوبة
ما أسرع بداية موثوقة؟
استخدم أصغر حالة ممثلة، واكتب النتيجة المتوقعة، وغيّر متغيرًا واحدًا. أثبت المسار الأساسي قبل إضافة المرشحات أو التأثيرات أو التعديلات أو الأتمتة أو مصدر أكبر.
ما الأدلة التي ينبغي حفظها؟
احتفظ بهوية الإدخال والإصدار والمنصة والإعدادات والإجراء الدقيق وأول انتقال غير متوقع والمخرج النهائي. أغلق المشروع أو الجلسة أو التقرير أو التصدير وأعد فتحه.
متى يجب تكرار الإجراء؟
كرره بعد تغيير مؤثر في التطبيق أو النظام أو driver أو firmware أو النموذج أو المصدر أو سير العمل. احتفظ بالحالة المقبولة السابقة كأساس مقارنة دون تعديل.
متى تصبح المهمة جاهزة للتسليم؟
عندما يستطيع شخص مخول آخر تحديد الإدخال وتكرار الإجراء ورؤية النتيجة نفسها وفهم القيود وفتح الأثر المحفوظ دون الاعتماد على حالة محلية غير موثقة.
أدلة مرتبطة
تغطي الصفحات التالية باللغة نفسها المراحل المجاورة من دون تغيير المالك القانوني لهذا الموضوع:
- بت علامة RTP وحدود إطار H.264: تصحيح أخطاء تلعثم RTSP والإطارات الرئيسية المفقودة وإعادة التجميع
- تصحيح الأخطاء الملتفة حول رقم تسلسل RTP: تمرير 16 بت، وفقدان الحزمة الزائفة، وارتفاعات الارتعاش، وتدفقات الكاميرا الطويلة
- مسار صوت RTSP، وAAC، ومسارات SDP غير المعروفة: لماذا يفشل دفق الفيديو قبل التشغيل