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.
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 --><!-- multilingual-blog-closeout:start -->Risposta diretta e confine di accettazione
La risposta breve a «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. Tratta questa frase come un risultato da verificare, non come una promessa per ogni input, dispositivo, progetto o ambiente. Un risultato completo registra stato iniziale, azione esatta, output visibile e condizione che dimostra la conclusione dell’attività in RTSP Inspector.
Procedura basata sulle prove
Parti da un caso piccolo e ripetibile prima di modificare un progetto intero. Registra versione, sistema operativo, identità dell’input o dispositivo, impostazioni rilevanti e risultato atteso. Esegui un’azione deliberata, conserva la prima transizione inattesa e confrontala con un caso noto quando disponibile. Cambiare più controlli insieme nasconde quale condizione ha creato o corretto il problema.
Punto di controllo 1: Correzione della deriva del timestamp RTSP: mancata corrispondenza della frequenza di cloc
Se «Correzione della deriva del timestamp RTSP: mancata corrispondenza della frequenza di clock RTP, sincronizzazione audio/video ed errori di temporizzaz» è ambiguo, confronta un caso valido e uno fallito nelle stesse condizioni. Segna la prima differenza significativa invece di elencare tutti i sintomi successivi. Quel confine produce una richiesta di supporto più chiara e un esperimento più sicuro.
Punto di controllo 2: Correzione della deriva del timestamp RTSP che causava la perdita di sincronizzazione audi
Verifica «Correzione della deriva del timestamp RTSP che causava la perdita di sincronizzazione audio/video. Copre la mancata corrispondenza della frequenza di » con il più piccolo input rappresentativo. Mantieni invariate le impostazioni non correlate, ripeti la stessa azione e controlla il risultato dopo riapertura o riconnessione. Un’immagine isolata è più debole di un record con input, impostazione, azione, output e ora.
Punto di controllo 3: I timestamp RTP non sono timestamp dell'orologio da parete
Se «I timestamp RTP non sono timestamp dell'orologio da parete» è ambiguo, confronta un caso valido e uno fallito nelle stesse condizioni. Segna la prima differenza significativa invece di elencare tutti i sintomi successivi. Quel confine produce una richiesta di supporto più chiara e un esperimento più sicuro.
Punto di controllo 4: SDP clock rate is the first clue
Verifica «SDP clock rate is the first clue» con il più piccolo input rappresentativo. Mantieni invariate le impostazioni non correlate, ripeti la stessa azione e controlla il risultato dopo riapertura o riconnessione. Un’immagine isolata è più debole di un record con input, impostazione, azione, output e ora.
Punto di controllo 5: Numero di sequenza e timestamp
Se «Numero di sequenza e timestamp» è ambiguo, confronta un caso valido e uno fallito nelle stesse condizioni. Segna la prima differenza significativa invece di elencare tutti i sintomi successivi. Quel confine produce una richiesta di supporto più chiara e un esperimento più sicuro.
Punto di controllo 6: Confini dei bit marker e dei fotogrammi video
Verifica «Confini dei bit marker e dei fotogrammi video» con il più piccolo input rappresentativo. Mantieni invariate le impostazioni non correlate, ripeti la stessa azione e controlla il risultato dopo riapertura o riconnessione. Un’immagine isolata è più debole di un record con input, impostazione, azione, output e ora.
Punto di controllo 7: Deriva della sincronizzazione audio/video
Se «Deriva della sincronizzazione audio/video» è ambiguo, confronta un caso valido e uno fallito nelle stesse condizioni. Segna la prima differenza significativa invece di elencare tutti i sintomi successivi. Quel confine produce una richiesta di supporto più chiara e un esperimento più sicuro.
Punto di controllo 8: Timestamp jumps
Verifica «Timestamp jumps» con il più piccolo input rappresentativo. Mantieni invariate le impostazioni non correlate, ripeti la stessa azione e controlla il risultato dopo riapertura o riconnessione. Un’immagine isolata è più debole di un record con input, impostazione, azione, output e ora.
Punto di controllo 9: Checklist for RTP timestamp drift
Se «Checklist for RTP timestamp drift» è ambiguo, confronta un caso valido e uno fallito nelle stesse condizioni. Segna la prima differenza significativa invece di elencare tutti i sintomi successivi. Quel confine produce una richiesta di supporto più chiara e un esperimento più sicuro.
Punto di controllo 10: What to include in a useful report
Verifica «What to include in a useful report» con il più piccolo input rappresentativo. Mantieni invariate le impostazioni non correlate, ripeti la stessa azione e controlla il risultato dopo riapertura o riconnessione. Un’immagine isolata è più debole di un record con input, impostazione, azione, output e ora.
Matrice di accettazione
| Punto | Prova da conservare | Criterio di superamento |
|---|---|---|
| Correzione della deriva del timestamp RTSP: mancata corrispondenza della frequenza di clock RTP, sincronizzazione audio/ | Stato iniziale, un’azione e stato risultante | Una seconda persona riproduce il risultato |
| Correzione della deriva del timestamp RTSP che causava la perdita di sincronizzazione audio/video. Copre la mancata corr | Stato iniziale, un’azione e stato risultante | Una seconda persona riproduce il risultato |
| I timestamp RTP non sono timestamp dell'orologio da parete | Stato iniziale, un’azione e stato risultante | Una seconda persona riproduce il risultato |
| SDP clock rate is the first clue | Stato iniziale, un’azione e stato risultante | Una seconda persona riproduce il risultato |
| Numero di sequenza e timestamp | Stato iniziale, un’azione e stato risultante | Una seconda persona riproduce il risultato |
| Confini dei bit marker e dei fotogrammi video | Stato iniziale, un’azione e stato risultante | Una seconda persona riproduce il risultato |
Isolamento, ripristino e consegna
Fermati al primo confine che fallisce. Conserva sorgente, progetto, sessione o cattura, crea una copia prima di modifiche distruttive e cambia una variabile per esperimento. Ripetere un flusso ampio dopo più cambiamenti può dare un esito diverso senza spiegarlo.
Separa assenza di prove da prova di assenza. Una vista vuota può indicare input, ambito, filtro, permesso, dispositivo, intervallo o stato errato. Verifica acquisizione o importazione prima di interpretare decoder, editor, report o esportazione.
Prima della consegna, riapri l’artefatto e controlla inizio, punto decisionale e fine. Registra versione, piattaforma, configurazione, attesa, osservazione e riproduzione minima. Rimuovi o oscura dati sensibili e verifica l’autorizzazione del destinatario.
Domande e risposte
Qual è il modo affidabile più rapido per iniziare?
Usa il più piccolo caso rappresentativo, scrivi il risultato atteso e cambia una variabile. Conferma il percorso base prima di aggiungere filtri, effetti, modifiche, automazione o una sorgente maggiore.
Quali prove vanno salvate?
Conserva identità dell’input, versione, piattaforma, impostazioni, azione esatta, prima transizione inattesa e output finale. Chiudi e riapri progetto, sessione, report o export prima di considerarli durevoli.
Quando va ripetuta la procedura?
Ripetila dopo cambiamenti rilevanti ad applicazione, sistema, driver, firmware, modello, sorgente o workflow. Conserva il caso accettato precedente come riferimento non modificato.
Quando il risultato è pronto per la consegna?
Quando un’altra persona autorizzata identifica l’input, ripete l’azione, vede lo stesso risultato, comprende i limiti e apre l’artefatto senza stato locale non documentato.
Guide correlate
Queste pagine nella stessa lingua coprono le fasi vicine senza cambiare il proprietario canonico dell’argomento:
- Modifica RTP SSRC durante il flusso: debug di riavvii della telecamera, modifiche alla sorgente del flusso, reimpostazioni della sequenza e
- Correzione errore RTP nel flusso primario: diagnostica perdita di pacchetti, blocchi della fotocamera e macroblocchi in RTSP
- Errore interno del server RTSP 500: percorso del flusso della telecamera, risorsa codificatore, firmware e diagnostica della sessione