Correzione della deriva del timestamp RTSP: mancata corrispondenza della frequenza di clock RTP, sincronizzazione audio/video ed errori di temporizzazione dei frame

Correzione della deriva del timestamp RTSP che causava la perdita di sincronizzazione audio/video. Copre la mancata corrispondenza della frequenza di clock RTP, il jitter, la temporizzazione dei fotogrammi, i timestamp non monotoni e l'instabilità della riproduzione del flusso della telecamera.

Deriva del timestamp rtp, flusso della telecamera rtsp, frequenza di clock rtp, jitter, sincronizzazione audio video, tempistica del fotogramma, diagnostica rtsp

Uno streaming di una telecamera RTSP può connettersi correttamente, autenticarsi correttamente, restituire SDP valido, inviare pacchetti RTP e comunque comportarsi in modo anomalo. Il video potrebbe lentamente rimanere indietro rispetto al tempo reale. Audio e video potrebbero non essere sincronizzati. I frame potrebbero arrivare ma verranno riprodotti in modo non uniforme. Un registratore potrebbe creare file con una durata strana. Un giocatore può mostrare avvisi di jitter, stutter, "timestamp non monotono", "DTS non valido", "salto timestamp RTP" o "mancata corrispondenza della frequenza di clock".

Gli utenti cercano "deriva del timestamp RTP", "sincronizzazione audio video della telecamera RTSP", "frequenza di clock RTP errata", "stamp del timestamp del flusso RTSP" e "problema di temporizzazione del frame del flusso della telecamera" quando la connessione di rete funziona ma la timeline multimediale no.

Questo è esattamente il tipo di problema in cui un test riservato ai soli giocatori è troppo superficiale. Il giocatore può nascondere la sequenza temporale del pacchetto dietro il buffering e la decodifica. RTSP Inspector è utile perché la temporizzazione RTP è la prova del protocollo: tipo di payload, timestamp RTP, numero di sequenza, bit marcatore, frequenza di clock SDP, report del mittente RTCP, jitter e mappatura dell'orologio sono tutti fattori importanti.

I timestamp RTP non sono timestamp dell'orologio da parete

Un timestamp RTP è un valore di clock multimediale, non un timestamp Unix. Per i video H.264, SDP dichiara spesso un clock di 90 kHz:

a=rtpmap:96 H264/90000
90000 / 30 = 3000

Per i video a 25 fps, l'incremento è solitamente 3600:

90000 / 25 = 3600

SDP clock rate is the first clue

m=video 0 RTP/AVP 96
a=rtpmap:96 H264/90000
m=audio 0 RTP/AVP 97
a=rtpmap:97 MPEG4-GENERIC/48000/2

Se l'SDP dice che H.264 utilizza 90000, il client deve interpretare i timestamp RTP del video con quell'orologio. Se l'SDP è mancante, formato in modo errato o incoerente con il comportamento del carico utile, il client potrebbe indovinare in modo errato.

I problemi di temporizzazione SDP comuni includono:

  • Manca "a=rtpmap" per il tipo di payload dinamico.
  • Frequenza di clock audio errata.
  • Tipo di carico utile riutilizzato in modo incoerente.
  • Il firmware della fotocamera dichiara 90000 ma invia incrementi di timestamp che non corrispondono al frame rate.
  • La configurazione AAC non corrisponde alla frequenza di campionamento effettiva.
  • Più tracce utilizzano attributi di controllo confusi o duplicati.

RTSP Inspector dovrebbe aiutare a preservare l'SDP accanto alle prove RTP perché la sequenza temporale RTP non può essere interpretata correttamente senza di essa.

Numero di sequenza e timestamp

I numeri di sequenza e i timestamp RTP rispondono a domande diverse.

Il numero di sequenza aiuta a rilevare la perdita e l'ordinamento dei pacchetti:

  • È arrivato il pacchetto 1024?
  • È arrivato il pacchetto 1025?
  • Il pacchetto 1026 è arrivato prima delle 1025?
  • Mancano i pacchetti?

Il timestamp RTP aiuta a interpretare il tempo multimediale:

  • Quali pacchetti appartengono allo stesso fotogramma video?
  • Quanto tempo multimediale è passato tra i fotogrammi?
  • La telecamera è saltata in avanti o all'indietro?
  • L'audio avanza alla velocità prevista?
  • L'ora dei media corrisponde all'ora dell'orologio da parete?

