En-tête de plage RTSP et npt=now : débogage des erreurs d'heure de début, de reprise et de recherche de caméra en direct

Comment dépanner les en-têtes de plage RTSP, npt=maintenant, la lecture de la caméra en direct, le comportement de reprise, l'heure de démarrage incorrecte, la recherche invalide, les requêtes PLAY et le timing de réponse du serveur.


RTSP PLAY semble simple jusqu'à ce qu'une caméra, un NVR ou un serveur multimédia interprète l'heure de début différemment du client. Un flux en direct peut démarrer tardivement, redémarrer à partir d'un point inattendu, échouer après une pause/reprise ou renvoyer une erreur lorsque le client envoie un en-tête « Range ». Les utilisateurs recherchent "RTSP Range npt now", "RTSP PLAY start time", "RTSP live stream mauvais démarrage", "RTSP seek not working" et "caméra reprise RTSP stream" lorsque le flux se connecte mais que le timing de lecture se comporte incorrectement.

L'en-tête « Range » est une instruction de synchronisation de la couche de contrôle. Ce n'est pas la même chose que l'horodatage RTP, l'heure de l'horloge murale ou l'horodatage du fichier enregistreur. L'inspecteur RTSP est utile car ce problème se situe dans la séquence de la méthode RTSP et doit être comparé au timing multimédia RTP/RTCP après « PLAY ».

Que signifie la plage dans RTSP

Pendant PLAY, un client peut envoyer :

PLAY rtsp://camera/stream RTSP/1.0
Session: 12345678
Range: npt=now-

For a live stream, npt=now- usually means "start playing from the current live point." Some clients omit the Range header. Some send npt=0.000-. Some NVRs use clock-based ranges for recorded playback.

Different RTSP servers vary in how strictly they interpret these values.

Live stream vs recorded stream

Live streams and recorded streams have different expectations:

  • Live camera stream: current live media point.
  • NVR playback: requested recording time range.
  • Media file: offset into stored content.
  • Replay server: session-specific timeline.

A Range value that is valid for a file may be invalid for a live camera. A Range value that works for one NVR may not work for another vendor.

Common symptoms

Range-related problems include:

  • PLAY fails only when Range is present.
  • Stream starts but with long delay.
  • Resume after pause fails.
  • Client receives old buffered video.
  • NVR playback starts at wrong time.
  • RTP timestamps jump after resume.
  • Camera ignores Range but returns 200 OK.
  • Server returns invalid Range response.

The player may show this as buffering or black video, but the root evidence is in PLAY.

Server response matters

After PLAY, the server may return a Range header:

RTSP/1.0 200 OK
Range: npt=0.000-
RTP-Info: url=...;seq=...;rtptime=...

RTP-Info peut mapper la réponse de contrôle aux valeurs initiales de la séquence RTP et de l'horodatage. Si « RTP-Info » est manquant, erroné ou incohérent, les clients peuvent avoir du mal à aligner le timing des médias.

Inspecter:

  • Gamme envoyée par le client.
  • Plage renvoyée par le serveur.
  • Séquence RTP-Info et rtptime.
  • Première séquence RTP après PLAY.
  • Premier horodatage RTP après PLAY.

Pause et reprise

Certaines caméras prennent en charge « PAUSE » ; d'autres ne le prennent pas bien en charge pour les diffusions en direct. Un client peut faire une pause et envoyer plus tard « PLAY » avec une valeur Range que le serveur traite comme une recherche. Le serveur peut le rejeter ou redémarrer le flux.

Si la reprise s'interrompt, comparez le premier « PLAY » avec la reprise « PLAY ».

Liste de contrôle de débogage

