Comment corriger les erreurs RTP/NDPI  écriture inconnue

Déboguer les erreurs RTP/NDPI \" écriture inconnue \" dans les captures RTSP en mappant les types de charge utile RTP dynamiques aux lignes SDP rtpmap et fmtp. Couvre les métadonnées H.264, H.265, AAC, ONVIF, les ID de charge utile et les erreurs de dépacketiseur.

Une session RTSP peut sembler saine jusqu'à ce que l'analyseur multimédia essaie de comprendre les paquets RTP. DESCRIBE renvoie SDP. SETUP réussit. « PLAY » réussit. Les paquets RTP arrivent. Ensuite, l'application ou le classificateur de paquets signale « écriture inconnue », « charge utile RTP inconnue », « NDPI inconnu », « type de charge utile non pris en charge », « dépacketizer introuvable », « mappage de codec invalide », « aucun décodeur pour le type de charge utile 96 » ou « le flux contient une piste inconnue ».

Ces erreurs signifient généralement que les octets sont présents, mais que l'analyseur ne peut pas mapper un type de charge utile RTP au codec et suivre la définition de SDP. Dans RTSP, le type de charge utile « 96 » n'est pas automatiquement H.264. Il s'agit d'un identifiant dynamique local de session. Vous devez lire le SDP.

Réponse rapide : vérifiez SDP avant de blâmer NDPI ou la caméra

Si une capture indique « écriture inconnue » / « RTP » / « NDPI », commencez ici :

  1. Recherchez la réponse RTSP « DESCRIBE ».
  2. Copiez le SDP.
  3. Trouvez chaque ligne multimédia m= et ses numéros de charge utile.
  4. Pour chaque charge utile dynamique (96-127), recherchez la ligne a=rtpmap:<id> correspondante.
  5. Vérifiez la ligne a=fmtp:<id> pour les paramètres du codec.
  6. Comparez l'octet de type de charge utile du paquet RTP avec ce mappage SDP.

Si les paquets RTP utilisent le type de charge utile « 96 » et que SDP indique « a=rtpmap:96 H265/90000 », un analyseur attendant H.264 signalera des bêtises. Si SDP a « a=rtpmap:96 vnd.onvif.metadata/90000 », la charge utile inconnue n'est pas du tout une vidéo ; ce sont des métadonnées ONVIF et ne devraient pas arrêter la lecture.

C'est pourquoi une étiquette DPI générique telle que « NDPI inconnu » n'est pas suffisante. Les moteurs DPI voient les octets des paquets. Ils ne disposent pas toujours du contexte de plan de contrôle RTSP nécessaire pour interpréter les ID de charge utile dynamique locale de session. Pour RTSP, le plan de contrôle et le plan média doivent être lus ensemble.

Il s'agit d'un problème d'interprétation du protocole. RTSP Inspector est utile car il conserve les preuves SDP et RTP ensemble. Vous ne pouvez pas interpréter correctement les ID de charge utile RTP dynamiques sans le SDP qui les définit.

Types de charges utiles statiques et dynamiques

Certains types de charge utile RTP sont statiques. D'autres sont dynamiques. Les types de charges utiles dynamiques se situent généralement entre 96 et 127 et doivent être mappés par SDP.

Exemple:

m=video 0 RTP/AVP 96
a=rtpmap:96 H264/90000

Here, payload type 96 means H.264 for this session. In another stream, payload type 96 could mean H.265, AAC, metadata, or something vendor-specific. The number alone is not enough.

If a client assumes payload type 96 is always H.264, it will eventually fail.

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

Si SDP manque rtpmap, le client peut ne pas savoir quel dépacketizer utiliser. Certaines caméras produisent un SDP incomplet. Certains relais ou proxys modifient le SDP. Certains clients analysent uniquement les pistes communes et ignorent les pistes de métadonnées.

