ONVIF funktioniert, aber die RTSP-URL schlägt fehl: Den echten Kamera-Stream-Pfad finden
Warum die ONVIF-Erkennung funktionieren kann, während der RTSP-Stream ausfällt, und wie man Kameraprofile, Medien-URLs, Authentifizierung, Transport und SDP-Beweise debuggt.
Es kommt häufig vor, dass eine IP-Kamera bei der ONVIF-Erkennung korrekt angezeigt wird, während die RTSP-URL immer noch fehlschlägt. Das Gerät ist im Netzwerk sichtbar, der Kameraname und das Modell werden erkannt, vielleicht werden sogar die Profile aufgelistet, aber der eigentliche Videostream öffnet sich nicht. Benutzer suchen nach „ONVIF funktioniert, aber RTSP schlägt fehl“, „Kamera entdeckt, aber kein RTSP-Video“ oder „So finden Sie die RTSP-URL von ONVIF“, weil der Erfolg der Erkennung den Eindruck erweckt, dass er den Streaming-Erfolg garantieren sollte.
Das ist nicht der Fall.
ONVIF und RTSP hängen in vielen Kamera-Workflows zusammen, sind jedoch nicht dasselbe Protokoll und beweisen nicht dasselbe. ONVIF kann Ihnen mitteilen, dass eine Kamera vorhanden ist, und möglicherweise ein Medienprofil bereitstellen. RTSP muss sich weiterhin authentifizieren, den Stream beschreiben, den Transport aushandeln, RTP-Tracks einrichten und Medienpakete zustellen.
RTSP Inspector konzentriert sich auf die zweite Hälfte: was tatsächlich passiert, wenn eine bestimmte RTSP-URL verwendet wird.
Was ONVIF beweist
Die Entdeckung von ONVIF kann Folgendes beweisen:
- Die Kamera reagiert auf WS-Discovery.
- Die Kamera stellt einen ONVIF-Dienstendpunkt bereit.
- Der Client kann auf die Kameraverwaltungsschnittstelle zugreifen.
- Die Kamera verfügt möglicherweise über ein oder mehrere Medienprofile.
- Das Gerät kann Stream-URIs über ONVIF-Mediendienste melden.
Das ist nützlich, aber es ist nicht dasselbe wie der Nachweis, dass der RTSP-Stream funktioniert. Die ONVIF-Erkennung verwendet möglicherweise einen anderen Port, ein anderes Authentifizierungsverhalten und einen anderen Dienstpfad als RTSP.
Eine Kamera kann die ONVIF-Erkennung bestehen und dennoch RTSP nicht bestehen, weil:
- RTSP ist in den Kameraeinstellungen deaktiviert.
- Das ONVIF-Konto verfügt nicht über die RTSP-Berechtigung.
- Der zurückgegebene Stream-URI ist unvollständig oder nur intern.
- Der RTSP-Port wird durch eine Firewall blockiert.
- Die Kamera benötigt TCP-Interleaved-Transport, aber der Client versucht es mit UDP.
- Das Profil verweist auf H.265, aber der Client erwartet H.264.
- Der NVR-Kanalpfad ist falsch.
- Die Kamera gibt SDP zurück, sendet aber keine RTP-Pakete.
Der ONVIF-Stream-URI ist möglicherweise nicht direkt verwendbar
Einige Kameras geben über ONVIF einen RTSP-URI zurück, der verwendbar aussieht, aber noch geändert werden muss. Zum Beispiel:
rtsp://192.168.1.50/Streaming/Channels/101
The real usable URL may need:
ONVIF profile does not guarantee codec support
The symptom may be:
RTSP Inspector helps by separating the layers:
RTSP transport can fail after ONVIF succeeds
This is common when:
Authentication can differ between ONVIF and RTSP
You may see:
RTSP/1.0 401 Unauthorized
WWW-Authenticate: Digest realm="IP Camera", nonce="..."
obwohl die ONVIF-Erkennung funktioniert hat. Das bedeutet, dass der RTSP-Dienst nach Anmeldeinformationen fragt. Wenn der Client Anmeldeinformationen sendet und die Kamera weiterhin „401“ zurückgibt, überprüfen Sie die Kontoberechtigungen, die Digest-Authentifizierung, die URL-Kodierung und die Kanalrechte.
NVRs machen dies verwirrender, da das ONVIF-Gerät möglicherweise der NVR ist, während der RTSP-Stream-Pfad auf einen Kamerakanal hinter dem NVR verweist. Dem Konto ist es möglicherweise gestattet, den NVR abzufragen, jedoch nicht den Hauptstream von Kanal 1 zu streamen.
Verwirrung zwischen Mainstream und Substream
Viele Kameras stellen mehrere Profile zur Verfügung:
- Hauptstream: hohe Auflösung, hohe Bitrate, oft H.265.
- Substream: niedrigere Auflösung, niedrigere Bitrate, oft H.264.
- Mobiler Stream: kleine Bildgröße und niedrigere Bildrate.
ONVIF gibt möglicherweise standardmäßig eines dieser Profile zurück. Die aus einem Forum oder einer Anbieter-PDF kopierte RTSP-URL verweist möglicherweise auf eine andere. Wenn der Hauptstream H.265 ist, der Client jedoch nur H.264 unterstützt, funktioniert der Substream möglicherweise, während der Hauptstream ausfällt.
Suchanfragen wie „RTSP-Hauptstream funktioniert nicht, Substream funktioniert“ gehören häufig zu dieser Kategorie. Das Problem ist nicht die Entdeckung. Dabei handelt es sich um Profilauswahl, Codec-Auswahl, Bitrate oder Transportverhalten.
So debuggen Sie ONVIF, aber RTSP schlägt fehl
Verwenden Sie eine mehrschichtige Checkliste:
- Bestätigen Sie, dass der RTSP-Dienst der Kamera aktiviert ist.
- Stellen Sie sicher, dass der RTSP-Port, normalerweise 554, vom Client aus erreichbar ist.
- Holen Sie sich das ONVIF-Medienprofil und den Stream-URI.
- Normalisieren Sie die RTSP-URL für den Netzwerkpfad, den Sie tatsächlich verwenden.
- Fügen Sie die Anmeldeinformationen sorgfältig hinzu und kodieren Sie Sonderzeichen per URL.
- Führen Sie RTSP „OPTIONS“ und „DESCRIBE“ aus.
- Überprüfen Sie Authentifizierungsherausforderungen und -antworten.
- Überprüfen Sie SDP auf Codec, Nutzlasttyp, Taktrate und Track-Control-URLs.
- Vergleichen Sie den interleaved UDP- und TCP-Transport.
- Bestätigen Sie, dass RTP-Pakete nach „PLAY“ eintreffen.
- Überprüfen Sie die Kontinuität der RTP-Sequenz, die Zeitstempel und den Nutzlasttyp.
- Testen Sie Haupt-Stream und Sub-Stream getrennt.
Diese Checkliste verhindert einen häufigen Fehler: den Erfolg der ONVIF-Erkennung als Beweis dafür zu betrachten, dass das Medien-Streaming automatisch funktionieren sollte.
Was der RTSP-Trace anzeigen soll
Ein gesunder RTSP-Flow sieht normalerweise so aus:
OPTIONS rtsp://camera/stream RTSP/1.0
RTSP/1.0 200 OK
DESCRIBE rtsp://camera/stream RTSP/1.0
RTSP/1.0 200 OK
Content-Type: application/sdp
SETUP rtsp://camera/stream/trackID=1 RTSP/1.0
RTSP/1.0 200 OK
Transport: RTP/AVP/TCP;unicast;interleaved=0-1
PLAY rtsp://camera/stream RTSP/1.0
RTSP/1.0 200 OK
Final diagnosis
<!-- rtsp-localized-evidence-foundation-v1:start -->Reproduzierbarer Nachweis für „ONVIF funktioniert, aber die RTSP-URL schlägt fehl: Den echten Kamera-Stream-Pfad finden“
Die direkte Antwort lautet: Eine Kamerastream-Störung wird nicht durch ein einzelnes Player-Fenster oder einen Statuscode bewiesen. Die belastbare Diagnose verbindet RTSP-Anfrage und Antwort, die ausgehandelte Transportart, eine gültige Session und anschließend RTP-Sequenznummern, Zeitstempel sowie RTCP-Belege. Beginnen Sie bei „ONVIF funktioniert, aber die RTSP-URL schlägt fehl: Den echten Kamera-Stream-Pfad finden“ an der Schicht, die dem sichtbaren Symptom am nächsten liegt, behalten Sie aber eine gemeinsame Zeitleiste, damit Steuerungs-, Netzwerk- und Decoderfehler nicht vermischt werden.
Erstellen Sie vor Änderungen an Kamera, Firewall oder VMS einen kleinen Ausgangstest. Notieren Sie die bereinigte RTSP-URL, Uhrzeit, Pfad, angeforderten Transport, Serverantwort und den Zeitpunkt des ersten Medienpakets. Testen Sie UDP und TCP interleaved getrennt, sofern das Gerät beides anbietet. Ändern Sie nicht gleichzeitig Pfad, Zugangsdaten und Transport. Sonst zeigt ein erfolgreicher zweiter Versuch nicht, welche Variable den Fehler beseitigt hat.
| Prüfschicht | Zu sichernder Nachweis | Entscheidungsfrage |
|---|---|---|
| RTSP | Methode, Status, Header, CSeq und Session | Hat der Server genau diese Operation akzeptiert? |
| SDP | control, Payload-Typ, Clock Rate und Codec | Beschreibt der Server den erwarteten Medientrack? |
| Transport | client_port, server_port oder interleaved | Verwenden beide Seiten denselben Kanal? |
| RTP | SSRC, Sequenz, Timestamp und Marker | Kommen Medieneinheiten in erklärbarer Reihenfolge an? |
| RTCP | Sender Report, CNAME und BYE | Sind Uhr, Identität und Sitzungsende nachvollziehbar? |
| Decoder | SPS/PPS/VPS und Packetization Mode | Lassen sich die angekommenen Nutzdaten initialisieren? |
Trennen Sie „keine Medien angekommen“ von „Medien angekommen, aber nicht decodierbar“. Fehlt RTP nach erfolgreichem SETUP und PLAY, prüfen Sie UDP-Pfad, NAT, Firewall und einen abweichenden Transport-Reply. RTP mit Sequenzlücken belegt Verlust oder Reordering. Eine lückenlose Folge ohne Bild verschiebt die Prüfung auf Payload-Typ, Clock Rate, Frame-Grenzen und H.264-/H.265-Parameter. Diese Grenze ist aussagekräftiger als eine allgemeine Player-Meldung.
Wie formuliert man eine zitierfähige Kurzantwort?
Nennen Sie in drei Sätzen die letzte erfolgreiche Operation, den ersten fehlgeschlagenen Beleg und den nächsten trennenden Test. Beispielstruktur: „DESCRIBE, SETUP und PLAY waren erfolgreich. An den angekündigten Client-Ports kam kein RTP an. Ein Test über TCP interleaved trennt UDP-Blockierung von einem falschen Medienpfad.“ Behaupten Sie keinen Kamera- oder Netzwerkdefekt ohne passende Antwort oder Paketbeleg.
Welche Angaben machen den Fehler reproduzierbar?
Sichern Sie OPTIONS, DESCRIBE, SETUP und PLAY samt SDP, Transport-Antwort und bereinigter Session-ID. Für Medien genügen zunächst SSRC, erste und letzte Sequenznummer, Clock Rate, Lückenanzahl und Aufnahmedauer. Vermerken Sie, ob VLC oder ein anderes VMS funktioniert. Das ist ein Differenztest, aber kein Beweis, dass der erfolgreiche Client jede Protokollgrenze korrekt behandelt.
Wann liegt der nächste Test auf Server- oder Clientseite?
Prüfen Sie den Server, wenn er eine Methode klar ablehnt, einen nicht vorhandenen control-Pfad liefert, das Transportangebot widersprüchlich beantwortet oder SSRC beziehungsweise Clock Rate ohne erklärten Übergang wechselt. Prüfen Sie den Client, wenn er einen alten Nonce wiederverwendet, Session-Header verliert, UDP anfordert ohne Ports zu öffnen oder jedes NAL-Ende als Access-Unit-Ende behandelt. Für Zwischenfehler bleiben Zeitstempel und Paketfolge unverzichtbar.
Wie wird der Bericht vor der Übergabe geprüft?
Wiederholen Sie den Test mit einer frischen Verbindung und vergleichen Sie beide Abläufe nur bis zur ersten Abweichung. Entfernen Sie Passwörter und vollständige Authorization-Werte. Verknüpfen Sie jede Aussage mit CSeq, Sequenznummer oder Timestamp. Der passende RTSP-Leitfaden erklärt angrenzende Schritte; RTSP Inspector dient als lokaler Arbeitsbereich zum Testen eines RTSP-Streams und zum Sammeln der Belege, ohne den Kamerastream zu einem öffentlichen Dienst hochzuladen.
<!-- rtsp-localized-evidence-foundation-v1:end --><!-- rtsp-localized-layer-verdicts-v1:start -->Von der Beobachtung zum überprüfbaren Schichturteil
Schreiben Sie bei „ONVIF funktioniert, aber die RTSP-URL schlägt fehl: Den echten Kamera-Stream-Pfad finden“ zuerst die Beobachtung und erst danach die Interpretation. Eine Beobachtung kann eine zweite Person im Mitschnitt finden: RTSP-Status mit CSeq, SDP-Wert, Transport-Antwort, Lücke zwischen Sequenznummern, SSRC-Wechsel oder Abweichung zwischen RTP-Timestamp und RTCP Sender Report. „Der Server ist langsam“ oder „der Codec ist inkompatibel“ bleibt eine Hypothese, bis ein konkreter Beleg sie besser erklärt als die Alternativen.
Teilen Sie den Ablauf in Grenzen. Zuerst muss TCP geöffnet werden. Danach müssen OPTIONS oder DESCRIBE akzeptiert werden. SDP muss einen verwendbaren Track, Control-Pfad, Payload-Typ und eine Clock Rate beschreiben. SETUP braucht eine passende Transport-Antwort, PLAY eine gültige Session. Erst danach folgen RTP-Ankunft, Reihenfolge, Timing und Decoderbereitschaft. Stoppen Sie an der ersten Grenze ohne Erfolgsbeleg; spätere Pakete dürfen eine frühere Lücke nicht verdecken.
Halten Sie bei Vergleichstests Quelle und Zeitbereich möglichst konstant. UDP gegen TCP interleaved wird mit identischem Pfad und denselben Zugangsdaten geprüft. Main Stream gegen Sub Stream benötigt denselben Client und Transport. Beim Vergleich VLC gegen VMS dokumentieren Sie die tatsächlich gesendeten Methoden, Header und URLs. Ein Unterschied bei control URL, Authorization, Session oder Keepalive erklärt das Ergebnis oft besser als der Produktname.
Ausschlussmatrix
Beginnen Sie mit zwei Hypothesen. Wenn keine Medien ankommen, könnten UDP-Pakete blockiert sein oder der Server könnte an andere Ports senden. TCP interleaved prüft die erste Möglichkeit; der Vergleich von Transport-Angebot, Antwort, IP-Adressen und Ports prüft die zweite. Bei beschädigtem Bild trennen Sequenznummern RTP-Verlust von fehlender Codec-Initialisierung, während SPS/PPS/VPS vor dem ersten Frame die Parameterhypothese prüft.
Notieren Sie für jede Hypothese einen bestätigenden und einen widerlegenden Beleg. Eine Aussage, die kein Paket widerlegen kann, ist zu breit. „NAT verwirft UDP“ wird durch RTP am Client-Port widerlegt. „H.264-Parameter fehlen“ wird durch gültige SPS und PPS vor einem IDR widerlegt. Diese Form hält den Bericht priorisiert und verhindert eine ungeordnete Liste möglicher Ursachen.
Zeit korrekt einordnen
RTSP CSeq ordnet Steuerungstransaktionen, RTP Sequence ordnet Pakete, RTP Timestamp beschreibt Medienabtastzeit und die Capture-Uhr die Ankunft am Messpunkt. Setzen Sie diese Uhren nicht gleich. Schwankende Ankunftszeit beweist keinen Timestamp-Drift; ein Timestamp-Sprung beweist ohne Sequenzbeleg keinen Paketverlust. Für Audio-/Video-Synchronität verbinden RTCP Sender Reports die getrennten RTP-Uhren mit einer gemeinsamen Referenz.
Abnahmepaket
Schließen Sie die Untersuchung erst, wenn sich die Korrektur in einer neuen Verbindung mit einer dokumentierten Änderung wiederholen lässt. Der Bericht nennt Eingaben, letzte erfolgreiche Grenze, ersten fehlgeschlagenen Beleg, Änderung, Wiederholungsergebnis und offene Tests. Fügen Sie einen kleinen relevanten Transkriptausschnitt oder Paketstatistiken bei. Entfernen Sie Geheimnisse, aber behalten Sie CSeq, bereinigte Session, SSRC und Zeitbereich.
Mit der RTSP-Fehlersuche lässt sich der Ablauf erneut prüfen; RTSP-Inspector-Berichte übergeben die belegte Fehlergrenze an Kamera-, Netzwerk- oder VMS-Teams.
<!-- rtsp-localized-layer-verdicts-v1:end -->