SAT->IP und RTSP, RTP, Unicast

  • Hallo Leute.


    Ich versuche meiner STB einen Videostream am PC zu entlocken. Das geht via Android/Apple-App so halbwegs brauchbar, aber eben nicht am PC.


    Ich hab' mir einen TCP-Client gebaut und sende


    Code
    1. SETUP rtsp://192.168.111.24:554/?langerurlmitsatzeug RTSP/1.0
    2. CSeq: 0
    3. Transport: RTP/AVP;unicast;client_port=10022-10023
    4. User-Agent: myfish


    und kriege


    Code
    1. RTSP/1.0 200 OK
    2. CSeq: 0
    3. com.ses.streamID: 6
    4. Transport: RTP/AVP;unicast;source=192.168.111.24;client_port=10022-10023;server_port=5014-5015;ssrc=CBA986F6
    5. Session: a392c8c49c033eed
    6. Date: Week 4, 1 Mon0 0070 00:52:54 GMT


    zurück. Soweit ich das sehe ist also ein Unicast-Stream zu mir vorbereitet worden. Ich sende also


    Code
    1. PLAY rtsp://192.168.111.24:554/stream=6 RTSP/1.0
    2. CSeq: 1
    3. Session: a392c8c49c033eed
    4. User-Agent: myfish


    und kriege als Antwort


    Code
    1. RTSP/1.0 200 OK
    2. CSeq: 1
    3. Session: a392c8c49c033eed
    4. Range: npt=0-
    5. RTP-Info: url=rtsp://192.168.111.24:554/stream=6;seq=50189;rtptime=1269534562
    6. Date: Week 4, 1 Mon0 0070 00:52:54 GMT


    Ich nehme mal an, die STB sendet nun brav Unicast-Nachrichten in meine Richtung. Ich startet dann eine Schleife mit


    Code
    1. OPTIONS * RTSP/1.0
    2. CSeq: xx
    3. Session: a392c8c49c033eed
    4. User-Agent: myfish


    und kriege immer eine positive Antwort zurück.



    Code
    1. RTSP/1.0 200 OK
    2. CSeq: xx
    3. Session: a392c8c49c033eed
    4. Public: OPTIONS,DESCRIBE,SETUP,PLAY,TEARDOWN
    5. Date: Week 4, 1 Mon0 0070 00:54:01 GMT


    Daher gehe ich davon aus, dass der Stream weiterhin gestreamt wird.



    Mit VLC (2.1.5 Rincewind) habe ich alle möglichen Dinge unternommen, um an den Stream ranzukommen.


    vlc rtp://@192.168.111.24:10022


    etc etc.


    Nix funktioniert. Der RTP-Info-URL sieht verlockend aus, funktioniert aber auch nicht.


    Hat jemand eine Idee? Danke!

  • Schon mit Wireshark getan. Obiges Script scheint den RTSP-Server zu starten, der streamt dann was ins Netz, das sehe ich und smplayer kann es sofort abspielen. Demuxer sei mpegts, Codec ffmpeg2.


    Wenn ich den URL unter VLC->Medien->Netzwerk eingebe, passiert nix. Keine Fehlermeldung, kein Bild, kein Ton.

  • Ok, danke für Fettschrift, ich habs verstanden. :-)


    So sieht das aus:


  • Hallo Wandhalterung,


    setze die Einstellungen für den VLC auf die Defaultwerte zurück, am besten, indem Du den Ordner vlc in %APPDATA% löscht oder umbenennst.


    Wenn es dann noch immer nicht funktioniert, mache noch einmal ein Protokoll, diesmal aber über die Menüoption Meldungen. Öffne das Meldungsfenster vor dem Versuch und setze dort den Level auf 2 (debuggen). Lasse den Meldungen-Dialog offen und starte den Versuch. Speichere das Protokoll in eine Datei und füge diese Deiner (Erweiterte) Antwort als Dateianhang bei.


    MfG, kodela

  • Getan. Sieht nicht viel anders aus.


    Meine Vermutung ist, dass VLC den falschen Demuxer erwischt, mplayer nimmt [color=rgb(0, 0, 0); background-color: rgb(230, 230, 250)]mpegts,[/color]

  • Hallo Wandhalterung,


    "Getan"? - na ja, protokolliert hast Du jedenfalls nicht so, wie ich es vorgeschlagen habe.


    Was kannst Du eigentlich zu Deiner Settopbox sagen. Gibt es dazu auch eine Bedienungsanleitung. Wie bist Du mit ihr verbunden, welche IP-Adresse und Port verwendet sie und mit welchem Protokoll streamt sie? Wie bist Du auf den Port 10022 gekommen?


    Du hast oben geschrieben "und kriege:"


    Transport: RTP/AVP;unicast;source=192.168.111.24;client_port=10022-10023;server_port=5014-5015;ssrc=CBA986F6


    Woher bekommst Du das?


    MfG, kodela

  • Du hast recht, ich hab' heute früh wieder mal falsch gelesen. Danke für die Geduld. Wirklich! Schöner Support!


    Die STB ist eine aus der Amiko HD-Familie, ein ALi-Chipsatz. Die eher schlichte Preisebene. Handbuch sagt dazu gar nix, ich mach' da reine Quellenforschung. :-)


    Was ich tue: siehe erste Nachricht, ich baue eine RTSP-Verbindung auf, fordere einen Stream an und die Box meldet zurück, unter welcher Adresse der Stream verfügbar ist. Den starte ich und bekomme dann eine Unicast-Quelle, von wo ich den TS-Stream holen kann. mplayer stellt mit http://@:10022 sofort ein Bild/Ton-Ergebnis dar. Und so scheint mir auch das RTSP/RTP-Konzept zu funktionieren. Die Ports definiere ich in der Streamanforderung. Solange der Stream läuft, kann ich mplayer immer wieder beenden/starten, es springt sofort wieder auf den Stream.


    Derzeit fische ich in die Richtung falscher Demuxer, mplayer nimmt mgets. Und im VLC-Protokoll steht, dass VLC keinen Demuxer ausgewählt hat. Theoretisch sollte es der "normale" SAT-Stream sein. Aber wer weiß, was ALi baut.

  • Hallo Wandhalter,


    was soll das bedeuten: "mplayer nimmt mgets"?


    Deine MRL wird also laut Zeile 38 des Protokolls geöffnet:


    main debug: `rtp://@:10022' successfully opened


    Allerdings bricht das Protokoll in Zeile 51 unerwartet ab. Das kann ich mir nicht erklären.


    MfG, kodela

  • Hallo Wandhalterung,


    was meinst Du mit "Forschungsoptionen" und wie verhält sich der VLC nach einem Empfangs- und Wiedergabeversuch, immer noch keine Fehlermeldung, kein Bild und kein Ton? Zeigt er unter Werkzeuge - Codec-Informationen etwas an?


    MfG, kodela

  • um an einen SatIp Server stream zu kommen


    nutzt die ClientIp und ClientRtpPort wenn unicast im Transport des Rtsp Setup Request unicast definiert war


    mit anderen worten sollte die URL für vlc dann so aussehen


    rtp://ClientIP:ClientRtpPort


    wer selber mit c# spielen möchte könnte http://github.com/Diefenthal/SatIp-Rtsp-Sample hier vorbeischauen
    und wenn man selber mit den rtp spielen möchte wäre vielleicht https://gist.github.com/Diefenthal/32956e58c9428ba2d58c das auch noch interesant

  • ok scheint so das hier links nicht erlaubt sind auch wenn diese helfen würden den Sachverhalt an Hand Sourcecodes zu erläutern!


    Nun gut dann schreib ich es halt nochmal genauer in deinen Rtsp Response bekommst du das Source Feld zurück bei Unicast das ist die Ip des Sat>Ip Servers
    aber um den Rtp Stream zu empfangen brauchst du das Destination Field !, was bei Unicast im Rtsp Setup von Servern nicht immer gefüllt wird! Das macht aber nichts da es die Ip deines Pc ist von wo der Rtsp Request gesendet wurde .
    bei Multicast sollten dann beide Felder gefüllt sein Source und Destination


    Destination ist das was du brauchst und gleich zu setzen mit der ClientIp zumindest bei Unicast

  • ok scheint so das hier links nicht erlaubt sind auch wenn diese helfen würden den Sachverhalt an Hand Sourcecodes zu erläutern!


    Hallo Kay,


    Links sind hier grundsätzlich erlaubt, sofern sie nicht der Werbung oder Propaganda im weitesten Sinne dienen. Sie sollten aber der Sache dienen, um die es geht und da bist Du vermutlich zu sehr von Deinem eigenen Wissen ausgegangen. Ich kann mir wirklich nicht vorstellen, dass es einem durchschnittlichen VLC-User gelingt, aus Deinem Quellcode eine Antwort auf das hier im Raum stehende Problem zu finden.


    Aber vielleicht bist Du ja so nett und klärst uns hier etwas auf. Auch ich selbst wäre daran interessiert, denn auch ich bin nichts anderes, als ein VLC-Anwender, der sich ein wenig bemüht, anderen bei ihren Problemen zu helfen.


    MfG, kodela


  • Hallo Kay,


    Links sind hier grundsätzlich erlaubt, sofern sie nicht der Werbung oder Propaganda im weitesten Sinne dienen. Sie sollten aber der Sache dienen, um die es geht und da bist Du vermutlich zu sehr von Deinem eigenen Wissen ausgegangen. Ich kann mir wirklich nicht vorstellen, dass es einem durchschnittlichen VLC-User gelingt, aus Deinem Quellcode eine Antwort auf das hier im Raum stehende Problem zu finden.


    Code
    1. axWindowsMediaPlayer1.URL = string.Format("rtp://{0}:{1}", _rtspDevice.RtspSession.Destination, _rtspDevice.RtspSession.ClientRtpPort);


    nur hätte er mit nur der einen Zeile nicht gewusst wo ich die Destination Info her hole
    deshalb der link zum Project



    Aber vielleicht bist Du ja so nett und klärst uns hier etwas auf. Auch ich selbst wäre daran interessiert, denn auch ich bin nichts anderes, als ein VLC-Anwender, der sich ein wenig bemüht, anderen bei ihren Problemen zu helfen.
    MfG, kodela


    sicher



    er hätte also in der RtspSession.cs sehen können wo Destination seinen wert bekommt und zum abbruch keine Ahnung ob es das ist aber SatIp Server Schliessen die Rtsp Rtp Session wenn nicht innerhalb des 30 oder 60 sec intervals kein Options ankommt bei Unicast auch dieses hätte ersehen können im code



    gut ich sende auch noch ein Describe mit um die Signal Stärke und Quality upzudaten
    frage mich eh warum er sich nicht eine playlist m3u macht mit rtsp:// calls dass sollte VLC auch verstehen zumindest hat er das vor 2 jahren schon verstanden
    aber mal schauen ob Wandhalterung sich nochmal meldet wenn nicht sehe ich mein Hilfe Angebot eh für die ...


    hab ja noch ein paar Projekte mehr denen ich bei der Sat>Ip Funktionalität helfe denen es egal ist ob c# c++ c oder gleichen die technick bleibt die selbe und der ablauf auch