VLC als lokaler Streaming Server für Web-Radio

Hinweis: In dem Thema VLC als lokaler Streaming Server für Web-Radio gibt es 2 Antworten. Der letzte Beitrag () befindet sich ganz unten auf dieser Seite.
  • Ich versuche gerade VLC as Streaming Server (Forwarder) für meinen Lieblingsradiosender zu verwenden. Der Stream ist MP3 128 kbps. Abgespielt wird meistens im Strawberry Player. Der Grund, wieso ich mit VLC das von Aussen streamen will und an Strawberry weitergeben ist, dass wenn im Radio was kommt, das ich nicht hören will und auf meine MP3-Feiles umschalte beim zurückschalten auf den direkten Radiostream immer eine halbe Minute Werbung zu ertragen ist. Nun ist es so, dass ich den VLC-Stream als Systemd-Service mit VLC-Interface http (als root) betreiben will, da ich als Benutzer VLC nur in eine Instanz starten kann, was ich sinnvoll und ich nicht ändern will (möglich wäre es). Die VLC-Befehle sind auf der Root-Konsole problemlos absetzbar und der VLC-Streamingserver funktioniert hervorragend:

    Code
    sed -i 's/geteuid/getppid/' /usr/bin/vlc && /usr/bin/vlc -I http -vvv https://stream.radio1.ch/128k --sout="#transcode{acodec=mp3,ab=128,channels=2}:http{mux=mp3,dst=:8080/stream.mp3}" --sout-keep

    Der sed-Befehl ist wegen der Berechtigungen notwendig. Aufgrund dieses Befehl habe ist eine Systemd-Service Datei erstellt:

    Der sed-Befehl kann in einen Systemd-Script nicht anderen Befehlen mit && gekoppelt werden, das diese Befehle nicht auf eine einzigen Shell ausgeführt werden. Trotzdem funktioniert der Dienst nicht, ich bekomme folgende Meldungen wenn Systemctl status eingebeSep 11 18:46:30 linux (vlc)[65819]: Vlc-Server.service: Unable to locate executable '/usr/bin/vlc': Permission denied

    Zitat

    Sep 11 18:46:30 linux (vlc)[65819]: Vlc-Server.service: Failed at step EXEC spawning /usr/bin/vlc: Permission denied

    Sep 11 18:46:30 linux systemd[1]: Vlc-Server.service: Main process exited, code=exited, status=203/EXEC

    Sep 11 18:46:30 linux systemd[1]: Vlc-Server.service: Failed with result 'exit-code'.

    Ich habe gesucht, aber mit diesen Angaben nichts anfangen. Die Frage ist, ob ich einfach ein Shell-Script machen soll, das ich über diesen Service aufrufe.

    Vielen Dank für Eure Hilfe.

    Einmal editiert, zuletzt von hkottmann () aus folgendem Grund: Neue Erkenntnisse

    Für den Inhalt des Beitrages 321191 haftet ausdrücklich der jeweilige Autor: hkottmann

  • Ich hab's rausgefunden, Skript funktioniert:

    Bash
    #!/bin/sh
    sed -i 's/geteuid/getppid/' /usr/bin/vlc && /usr/bin/vlc -I http -vvv https://stream.radio1.ch/128k --sout="#transcode{acodec=mp3,ab=128,channels=2}:http{mux=mp3,dst=:8080/stream.mp3}" --sout-keep

    Service:

    Code
    [Unit]
    Description=VLC Streaming Server für Radio 1
    After=network.target # Optional: Stellen Sie sicher, dass das Netzwerk bereit ist
    
    [Service]
    ExecStart=/usr/local/bin/vlc-server.sh
    Type=oneshot # Oder weitere Optionen, je nach Bedarf
    
    [Install]
    WantedBy=multi-user.target

    Für den Inhalt des Beitrages 321192 haftet ausdrücklich der jeweilige Autor: hkottmann

  • Nachtrag:

    Code
    After=network.target # Optional: Stellen Sie sicher, dass das Netzwerk bereit ist

    Funktioniert nicht, der Dienst startet so bevor die Netzwerkverbindung steht, das hier funktioniert zuverlässig:

    Code
    Wants=network-online.target
    After=network-online.target

    Für den Inhalt des Beitrages 321200 haftet ausdrücklich der jeweilige Autor: hkottmann