Résultats courants :

  • La charge utile vidéo arrive mais n’est pas décodée.
  • La piste audio est ignorée.
  • Le suivi des métadonnées ONVIF déclenche des erreurs de charge utile inconnues.
  • H.265 est confondu avec H.264.
  • La fréquence d'horloge AAC ou le nombre de canaux est erroné.

Le type de charge utile change entre les sessions

Ne codez pas en dur les ID de charge utile dynamique. Une caméra peut attribuer différents numéros de charge utile après un redémarrage, un changement de profil, une mise à jour du micrologiciel ou un changement de chemin de flux.

Par exemple:

Session A: payload 96 = H264
Session B: payload 96 = H265
Session C: payload 97 = H264, payload 96 = metadata

The correct behavior is to parse SDP per session and bind RTP packet payload IDs to that session's mapping.

H.264 and H.265 confusion

H.264 and H.265 both often use 90 kHz RTP clocks, but their packetization and codec configuration are different. A client using the H.264 depacketizer for H.265 packets will not produce valid video.

Symptoms:

  • RTP packets arrive.
  • Payload type is dynamic.
  • SDP says H265 but client expects H264.
  • Decoder reports invalid NAL units.
  • Video is black or never starts.

Always check SDP before concluding that the camera "sends bad video."

AAC and MPEG4-GENERIC

Audio tracks can be just as tricky. AAC over RTP often uses MPEG4-GENERIC with parameters such as mode, config, sizeLength, indexLength, and profile-level-id.

If the client ignores fmtp, audio may fail even though packets arrive.

Relevant SDP:

a=rtpmap:97 MPEG4-GENERIC/48000/2
a=fmtp:97 streamtype=5; profile-level-id=1; mode=AAC-hbr; config=...

Le type de charge utile, la fréquence d’horloge, les canaux et les paramètres fmtp sont tous importants.

Pistes de métadonnées et extensions de fournisseurs

Les métadonnées ONVIF, les superpositions d'analyses, les suivis d'événements privés et les charges utiles spécifiques au fournisseur peuvent apparaître dans SDP. Un lecteur multimédia ne sait peut-être pas quoi en faire.

Il ne s'agit pas nécessairement d'un échec de flux. Cela peut signifier que le client doit ignorer les pistes non multimédias non prises en charge tout en continuant à traiter la vidéo et l'audio. Mais si le client considère les métadonnées inconnues comme fatales, la lecture peut échouer.

RTSP Inspector devrait aider à identifier le type de piste, le mappage des charges utiles et si les charges utiles inconnues sont de la vidéo, de l'audio, des métadonnées ou des données privées.

Liste de contrôle de débogage

Utilisez ce processus :

  1. Capturez le SDP renvoyé par DESCRIBE.
  2. Répertoriez chaque section multimédia m=.
  3. Répertoriez chaque type de charge utile dynamique.
  4. Mappez les ID de charge utile avec a=rtpmap.
  5. Inspectez a=fmtp pour la configuration du codec.
  6. Comparez les valeurs du type de charge utile du paquet RTP avec celles du SDP.
  7. Vérifiez si les ID de charge utile changent entre les sessions.
  8. Séparez les pistes vidéo, audio, métadonnées et privées.
  9. Confirmez que le client dispose d'un dépacketiseur pour chaque codec requis.
  10. Ignorez les pistes facultatives non prises en charge uniquement si l'application peut le faire en toute sécurité.

Diagnostic final

Une incompatibilité de type de charge utile dynamique RTP se produit lorsque le client ne peut pas mapper les paquets RTP entrants vers le bon codec ou la bonne piste. Le correctif consiste à traiter SDP comme l'autorité de la session : analyser rtpmap, analyser fmtp, lier les ID de charge utile par session et distinguer les pistes multimédias requises des métadonnées facultatives.

RTSP Inspector prend en charge ce flux de travail axé sur les preuves en affichant côte à côte SDP et RTP, afin que les problèmes de charge utile puissent être diagnostiqués avant de blâmer la caméra, le décodeur ou le réseau.

