Raspbian RTSP Stream autostart

  • Hallo Liebe Raspberry Gemeinde,


    bin neu hier.


    INFOS:
    Hardware: PI B+
    Image: Raspbian
    Wunsch: RTSP Stream automatisch zu Starten


    Ich habe auch geich ein anliegen an euch.
    Zwar habe ich es erfolgreich zusammen gebracht das ich einen RTSP Stream von meiner AXIS Camera darstellen kann.


    Über Putty und den Befehl:
    omxplayer rtsp://root:root@192.168.1.16/axis-media/media.amp?resolution=800x450


    So nun würde ich den Stream aber gerne automtisch starten lassen, würde gerne den PI an meinen TV per Video anhängen so das ich
    die Cam ber Bild in Bild darstellen kann.


    Vielen DANK im Voraus
    Mike



    Beziehungsweise gibt es eine andere lösung das ich den PI rein als decoder für eine IP Kamera nutzen kann??
    Würde auch reichen.



    Okay, ich habe es jetzt mit OSMC und einer Playlist als autostart realisiert.
    Als zusatzt habe ich noch den VNC draufgemacht und auch in den Autostart angehängt. Läuft bisher ohne Probleme.
    Aber mehr als wie 800x450 als stream ist nicht drinn, wenn ich ihn höher wähle zieht mir das bild streifen.
    Bei einer Compression von 30 bei der Cam.
    Fürs erste würds reichen, wenn jemand einen besseren Vorschlag hatt bitte um Info. Danke

  • Hallo Mike,


    ähnliches habe ich bereits realisiert, hier ein Beispiel wie ich es gemacht habe.
    Ich nutze den OMXplayer wie in deiner ersten Variante angegeben.
    Der RasPi läuft ohne GUI, beim starten wird mittels Autostart in der rc.local ein script gestartet welches mir den Stream der Kamera startet.



    mit:
    sudo nano /bin/startupstream.sh
    öffnet sich der Editor in dem ich folgenden Inhalt kopiere:







    #!/bin/bash
    echo "Videostreamer Startup"



    ######################################################## Single #############################################


    ##Assign location of this script to variable
    ##Used to restart script after connection is lost
    Script=/bin/startupstream.sh



    omxplayer -o hdmi -b --live rtsp://192.168.168.19/media/video3


    ##Find PID of omxplayer.bin
    #The brackets "[ ]" around the n prevent grep from returning itself
    #in the results of the ps command
    PID=$(ps ax | grep omxplayer.bi[n] | cut -d' ' -f2)
    echo "PID = $PID"


    ##Loop to test if connection is present every 60 seconds
    while [ $PID ];
    do
    sleep 5
    PID=$(ps ax | grep omxplayer.bi[n] | cut -d' ' -f2)
    done


    #If connection is not found to be present execute this command to retry every 15 seconds
    sleep 10
    exec $Script


    #############################################################################################################





    Den RTSP Pfad musst du auf deine Axis anpassen.
    Der Wert "-o" steht für Output und definiert den hdmi.
    "-b" steht für black, färbt also die Ränder schwarz damit die cmdline im Hintergrund nicht angezeigt wird.
    "--live" ist ganz wichtig da es die Latenzen korrigiert!
    Ich komme für eine Einfach-anzeige mit diesen Parametern aus, es gibt aber noch viele Möglichkeiten den OMX Player anzupassen.



    Der Rest des Scripts überwacht den OMXplayer und startet den Stream Neu wenn die Kamera nicht erreichbar war oder es Fehler in der Übertragung gegeben hat.




    Danach musst du das script ausführbar machen:
    sudo chmod +x /bin/startupstream.sh


    Nun kannst du die Datei in die rc.local eintragen, damit sie beim start automatisch ausgeführt wird.
    Falls du andere Möglichkeiten für einen Autostart vorziehen solltest, hier die Möglichkeiten:
    https://raspberry.tips/raspber…nd-programmen-einrichten/




    Und zu guter letzt den VideoRAM vergrößern!
    Solltest du bei deiner derzeitigen Lösung bleiben ist es dennoch wichtig den VRAM zu erweitern damit die Bilder richtig dargestellt werden können.
    mit dem Befehl:
    sudo raspi-config
    kommst du ins Menü für allgemeine Einstellungen.
    Unter "Advanced Options" findest du "Memory Split".
    Hier wird definiert wie viel vom Arbeitsspeicher für die GPU verwendet werden soll.
    Trage "256" MB ein bestätige und starte den RasPi neu und deine Bilder sollten keine Streifen mehr haben.
    Auch die Wiedergabe von HD Bildern soll so kein Problem mehr sein.
    Ich habe mit dieser Variante auch schon 6 Streams parallel aufgeschalten.


    Ich hoffe dir damit weiterhelfen zu können.

  • Hallo RaspiBastler!


    Ich bin ganz neu hier und mache gerade meine Anfänge am Raspi.
    Dein Script hat mir sehr geholfen und mein Kamerabild läuft einwandfrei.
    Allerdings habe ich eine Frage: Wie kann ich den omxplayer wieder beenden?
    Das Bild der Kamera läuft ja im Vollbild, die Tastenkombinationen, die ich mir ergoogelt habe, funktionieren alle nicht.
    Also wie komme ich aus dem Stream raus, am besten zurück ins Terminal...?


    Herzlichen Dank und schon mal!


    Grüße
    Stefan

  • Hallo zusammen!

    Ich habe dasselbe Problem wie Stefan, das mit dem Script funktioniert ja, aber der omxplayer lässt sich bei mir auch nicht mehr beenden.

    rufe ich den omxplayer manuell im Terminal auf, dann lässt er sich auch normal mit ESC beenden, doch wird er beim Systemstart über die rc.local gestartet, dann hilft nur noch das Netzwerkkabel abziehen...

  • Wenn ein Programm ohne Userkontrolle abläuft, wie z.B. aus rc.lokal im Hintergrund, kannst Du über die PID den Process aber auch killen.

    Siehe < man kill >



    Servus !

    RTFM = Read The Factory Manual, oder so

  • Du kannst mit STRG + ALT + F1 - F6/7 neue Terminal-Session starten.

    sls: Ohne Terminal kein kill...

    Hadrianus hat noch nicht erklärt, ob er sich in einem neuen Terminal anmelden kann.

    Hallo @all,


    die Ausgabe vom omxplayer wird lokal immer über allen Terminals liegen, so dass man diese wohl nicht zu Gesicht bekommt. Beim Zugriff über ssh sollte es gehen.


    Gruß, STF

  • Ich habe es jetzt anders gelöst, statt Aufruf in der rc.local (was mir persönlich am liebsten gewesen wäre) habe ich den omxplayer Autostart mit einer .desktop Datei erreicht. Über diese Autostart Möglichkeit komme ich aus dem Vollbild mit ESC wieder raus.


    Quelle:

    https://www.andysblog.de/raspb…-einsetzen/comment-page-1


    Warum das über den Aufruf in der rc.local nicht funktioniert hat ist mir ein Rätsel.

    Ich habe es auch ohne dem Startscript von RaspiBastler2 versucht, also einfach den Omxplayer rtsp:// Stream direkt in die r.local eingetragen - Omxplayer startet mit Vollbild und ich komme nicht raus.


    ich danke euch für eure Tipps

  • statt Aufruf in der rc.local (was mir persönlich am liebsten gewesen wäre) habe ich den omxplayer Autostart mit einer .desktop Datei erreicht. Über diese Autostart Möglichkeit komme ich aus dem Vollbild mit ESC wieder raus.

    ...

    Warum das über den Aufruf in der rc.local nicht funktioniert hat ist mir ein Rätsel.

    Hallo Hadrianus,


    der Autostart über die .desktop Datei startet nach dem Anmelden eines Nutzers (wahrscheinlich pi oder gleichwertig) an der grafischen Oberfläche und in dessen Kontext. Deshalb geht das.


    rc.local wird hingegen im Kontext von root gestartet, auch ohne dass sich jemand anmeldet. Das ist der Unterschied.


    Gruß, STF

  • Danke für die Aufklärung STF. Wieder was dazu gelernt. Trotzdem würde mich interessieren was da passiert, es funktioniert ja alles wenn ich den Omxplayer Stream über die rc.local aufrufen lasse, nur lässt der Omxplayer sich nicht mehr beenden. Vielleicht hängt der da in einer Schleife oder so?