RTSP über TCP Interleaved Channel Mismatch: Behebung der RTP/RTCP-Kanalzuordnung und keine Videoprobleme
So diagnostizieren Sie RTSP über TCP-Interleaved-Kanalkonflikte, RTP- und RTCP-Kanalzuordnung, Transport-Header, Interleaved=0-1, kein Video und Kamera-Medienanalysefehler.
Der verschachtelte RTSP-über-TCP-Transport wird häufig verwendet, wenn UDP-RTP durch Firewalls, NAT, VPNs oder Cloud-Relay-Pfade blockiert wird. Es kann dafür sorgen, dass ein Kamerastream über Netzwerke funktioniert, in denen UDP versagen würde. Es bringt jedoch eine weitere Klasse von Problemen mit sich: "die Nichtübereinstimmung der verschachtelten Kanäle. Die RTSP-Sitzung stellt eine Verbindung her. „DESCRIBE“ gibt SDP zurück. „SETUP“ ist erfolgreich. „PLAY“ ist erfolgreich. Medienbytes kommen über die TCP-Verbindung an. Dann zeigt der Client kein Video, kein Audio, einen unbekannten RTP-Kanal, einen fehlerhaften Interleaved-Frame oder als RTP analysierte RTCP-Pakete an." Benutzer suchen nach „RTSP über TCP interleaved kein Video“, „RTP interleaved Kanal stimmt nicht überein“, „RTSP interleaved 0-1“, „RTSP TCP-Kanalzuordnung“ und „RTP über RTSP-Analysefehler“, wenn der Steuerkanal funktioniert, die Medienanalyse jedoch fehlschlägt.
RTSP Inspector ist hier nützlich, da der wichtige Beweis im „Transport“-Header und den „$“-gerahmten verschachtelten Daten auf der RTSP-TCP-Verbindung liegt.
Was Interleaved-Transport bedeutet
Beim UDP-Transport verwendet die RTSP-Steuerung TCP und RTP/RTCP-Medien separate UDP-Ports. Beim TCP-Interleaved-Transport werden Medienpakete in die RTSP-TCP-Verbindung eingebettet.
Die „SETUP“-Antwort kann Folgendes enthalten:
Transport: RTP/AVP/TCP;unicast;interleaved=0-1
That means RTP and RTCP for that track should be carried on interleaved channels 0 and 1. Interleaved frames use a $ marker, a channel byte, a length, and then the RTP or RTCP packet.
If the client maps channels incorrectly, it may parse RTP as RTCP, audio as video, or metadata as media.
Multiple tracks create more mappings
A camera with video and audio may return separate SETUP responses:
Video Transport: RTP/AVP/TCP;unicast;interleaved=0-1
Audio Transport: RTP/AVP/TCP;unicast;interleaved=2-3
Jetzt muss der Client Folgendes zuordnen:
- Kanal 0: Video-RTP
- Kanal 1: Video-RTCP
- Kanal 2: Audio-RTP
- Kanal 3: Audio-RTCP
Wenn sich die Reihenfolge der Audio- und Video-Einrichtung ändert, werden hartcodierte Annahmen ungültig. Wenn eine Metadatenspur hinzugefügt wird, können sich die Kanalzuordnungen erneut verschieben.
Häufige Symptome
Probleme mit verschachtelten Kanälen sehen folgendermaßen aus:
- Die RTSP-Sitzung erreicht „PLAY“, aber das Video bleibt schwarz.
- RTP-Bytes kommen an, aber der Payload-Parser weist sie zurück.
- RTCP-Absenderberichte werden als Medien analysiert.
- Audiopakete werden an den Video-Depacketizer gesendet.
- Sequenznummern sehen unmöglich aus.
- Der Nutzlasttyp stimmt nicht mit SDP für diesen Track überein.
- Der Client meldet „ungültiges RTP-Paket“ oder „unbekannter Interleaved-Kanal“.
Das Netzwerk könnte in Ordnung sein. Die Kamera sendet möglicherweise Medien. Der Client liest lediglich die falsche Kanalzuordnung.
Der Transport-Header ist die Autorität
Schließen Sie die Kanalzuordnung nicht allein aus der Titelreihenfolge ab. Verwenden Sie für jedes „SETUP“ den von der Kamera zurückgegebenen „Transport“-Header.
Behalten Sie für jede Spur Folgendes bei:
- Kontroll-URL verfolgen.
- Transportmodus.
- Verschachteltes Kanalpaar.
- Nutzlasttyp von SDP.
- Media type from SDP.
Vergleichen Sie dann eingehende verschachtelte Frames mit dieser Zuordnung.
Kamera- und Proxy-Macken
Einige Kameras verhalten sich inkonsistent:
- Sie ignorieren angeforderte Interleaved-Kanalnummern und weisen eigene zu.
- Sie geben „interleaved=0-1“ für mehrere Spuren zurück.
- Sie senden RTCP auf unerwarteten Kanälen.
- Sie lassen RTCP weg.
- Ein Proxy schreibt „Transport“ neu, aber keine Medienframes.
Das sind genau die Fälle, in denen ein reiner Spielertest zu viel verbirgt. Der rohe RTSP- und Interleaved-Frame-Beweis ist wichtig.
Checkliste für das Debuggen verschachtelter Kanäle
Verwenden Sie diesen Workflow:
- Erfassen Sie SDP aus „DESCRIBE“.
- Identifizieren Sie jeden Medientitel.
- Erfassen Sie jede „SETUP“-Anfrage und Antwort.
- Zeichnen Sie „Transport“-Header und „interleaved=“-Werte auf.
- Ordnen Sie Kanalnummern zur Verfolgung und RTP/RTCP-Rolle zu.
- Überprüfen Sie eingehende „$“-Frames und Kanalbytes.
- Vergleichen Sie die RTP-Nutzlasttypen mit den SDP-Typen für diesen Track.
- Überprüfen Sie, ob RTCP auf dem erwarteten ungeraden Kanal erscheint.
- Überprüfen Sie, ob sich die Kanalzuordnungen nach der erneuten Verbindung ändern.
- Testen Sie UDP erst, nachdem Sie die TCP-Interleaved-Zuordnung verstanden haben.
Endgültige Diagnose
Bei RTSP-über-TCP-Interleaved-Problemen handelt es sich nicht immer um Netzwerkprobleme. Wenn Medien eintreffen, aber kein Video angezeigt wird, überprüfen Sie die Kanalzuordnung. Der „Transport“-Header definiert, welcher verschachtelte Kanal jeden RTP- und RTCP-Stream überträgt.
RTSP Inspector hilft, indem es sowohl die RTSP-Steuerung als auch das Interleaved Media Framing offenlegt, sodass „RTSP verbindet sich, aber kein Video“ als Kanalzuordnungsproblem und nicht als Codec- oder Firewall-Vermutung diagnostiziert werden kann.