Trasporto non corrispondente RTSP nella risposta del server: debug delle risposte SETUP della telecamera e mancata corrispondenza della modalità RTP
Come eseguire il debug degli errori di trasporto RTSP non corrispondenti quando la telecamera risponde con una modalità di trasporto RTP diversa, canali interleaved errati, porte mancanti o risposta SETUP incompatibile.
Alcuni errori RTSP non restituiscono un "461 Unsupported Transport" pulito. Invece, il client segnala "trasporto non corrispondente nella risposta del server", "intestazione di trasporto non valida", "il server ha risposto con un trasporto diverso" o "mancata corrispondenza del trasporto RTP". Ciò accade spesso quando una fotocamera accetta "SETUP" ma risponde con un'intestazione "Transport" che non corrisponde a ciò che il client ha richiesto o a ciò che il client può analizzare.
Gli utenti cercano "trasporto RTSP non corrispondente nella risposta del server", "trasporto non corrispondente ffmpeg", "mancata corrispondenza trasporto RTSP SETUP" e "intestazione trasporto telecamera non valida" perché lo streaming potrebbe funzionare in un lettore e fallire in un altro. La fotocamera non è semplicemente irraggiungibile. La negoziazione dei trasporti RTSP è incoerente.
RTSP Inspector è utile perché le intestazioni della richiesta e della risposta devono essere confrontate direttamente.
Come si presenta uno scambio SETUP corrispondente
Il client richiede TCP interleaved:
Transport: RTP/AVP/TCP;unicast;interleaved=0-1
Server replies with compatible TCP interleaved transport:
Transport: RTP/AVP/TCP;unicast;interleaved=0-1;ssrc=12345678
Il client richiede UDP:
Transport: RTP/AVP;unicast;client_port=50000-50001
Server replies with UDP ports:
Transport: RTP/AVP;unicast;client_port=50000-50001;server_port=6970-6971
Se il server cambia la modalità di trasporto, omette i campi obbligatori o restituisce valori non corretti, i client strict potrebbero non riuscire.
Casi comuni di mancata corrispondenza
Esempi comuni includono:
- Il client richiede TCP, il server risponde UDP.
- Il client richiede UDP, il server risponde TCP.
- Il server omette
interleaved=. - Il server restituisce i numeri di canale errati.
- Il server restituisce valori "client_port" diversi dalla richiesta.
- Il server omette "server_port" per UDP.
- Il server restituisce multicast quando il client ha richiesto unicast.
- Il server restituisce più alternative di trasporto in un formato non supportato.
- Il proxy riscrive la richiesta ma non la risposta.
Alcuni clienti tollerano queste stranezze. Altri li rifiutano.
Perché un giocatore funziona e un altro fallisce
Le implementazioni RTSP variano. Un giocatore tollerante può accettare una risposta di trasporto malformata o inaspettata e continuare. Uno strumento più rigoroso potrebbe fallire perché la risposta viola le sue aspettative.
Ciò non significa automaticamente che il cliente severo abbia torto. Ciò significa che il comportamento della fotocamera o del proxy deve essere ispezionato.
Per la diagnostica professionale, conservare:
- L'intestazione di trasporto richiesta.
- La risposta di trasporto del server.
- Tieni traccia dell'URL.
- Identificativo della sessione.
- Se i pacchetti RTP arrivano successivamente.
Riscrittura di proxy e relè
I relè compatibili con RTSP possono riscrivere le intestazioni di trasporto per collegare i percorsi UDP e TCP. Se la riscrittura è incompleta, il client downstream vede una risposta che non corrisponde alla sua richiesta.
Esempi:
- Il client richiede TCP dal relè.
- Il relè richiede UDP dalla telecamera.
- Il relè inoltra accidentalmente la risposta di trasporto UDP della telecamera a valle.
Il client segnala un trasporto non corrispondente anche se la telecamera e il relè hanno fatto qualcosa di parzialmente valido.
Elenco di controllo del debug
Utilizza questo processo:
- Cattura la richiesta "SETUP".
- Cattura la risposta "SETUP".
- Confronta i protocolli di trasporto: UDP, TCP interleaved, multicast.
- Confronta unicast/multicast.
- Confronta porte client, porte server e canali interleaved.
- Controlla se nel percorso è presente un proxy/restreamer.
- Controlla se i pacchetti RTP successivi seguono la mappatura della risposta.
- Confronta un giocatore tollerante e un cliente severo utilizzando l'evidenza dei pacchetti.
- Se possibile, prova l'URL diretto della fotocamera.
- Segnalare l'esatta coppia di trasporto al venditore.
Diagnosi finale
"Trasporto non corrispondente nella risposta del server" significa che la negoziazione "SETUP" ha prodotto una risposta di trasporto incompatibile o non valida. La telecamera o il relè potrebbero modificare la modalità RTP, omettere campi o restituire valori che il client non può utilizzare in sicurezza.
RTSP Inspector aiuta rendendo visibile la coppia richiesta/risposta di trasporto, che è l'unico modo affidabile per diagnosticare questa classe di errori RTSP.