Utilisez ce processus :

  1. Capturez la demande et la réponse « PLAY ».
  2. Vérifiez si le client envoie « Range ».
  3. Enregistrez la valeur exacte : npt=now-, npt=0-, plage d'horloge ou absent.
  4. Vérifiez la plage de réponse du serveur et les informations RTP.
  5. Comparez la première séquence/horodatage RTP après PLAY.
  6. Testez avec et sans Range si le client le permet.
  7. Testez le flux en direct et la lecture enregistrée séparément.
  8. Vérifiez la séquence de la méthode pause/reprise.
  9. Évitez de blâmer RTP jusqu'à ce que le timing « PLAY » soit compris.
  10. Préservez l’intégralité du flux de contrôle RTSP pour le diagnostic du fournisseur.

Diagnostic final

Les problèmes de plage RTSP sont des problèmes de synchronisation de contrôle de lecture. Le flux peut s'authentifier et être configuré correctement, mais « PLAY » peut toujours démarrer à partir du mauvais point ou échouer car le serveur n'accepte pas la plage demandée.

RTSP Inspector aide en affichant ensemble la plage, les informations RTP et les premiers paquets RTP, afin que les problèmes d'heure de début de lecture en direct puissent être diagnostiqués à partir des preuves de protocole.

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

Preuve reproductible pour « En-tête de plage RTSP et npt=now : débogage des erreurs d'heure de début, de reprise et de recherche de caméra en direct »

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 « En-tête de plage RTSP et npt=now : débogage des erreurs d'heure de début, de reprise et de recherche de caméra en direct », 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 à « En-tête de plage RTSP et npt=now : débogage des erreurs d'heure de début, de reprise et de recherche de caméra en direct » est la suivante : Comment dépanner les en-têtes de plage RTSP, npt=maintenant, la lecture de la caméra en direct, le comportement de reprise, l'heure de démarrage incorrecte, la recherche invalide, les requêtes PLAY et le timing de réponse du serveur. 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 : En-tête de plage RTSP et npt=now : débogage des erreurs d'heure de début, de reprise et de

Pour « En-tête de plage RTSP et npt=now : débogage des erreurs d'heure de début, de reprise et de recherche de caméra en direct », 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 2 : Comment dépanner les en-têtes de plage RTSP, npt=maintenant, la lecture de la caméra en di

Ne fermez « Comment dépanner les en-têtes de plage RTSP, npt=maintenant, la lecture de la caméra en direct, le comportement de reprise, l'heure de démarrage incor » 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 3 : Que signifie la plage dans RTSP

Pour « Que signifie la plage dans RTSP », 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 4 : Live stream vs recorded stream

Ne fermez « Live stream vs recorded stream » 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 5 : Common symptoms

Pour « Common symptoms », 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 6 : Server response matters

Ne fermez « Server response matters » 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 7 : Pause et reprise

Pour « Pause et reprise », 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 8 : Liste de contrôle de débogage

Ne fermez « Liste de contrôle de débogage » 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 9 : Diagnostic final

Pour « Diagnostic final », 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 10 : Preuve reproductible pour « En-tête de plage RTSP et npt=now : débogage des erreurs d'heur

Ne fermez « Preuve reproductible pour « En-tête de plage RTSP et npt=now : débogage des erreurs d'heure de début, de reprise et de recherche de caméra en direct » » 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.

Matrice d’acceptation

Point Preuve à conserver Critère de réussite
En-tête de plage RTSP et npt=now : débogage des erreurs d'heure de début, de reprise et de recherche de caméra en direct État initial, une action et état obtenu Une seconde personne reproduit le résultat
Comment dépanner les en-têtes de plage RTSP, npt=maintenant, la lecture de la caméra en direct, le comportement de repri État initial, une action et état obtenu Une seconde personne reproduit le résultat
Que signifie la plage dans RTSP État initial, une action et état obtenu Une seconde personne reproduit le résultat
Live stream vs recorded stream État initial, une action et état obtenu Une seconde personne reproduit le résultat
Common symptoms État initial, une action et état obtenu Une seconde personne reproduit le résultat
Server response matters É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 -->