Uno streaming può avere una perfetta continuità di sequenza e avere comunque timestamp interrotti. Può anche verificarsi una certa perdita di pacchetti mentre i timestamp rimangono altrimenti coerenti.

Confini dei bit marker e dei fotogrammi video

Per molti payload video RTP, il bit marcatore indica il limite del frame. Con H.264, più pacchetti RTP possono trasportare frammenti di un fotogramma video. Condividono lo stesso timestamp RTP e il bit marcatore spesso appare sull'ultimo pacchetto dell'unità di accesso.

Se i timestamp cambiano troppo spesso, non abbastanza spesso, o il comportamento dei marcatori non è coerente, la ricostruzione del frame può diventare instabile.

I sintomi includono:

  • Video intermittente senza perdita di pacchetti visibile.
  • Il decodificatore riceve frame incompleti.
  • Il registratore crea una durata del fotogramma errata.
  • La riproduzione accelera o rallenta.
  • I timestamp dei frame non sono monotoni.

Questo è il motivo per cui uno strumento diagnostico dovrebbe mostrare i metadati RTP a livello di pacchetto, non solo i frame decodificati.

Deriva della sincronizzazione audio/video

La sincronizzazione audio e video dipende dalla mappatura del timestamp RTP di ciascuna traccia multimediale su una base temporale condivisa. A questo scopo vengono spesso utilizzati i report del mittente RTCP. Un rapporto mittente può associare il timestamp RTP all'ora NTP:

RTCP SR:
NTP timestamp: wall-clock reference
RTP timestamp: media timestamp at that reference

Audio/video drift can happen when:

Timestamp jumps

Look for:

Questions to separate them:

Checklist for RTP timestamp drift

Use this workflow:

What to include in a useful report

Final diagnosis

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

Prova riproducibile per «Correzione della deriva del timestamp RTSP: mancata corrispondenza della frequenza di clock RTP, sincronizzazione audio/video ed errori di temporizzazione dei frame»

La risposta diretta è che una schermata nera o un solo codice non dimostra l’origine del guasto. Una diagnosi affidabile collega richiesta e risposta RTSP, trasporto negoziato, sessione valida e poi numeri di sequenza RTP, timestamp e segnali RTCP. Per «Correzione della deriva del timestamp RTSP: mancata corrispondenza della frequenza di clock RTP, sincronizzazione audio/video ed errori di temporizzazione dei frame» parti dal livello più vicino al sintomo visibile, ma conserva una cronologia comune per non confondere controllo, rete e decodifica.

Prima di cambiare camera, firewall o VMS, crea un test di base piccolo. Registra URL RTSP senza password, ora, percorso, trasporto richiesto, risposta del server e momento del primo pacchetto multimediale. Prova separatamente UDP e TCP interleaved quando disponibili. Non cambiare insieme percorso, credenziali e trasporto: se il secondo tentativo funziona, devi poter identificare la variabile decisiva.

Livello Evidenza da conservare Domanda
RTSP metodo, stato, header, CSeq e Session Il server ha accettato proprio questa operazione?
SDP control, payload type, clock rate e codec È descritta la traccia attesa?
Transport client_port, server_port o interleaved I due estremi usano lo stesso canale?
RTP SSRC, sequenza, timestamp e marker Le unità arrivano in ordine spiegabile?
RTCP sender report, CNAME e BYE Orologio, identità e fine sono tracciabili?
Decoder SPS/PPS/VPS e packetization mode Il payload ricevuto può inizializzare il decoder?

Separa «nessun media ricevuto» da «media ricevuto ma non decodificabile». Se RTP manca dopo SETUP e PLAY riusciti, verifica UDP, NAT, firewall e risposta Transport. Buchi nella sequenza provano perdita o riordinamento. Una sequenza continua senza immagine sposta l’indagine su payload type, clock rate, confini del frame e parametri H.264 o H.265. Questo confine è più utile del messaggio generico del player.

Come si scrive una risposta citabile?

Usa tre frasi: ultima operazione riuscita, prima evidenza fallita, prossimo test che separa due cause. Esempio: «DESCRIBE, SETUP e PLAY riescono; nessun RTP arriva alle porte annunciate; una prova TCP interleaved separerà blocco UDP e percorso media errato». Non attribuire il guasto a camera o rete senza una risposta o un pacchetto che dimostri il confine.

Quali dati rendono il caso riproducibile?

