Debug URL controllo aggregato RTSP: controllo SDP:*, URL traccia, SETUP 404 e PLAY non riusciti
Come risolvere i problemi relativi agli URL di controllo aggregato RTSP, agli attributi di controllo SDP:*, ai percorsi di controllo a livello di traccia, agli errori SETUP 404, agli errori PLAY e ai bug di costruzione dell'URL della fotocamera.
Gli URL delle telecamere RTSP spesso falliscono perché il client crea l'URL di controllo errato da SDP. Gli utenti cercano "RTSP SETUP 404", "SDP control star", "RTSP aggregate control URL", "RTSP track URL wrong", "DESCRIBE funziona ma SETUP fallisce" e "PLAY fallisce dopo SETUP" quando una telecamera restituisce SDP correttamente ma il supporto non si avvia mai.
L'ispettore RTSP è utile perché questo errore non riguarda la capacità del lettore di disegnare video. Riguarda se il client RTSP ha interpretato correttamente gli attributi "controllo" a livello di sessione e a livello di supporto.
Il sintomo comune
Una traccia tipica è simile alla seguente:
DESCRIBE rtsp://camera/live
200 OK
SDP contains a=control:*
SDP video media contains a=control:trackID=1
SETUP rtsp://camera/trackID=1
404 Not Found
The camera did not necessarily reject RTSP. The client may have constructed SETUP with the wrong base URL.
Session-level and media-level control
SDP can contain control attributes at different levels:
a=control:*
m=video 0 RTP/AVP 96
a=control:trackID=1
m=audio 0 RTP/AVP 97
a=control:trackID=2
Il controllo a livello di sessione può identificare la risorsa aggregata utilizzata per "PLAY" e "PAUSE". Il controllo a livello multimediale identifica ciascuna traccia RTP utilizzata per "SETUP".
Se un client tratta ogni valore "control" come un percorso assoluto, può creare URL non validi.
URL di controllo relativi e assoluti
I valori di controllo RTSP SDP possono essere:
- URL RTSP assoluti.
- Percorsi relativi.
- Traccia gli identificatori.
- "*" controllo aggregato.
- Percorsi specifici del fornitore.
Esempi:
a=control:rtsp://192.168.1.10/live/trackID=1
a=control:trackID=1
a=control:streamid=0
a=control:video
a=control:*
The client must combine relative track control values with the correct base URL. A tiny difference such as /live/trackID=1 vs /trackID=1 can turn a working camera into a 404 Not Found.
DESCRIBE succeeds but SETUP fails
This is one of the strongest search patterns for this article. DESCRIBE proves the camera accepted the main URL and returned SDP. SETUP failure points to transport negotiation, track URL construction, unsupported media track, or camera firmware behavior.
Evidence to collect:
- Original DESCRIBE URL.
- Content-Base header if present.
- Content-Location header if present.
- Session-level
a=control. - Media-level
a=controlfor each track. - Exact SETUP URL.
- SETUP response status.
- Transport header used by SETUP.
Without the SETUP URL, the diagnosis is incomplete.
Content-Base and Content-Location
Some cameras include Content-Base or Content-Location headers in the DESCRIBE response. These headers can affect how relative SDP control paths should be resolved.
Failure patterns:
- Client ignores
Content-Base. - Client uses the original DESCRIBE URL when camera intended a different base.
- Camera returns a base URL with trailing slash differences.
- Proxy rewrites the RTSP URL but not SDP.
- Client normalizes away a path component needed by the camera.
These details are exactly why protocol evidence matters.
PLAY uses aggregate control
After SETUP succeeds for one or more tracks, PLAY may need to target the aggregate control URL instead of a single track URL. Some cameras accept either. Others are strict.
Search symptoms:
- "RTSP SETUP works but PLAY fails"
- "RTSP 460 Only Aggregate Operation Allowed"
- "RTSP PLAY 404"
- "RTSP track SETUP OK no video"
If PLAY targets the wrong URI, the RTP stream may never start even though SETUP returned 200 OK.
Multi-track audio and video
The bug is easier to see when both audio and video exist:
m=video ...
a=control:trackID=1
m=audio ...
a=control:trackID=2
Il cliente deve IMPOSTARE entrambe le tracce con i propri URL di controllo, quindi RIPRODURRE l'URL aggregato corretto. Se il client configura solo il video ma PLAY ha come target l'audio o se unisce entrambe le tracce in un unico URL di CONFIGURAZIONE, la fotocamera potrebbe restituire un errore che non sembra correlato.
URL del profilo ONVIF e URL della traccia RTSP
ONVIF può segnalare URI di flusso che differiscono dagli URL di traccia SDP finali. Un URI di flusso da ONVIF può essere valido per DESCRIBE ma non direttamente valido per ogni richiesta SETUP.
Ciò crea la frase di supporto comune: "ONVIF funziona ma l'URL RTSP non riesce". Il passaggio diagnostico successivo consiste nell'esaminare l'SDP e gli URL SETUP derivati, non nel continuare a generare nuovi URL ONVIF.
Elenco di controllo del debug
Utilizza questo flusso di lavoro:
- Cattura la risposta DESCRIBE.
- Salva "Content-Base" e "Content-Location".
- Estrai "a=control" a livello di sessione.
- Estrai ogni "a=control" a livello multimediale.
- Crea manualmente l'URL di configurazione previsto.
- Confrontarlo con l'URL di configurazione del client.
- Controlla se il SETUP fallisce con 404, 461 o 500.
- Conferma se i target PLAY aggregano o monitorano l'URL.
- Controlla il comportamento audio/video multitraccia.
- Conserva le esatte righe di richiesta RTSP per il supporto del fornitore.
Diagnosi finale
I bug del controllo aggregato RTSP si nascondono nell'interpretazione SDP. Una telecamera può accettare DESCRIBE e comunque rifiutare SETUP o PLAY se il client crea la traccia errata o l'URL di controllo aggregato.
RTSP Inspector aiuta a esporre gli attributi di controllo SDP, le intestazioni Content-Base, gli URL SETUP e il target PLAY in modo che gli ingegneri possano dimostrare se il problema è la costruzione dell'URL, la rigidità della fotocamera, la riscrittura del proxy o la gestione SDP lato client.
<!-- rtsp-localized-evidence-foundation-v1:start -->Prova riproducibile per «Debug URL controllo aggregato RTSP: controllo SDP:*, URL traccia, SETUP 404 e PLAY non riusciti»
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 «Debug URL controllo aggregato RTSP: controllo SDP:*, URL traccia, SETUP 404 e PLAY non riusciti» 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 «Debug URL controllo aggregato RTSP: controllo SDP:*, URL traccia, SETUP 404 e PLAY non riusciti» 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 -->