<!-- rtsp-localized-evidence-foundation-v1:start -->

Preuve reproductible pour « Comment corriger les erreurs RTP/NDPI  écriture inconnue »

La réponse directe est qu’un écran noir ou un code isolé ne prouve pas l’origine d’une panne de caméra. Un diagnostic fiable relie requête et réponse RTSP, transport négocié, session valide, puis numéros de séquence RTP, horodatages et éléments RTCP. Pour « Comment corriger les erreurs RTP/NDPI  écriture inconnue », partez de la couche la plus proche du symptôme, tout en conservant une chronologie unique afin de ne pas confondre contrôle, réseau et décodage.

Avant de modifier caméra, pare-feu ou VMS, établissez un test de référence. Notez l’URL RTSP sans mot de passe, l’heure, le chemin, le transport demandé, la réponse du serveur et l’arrivée du premier paquet média. Testez séparément UDP et TCP interleaved si l’équipement les propose. Ne changez pas à la fois chemin, identifiants et transport : un second essai réussi ne dirait pas quelle variable a corrigé l’écart.

Couche Preuve à conserver Question de décision
RTSP méthode, statut, en-têtes, CSeq et Session Le serveur accepte-t-il précisément l’opération ?
SDP control, payload type, clock rate et codec La piste décrite est-elle celle attendue ?
Transport client_port, server_port ou interleaved Les deux extrémités utilisent-elles le même canal ?
RTP SSRC, séquence, timestamp et marker Les unités arrivent-elles dans un ordre explicable ?
RTCP sender report, CNAME et BYE Horloge, identité et fin sont-elles traçables ?
Décodeur SPS/PPS/VPS et packetization mode Le payload reçu permet-il l’initialisation ?

Séparez « aucun média reçu » de « média reçu mais indécodable ». L’absence de RTP après SETUP et PLAY réussis dirige vers UDP, NAT, pare-feu ou une réponse Transport différente de l’offre. Des trous de séquence prouvent perte ou réordonnancement. Une séquence continue sans image déplace l’enquête vers payload type, fréquence d’horloge, limites d’image et paramètres H.264 ou H.265. Cette frontière est plus utile qu’un message générique du lecteur.

Comment rédiger une réponse directement réutilisable ?

Écrivez trois phrases : dernière opération réussie, première preuve en échec, prochain test discriminant. Exemple : « DESCRIBE, SETUP et PLAY réussissent ; aucun RTP n’arrive aux ports annoncés ; un essai TCP interleaved séparera blocage UDP et mauvais chemin média. » N’accusez ni caméra ni réseau sans réponse ou paquet qui matérialise cette limite.

Quelles données rendent le cas reproductible ?

Conservez OPTIONS, DESCRIBE, SETUP et PLAY, le SDP, la réponse Transport et l’identifiant Session nettoyé. Pour RTP, relevez SSRC, première et dernière séquence, clock rate, nombre de trous et durée. Mentionnez le résultat dans VLC ou un autre VMS comme test différentiel, pas comme preuve que le client qui fonctionne respecte toutes les frontières.

Quand tester le serveur ou le client ?

Examinez le serveur s’il refuse une méthode, fournit une URL control absente, renvoie un transport incompatible ou change SSRC ou horloge sans transition. Examinez le client s’il réutilise un nonce expiré, perd Session, demande UDP sans ouvrir les ports ou assimile chaque fin de NAL à une fin d’access unit. Entre les deux, paquet et heure doivent accompagner chaque conclusion.

Comment valider le rapport ?

Recommencez avec une connexion neuve et comparez les chronologies jusqu’à la première divergence. Retirez mots de passe et valeurs Authorization complètes. Reliez chaque conclusion à CSeq, séquence ou timestamp. La documentation RTSP associée couvre les étapes voisines ; RTSP Inspector permet de tester un flux RTSP et de collecter localement les preuves sans téléverser la vidéo vers un service public.