Conserva OPTIONS, DESCRIBE, SETUP e PLAY, SDP, risposta Transport e Session ripulita. Per RTP annota SSRC, prima e ultima sequenza, clock rate, buchi e durata. Indica se VLC o un altro VMS funziona, ma usalo come confronto controllato, non come prova che il client riuscito interpreti correttamente ogni regola.

Quando controllare server o client?

Controlla il server se rifiuta un metodo, fornisce un control URL assente, restituisce un trasporto incompatibile o cambia SSRC o clock senza transizione. Controlla il client se riusa un nonce scaduto, perde Session, richiede UDP senza aprire le porte o tratta ogni fine NAL come fine access unit. Se il difetto è intermedio, pacchetto e tempo devono accompagnare ogni conclusione.

Come verificare il rapporto?

Ripeti da una connessione nuova e confronta le cronologie fino alla prima differenza. Rimuovi password e valori Authorization completi. Collega ogni conclusione a CSeq, sequenza o timestamp. Segui la guida RTSP correlata e usa RTSP Inspector per testare uno stream RTSP e raccogliere prove localmente, senza caricare il video su un servizio pubblico.

<!-- rtsp-localized-evidence-foundation-v1:end --><!-- rtsp-localized-layer-verdicts-v1:start -->

Dall’osservazione al verdetto per livello

In «Correzione della deriva del timestamp RTSP: mancata corrispondenza della frequenza di clock RTP, sincronizzazione audio/video ed errori di temporizzazione dei frame» scrivi prima l’osservazione e poi l’interpretazione. Un’altra persona deve poter ritrovare l’osservazione nella cattura: stato RTSP legato a CSeq, valore SDP, risposta Transport, buco di sequenza, cambio SSRC o differenza tra RTP timestamp e RTCP sender report. “Il server è lento” o “il codec è incompatibile” resta un’ipotesi finché una prova precisa non la rende migliore delle alternative.

Dividi il percorso in confini. Prima si apre TCP, poi vengono accettati OPTIONS o DESCRIBE. SDP deve descrivere una traccia utilizzabile con control URL, payload type e clock rate. SETUP richiede una risposta Transport compatibile e PLAY una Session valida. Solo dopo vengono arrivo RTP, ordine, tempo e preparazione del decoder. Fermati al primo confine senza prova di successo.

Mantieni fonte e intervallo costanti nei confronti. UDP contro TCP interleaved usa lo stesso percorso e le stesse credenziali. Main stream contro sub stream conserva client e trasporto. Confrontando VLC e VMS, registra metodi, header e URL reali; differenze in control URL, Authorization, Session o keepalive possono spiegare il risultato più del nome del programma.

Matrice di esclusione

Parti da due ipotesi. Se non arriva media, UDP può essere bloccato oppure il server può inviare ad altre porte. TCP interleaved verifica la prima; confrontare offerta e risposta Transport, IP e porte verifica la seconda. Per immagine corrotta, la sequenza RTP separa perdita da inizializzazione incompleta, mentre SPS/PPS/VPS prima del primo frame verifica i parametri codec.

Per ogni ipotesi annota una prova favorevole e una che potrebbe smentirla. Un’affermazione che nessun pacchetto può negare è troppo ampia. “NAT elimina UDP” è smentita da RTP sulla porta client. “Mancano parametri H.264” è smentita da SPS e PPS validi prima di IDR. Il rapporto resta così prioritario.

Leggere il tempo senza conclusioni eccessive

RTSP CSeq ordina transazioni, RTP sequence ordina pacchetti, RTP timestamp esprime il tempo di campionamento e l’orologio di cattura l’arrivo al punto osservato. Non sono lo stesso orologio. Variazione di arrivo non prova drift; salto timestamp non prova perdita senza sequenza. RTCP sender report collega orologi RTP audio e video a un riferimento comune.

Pacchetto di accettazione

Chiudi il caso quando la correzione si ripete su una connessione nuova con una sola modifica documentata. Il rapporto indica input, ultimo confine riuscito, prima prova fallita, modifica, risultato e test aperti. Allega un breve transcript o statistiche mirate. Nascondi i segreti, ma conserva CSeq, Session ripulita, SSRC e intervallo.

Usa la risoluzione problemi RTSP per ricostruire il flusso e i report di RTSP Inspector per consegnare il confine al team camera, rete o VMS.

<!-- rtsp-localized-layer-verdicts-v1:end -->