Netzwerkkamera als RTSP ausgeben

  • Hi,


    ich möchte einer meiner Netzwerkkameras als RTSP Stream ausgeben. Bei der Ausgabe wäre es super wenn ich die Auflösung eingeben kann, die der RTSP dann hat.

    Die Netzwerkkamera liefert auch einen RTSP Stream. Leider nur mit einer bestimmten Auflösung.


    Ich habe den PI 3 B+ mit dem aktuellem Raspian installiert.


    Natürlich habe ich mich vor der Fragestellung durchs Forum gesucht, auch Google gequält. Ich finde aber immer nur Projekte, welche die Kamera vom PI benutzen, oder USB Kameras.
    Ich hatte schon versucht die Hilfestellungen in den gefundenen Themen auf mein Problem mittels omxplayer,vlc.. umzumodeln, leider ohne Erfolg. Könnte aber auch daran liegen, dass ich den PI erst seit 1,2 Monaten habe. Irgendwie fehlt mir da der Ansatz. Evtl. habe ich auch ein passendes Thema hier übersehen.


    Ich erwarte natürlich keine Komplettlösung hier. Aber vlt könnte mir jemand einen Tip geben mit was ich am besten anfange, bzw. welche Anwendung hierfür am besten geeignet ist, dass ich nicht an 5 Baustellen probiere.


    Vielen Dank schonmal

  • Jeder RTP/RTSP Stream Deiner IP-Camera hat nur eine Auflösung. Diese wird in der Camera, über ihr Web-Interface, eingestellt.


    Wenn die voreingestellte Aiflösung zu hoch ist, musst Du sie in der Camera (also am Streaming Server) verringern.


    Manche Kameras können auch mehrere Streams generieren. Da könntest Du Stream1 (mit eingestellten 800x600), oder Strem2 (mit eingestellten 480x240) abrufen.


    Servus !

    Wer nichts weiß, muss alles glauben.

  • Hi RTFM, danke für den Tip. Die Kamera gibt mehrere Streams aus, das ist richtig.


    Ich möchte später mehrere Kameras einbinden über den PI und habe noch ein paar andere Ideen. Wollte aber erstmal "klein" anfangen. Also den Stream der Kamera im PI einlesen und wieder per RTSP ausgeben.


    Ich habe auch schon ein Tutorial/Anleitung durch. Damit kann ich meine Webcam per USB am PI anschließen, kann die Bilder per RTSP-Stream ausgeben und am PC per VLC abrufen. Gibt es keine "einfache" Möglichkeit, das Gleiche zu tun, aber als Quelle dient der RTSP Stream meiner IP-Kamera und nicht mehr die USB Kamera?


    VG

  • Wenn Du mit VLC am PC einen Stream vom Pi anzeigen kannst, kann VLC am Pi auch diesen liefern. VLC am Pi kann seine Eingabe wieder von einem Streaming Server beziehen und einen (allenfalls umgewandelten) Stream ausgeben.


    Ich erkenne den Sinn der Aktion aber nicht. Mit VLC am PC kannst Du ja trafficschonender direkt auf die IP-Cam zugreifen.


    Servus !

    Wer nichts weiß, muss alles glauben.

  • Ein weiterer, bzw. der Hauptgrund ist. Ich möchte, dass mehrere Personen auf den Stream zugreifen können. Wenn sie das direkt machen müssen sie dazu die Anmeldedaten der Kamera eingeben. Diese gelten aber auch für die WebOberfläche in der ich Position,... verändern kann. Das lässt sich leider nicht ändern und auf Dauer geht das nicht gut. Ich möchte, dass die Anderen einfach nur die IP des PI eingeben und den Stream sehen.


    Könntest du mir bitte auf die Sprünge helfen, wie ich den Stream weitergebe? Also ich kann ihn im VLC am PI öffnen, das war recht simpel. Ich kann auch Aufnahmen auf der SD Karte speichern. Anfangs hatte ich eine Kamera direkt am PI angeschlossen, diese konnte ich dann mittels folgender Zeile auch problemlos als rtsp ausgeben.

    Code
    1. raspivid -o - -t 0 -n | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/}' :demux=h264

    raspivid kann ich natürlich bei meiner im Netzwerk installierten Kamera nicht nutzen. Muss ich beim vlc den Stream auch erst in den stdout ausgeben lassen? In der VLC-Hilfe habe ich nichts passendes gefunden. Irgendwie steh ich da auf dem Schlauch.


    vg

  • @ cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/}' :demux=h264

    cvlc ist das vlc Programm ohne Grafik-Interface. Es läuft im Hintergrund ab.

    stream:///dev/stdin ist hier der Eingabgsstream, der von raspivid auf der Konsole ausgegeben wird. Du musst stream:///dev/stdin mit rtp://..... Deine Kamera ersetzen, wie es in https://wiki.videolan.org/Docu…eceive_and_Save_a_Stream/ beschrieben ist.


    Wenn Du nicht weisst, was z.B. sdp im Ausgabestream bedeutet, hilft ein Blick in die Knowledge Base von videolan.org, speziell https://wiki.videolan.org/Protocols/


    vlc -h und vlc -H ist die mitgelieferte VLC Hilfe/Dokumentation. Die umfangreichste Hilfe findest Du aber bei vlc selbst. https://wiki.videolan.org/Documentation:User_Guide/


    Servus !

    Wer nichts weiß, muss alles glauben.

  • Hi,


    a cool, viel besser die Hilfe/Doku. Habs nun hinbekommen. Läuft super, ca. 1,5s Verzögerung, aber das ist für meine Anwendung nicht so tragisch.


    Nur eines nervt mich noch. Mit --sout '#rtp{sdp=rtsp://:8554/}' :demux=h264 hat er mir am PC mit VLC nichts abgespielt. Nachdem ich Google bemüt habe, fand ich eine "Lösung". Man muss den Stream benennen. Also z.B. mit --sout '#rtp{sdp=rtsp://:8554/x}' :demux=h264.

    Kann man das nicht ohne Lösen, dass ich nur die IP und Port zum abrufen eingeben muss? Ich habe auch im Forum in keinem Beitrag was gefunden, dass den Stream jemand benannt hätte. Auch sonst online in keinem Beispiel.


    VG

  • Mit --sout '#rtp{sdp=rtsp://:8554/}' :demux=h264

    Diese Ausgabeoption stammt von Dir, Du hast sie als funktionierend bezeichnet.

    Wenn Dir das nicht passt, stell den Output Stream über das Grafik-Interface zusammen, wie es in https://wiki.videolan.org/Documentation:Streaming_HowTo_New/ beschrieben ist. Da wird der stream output string automatisch generiert.


    Irgentwie braucht aber jeder Stream einen Namen (Bezeichner). Sonst könnte er weder announced, protokolliert oder verbunden werden. Eine Ausnahme könnte ein "nackter" Unicast Stream an eine feste Adresse sein.


    Servus !

    Wer nichts weiß, muss alles glauben.

    2 Mal editiert, zuletzt von RTFM ()