<!-- rtsp-localized-evidence-foundation-v1:end --><!-- multilingual-blog-closeout:start -->

Réponse directe et limite d’acceptation

La réponse courte à « Comment corriger les erreurs RTP/NDPI  écriture inconnue » est la suivante : Déboguer les erreurs RTP/NDPI " écriture inconnue " dans les captures RTSP en mappant les types de charge utile RTP dynamiques aux lignes SDP rtpmap et fmtp. Couvre les métadonnées H.264, H.265, AAC, ONVIF, les ID de charge utile et les erreurs de dépacketiseur. Considérez cette phrase comme un résultat à vérifier, et non comme une promesse valable pour toute entrée, tout appareil, tout projet ou tout environnement. Un résultat complet consigne l’état initial, l’action exacte, la sortie visible et la condition qui prouve la fin de la tâche dans RTSP Inspector.

Procédure fondée sur les preuves

Commencez par un cas petit et répétable avant de modifier un projet complet. Notez version de l’application, système, identité de l’entrée ou de l’appareil, réglages pertinents et résultat attendu. Exécutez une action volontaire, conservez la première transition inattendue et comparez-la à un cas nominal si possible. Plusieurs changements simultanés masquent la condition qui a créé ou corrigé le problème.

Point de contrôle 1 : Comment corriger les erreurs RTP/NDPI écriture inconnue

Ne fermez « Comment corriger les erreurs RTP/NDPI écriture inconnue » que lorsque le résultat enregistré, exporté ou rouvert correspond encore à l’état observé. Le retour temporaire de l’interface aide, mais une preuve durable est plus forte. Consignez toute limite restante pour la suite.

Point de contrôle 2 : Déboguer les erreurs RTP/NDPI " écriture inconnue " dans les captures RTSP en mappant le

Pour « Déboguer les erreurs RTP/NDPI " écriture inconnue " dans les captures RTSP en mappant les types de charge utile RTP dynamiques aux lignes SDP rtpmap », séparez une décision du produit d’une limite du système, du matériel, du fichier source, des droits ou du processus. Confirmez la couche qui fournit la preuve avant d’attribuer une cause. Un symptôme voisin ne devient ainsi pas une cause racine prétendument prouvée.

Point de contrôle 3 : Réponse rapide : vérifiez SDP avant de blâmer NDPI ou la caméra

Ne fermez « Réponse rapide : vérifiez SDP avant de blâmer NDPI ou la caméra » que lorsque le résultat enregistré, exporté ou rouvert correspond encore à l’état observé. Le retour temporaire de l’interface aide, mais une preuve durable est plus forte. Consignez toute limite restante pour la suite.

Point de contrôle 4 : Types de charges utiles statiques et dynamiques

Pour « Types de charges utiles statiques et dynamiques », séparez une décision du produit d’une limite du système, du matériel, du fichier source, des droits ou du processus. Confirmez la couche qui fournit la preuve avant d’attribuer une cause. Un symptôme voisin ne devient ainsi pas une cause racine prétendument prouvée.

Point de contrôle 5 : SDP rtpmap is required for dynamic payloads

Ne fermez « SDP rtpmap is required for dynamic payloads » que lorsque le résultat enregistré, exporté ou rouvert correspond encore à l’état observé. Le retour temporaire de l’interface aide, mais une preuve durable est plus forte. Consignez toute limite restante pour la suite.

Point de contrôle 6 : Le type de charge utile change entre les sessions

Pour « Le type de charge utile change entre les sessions », séparez une décision du produit d’une limite du système, du matériel, du fichier source, des droits ou du processus. Confirmez la couche qui fournit la preuve avant d’attribuer une cause. Un symptôme voisin ne devient ainsi pas une cause racine prétendument prouvée.

Point de contrôle 7 : H.264 and H.265 confusion

Ne fermez « H.264 and H.265 confusion » que lorsque le résultat enregistré, exporté ou rouvert correspond encore à l’état observé. Le retour temporaire de l’interface aide, mais une preuve durable est plus forte. Consignez toute limite restante pour la suite.

