Sie sind in Live555 auf einen hässlichen Hack gestoßen , den die Bibliothek VLC verwendet, um die RTSP-Client-Funktion bereitzustellen. (Der RTSP-Servercode von VLC ist VLC-spezifisch.) Der Hack versucht herauszufinden, welche IP Ihr Computer im LAN zu verwenden scheint. (So hässlich der Hack auch ist, ich kenne keinen besseren Weg für Live555, dies zu tun.)
Sie müssen den UDP-Port 15947 in Ihrer Firewall öffnen, um den Fehler zu beheben, auf den Sie gestoßen sind. Das ist der "Testport", den Live555 für diesen Hack verwendet.
Je nachdem, wie Ihre Firewall funktioniert, müssen Sie möglicherweise auch zusätzliche Ports öffnen, um Ihren Stream zu empfangen. RTSP ist nur ein Stream- Steuerungsprotokoll , kein Stream- Übermittlungsprotokoll . Stellen Sie sich RTSP als "VCR-Schaltflächen" für das eigentliche Stream-Übermittlungsprotokoll vor: Wiedergabe, Stopp, Pause, FF, Rücklauf ... Der RTSP-Client handelt Stream- Übermittlungsports mit dem Server als Teil der Aktion "Wiedergabe" aus.
Das Ergebnis ist, dass der Client (in diesem Fall VLC) den Server auffordert, die Medien an einen bestimmten Port im RTSP- SETUP
Befehl an ihn zu senden :
SETUP rtsp://192.168.0.1:8554/42.ts/track1 RTSP/1.0
CSeq: 4
User-Agent: LibVLC/2.0.2 (LIVE555 Streaming Media v2011.12.23)
Transport: RTP/AVP;unicast;client_port=60860-60861
Das heißt, VLC teilt dem RTSP-Server mit, dass die Medien über RTP an den Ports 60860 und 60861 bereitgestellt werden sollen. Der Client wählt diese Ports zufällig aus. Wenn Ihre Firewall sie blockiert, blockiert sie die Stream-Übermittlung, obwohl die RTSP-Aushandlung erfolgreich war.
Im besten Fall blockiert Ihre Firewall entweder nicht so hohe Ports oder verfügt über eine Stateful Inspection-Funktion, mit der sie entsperrt werden können, wenn diese RTSP-Aushandlung angezeigt wird.
Wenn Ihre Firewall es blockiert, können Sie es mit Wireshark debuggen . Es versteht das RTSP-Protokoll. Klicken Sie mit der rechten Maustaste auf ein Paket im RTSP-Stream und sagen Sie "TCP-Stream folgen". Suchen Sie im daraufhin angezeigten Fenster den SETUP
Befehl RTSP . Starten Sie dann Wireshark erneut und suchen Sie diesmal nach UDP-Verkehr an diesen Ports. (All dies, während der RTSP-Client den Stream weiter herunterlädt oder versucht.)