Point de contrôle 8 : AAC and MPEG4-GENERIC

Pour « AAC and MPEG4-GENERIC », séparez une décision du produit d’une limite du système, du matériel, du fichier source, des droits ou du processus. Confirmez la couche qui fournit la preuve avant d’attribuer une cause. Un symptôme voisin ne devient ainsi pas une cause racine prétendument prouvée.

Point de contrôle 9 : Pistes de métadonnées et extensions de fournisseurs

Ne fermez « Pistes de métadonnées et extensions de fournisseurs » que lorsque le résultat enregistré, exporté ou rouvert correspond encore à l’état observé. Le retour temporaire de l’interface aide, mais une preuve durable est plus forte. Consignez toute limite restante pour la suite.

Point de contrôle 10 : Liste de contrôle de débogage

Pour « Liste de contrôle de débogage », séparez une décision du produit d’une limite du système, du matériel, du fichier source, des droits ou du processus. Confirmez la couche qui fournit la preuve avant d’attribuer une cause. Un symptôme voisin ne devient ainsi pas une cause racine prétendument prouvée.

Matrice d’acceptation

Point Preuve à conserver Critère de réussite
Comment corriger les erreurs RTP/NDPI écriture inconnue État initial, une action et état obtenu Une seconde personne reproduit le résultat
Déboguer les erreurs RTP/NDPI " écriture inconnue " dans les captures RTSP en mappant les types de charge utile RTP dy État initial, une action et état obtenu Une seconde personne reproduit le résultat
Réponse rapide : vérifiez SDP avant de blâmer NDPI ou la caméra État initial, une action et état obtenu Une seconde personne reproduit le résultat
Types de charges utiles statiques et dynamiques État initial, une action et état obtenu Une seconde personne reproduit le résultat
SDP rtpmap is required for dynamic payloads État initial, une action et état obtenu Une seconde personne reproduit le résultat
Le type de charge utile change entre les sessions État initial, une action et état obtenu Une seconde personne reproduit le résultat

Isolation, reprise et transmission

Arrêtez-vous à la première limite en échec. Conservez source, projet, session ou capture, dupliquez avant toute modification destructive et changez une variable par essai. Rejouer un flux entier après plusieurs changements peut modifier le résultat sans expliquer pourquoi.

Distinguez absence de preuve et preuve d’absence. Une vue vide peut signaler mauvaise entrée, portée, filtre, permission, appareil, période ou état du projet. Vérifiez acquisition ou import avant d’interpréter décodeur, éditeur, rapport ou export.

Avant transmission, rouvrez l’artefact durable et inspectez début, point de décision et fin. Notez version, plateforme, configuration, attente, observation et reproduction minimale. Retirez ou masquez les données sensibles et confirmez l’autorisation du destinataire.

Questions et réponses

Quelle est la manière fiable la plus rapide de commencer ?

Utilisez le plus petit cas représentatif, écrivez le résultat attendu et ne changez qu’une variable. Validez le parcours de base avant d’ajouter filtres, effets, modifications, automatisation ou grande source.

Quelles preuves faut-il conserver ?

Gardez identité de l’entrée, version, plateforme, réglages, action exacte, première transition inattendue et sortie finale. Fermez puis rouvrez projet, session, rapport ou export avant de le considérer durable.

Quand faut-il répéter la procédure ?

Répétez-la après un changement pertinent d’application, système, pilote, firmware, modèle, source ou processus. Conservez le cas accepté précédent comme référence non modifiée.

Quand le résultat est-il transmissible ?

Lorsqu’une seconde personne autorisée identifie l’entrée, répète l’action, obtient le même résultat, comprend les limites et ouvre l’artefact sans état local non documenté.

Guides associés

Ces pages dans la même langue couvrent les étapes voisines sans changer le propriétaire canonique du sujet :

<!-- multilingual-blog-closeout:end -->