VLC DirectShow Stream automatisch starten

  • Hallo zusammen,


    ich komme gleich zu meinem Vorhaben: Ich möchte den Desktop eines Rechners mit DLNA (Serviio) auf einen SmartTV streamen.
    Ich bin schon soweit, dass ich den Stream auf dem TV habe - Soweit so gut.
    Ich nutze dafür aktuell einen DirectShow Stream anstatt eines Desktop Streams, da ich bei DirectShow einstellen kann, dass der Stream im 16:9 Format ausgegeben werden soll. Den Desktop Stream habe ich immer nur in 4:3 auf den TV bekommen.
    Hier ist mein aktueller Ausgabe String:
    :sout=#transcode{vcodec=mp2v,vb=512,fps=25,scale=1,width=1920,height=1080,acodec=none}:http{mux=ts,dst=:1234/} :sout-keep


    Der Stream wird wie gesagt von Serviio im Netzwerk bereitgestellt.


    Was mir jetzt noch fehlt ist, dass ich VLC nachdem der Rechner gestartet wurde automatisch mit diesem Stream starte. Also quasi VLC starten und schon wird das streaming des eigenen Desktop an Serviio übergeben.
    Ich habe schon einiges gelesen, dass man den String in die Verknüpfung oder in eine Batch packen kann. Damit habe ich allerdings nur hinbekommen den VLC zu starten. Der Stream lief nie.
    Kann mir jemand dabei helfen?


    Schon mal vielen Dank!

  • Hallo Magge123,


    so ganz genau kann ich mir nicht vorstellen, wie Deine Komponenten, vom VLC über den Serviio-Server zum TV-Gerät, zusammenspielen sollen, aber Du wirst es schon wissen.


    Guten Morgen Kodela,


    kurz erklärt:


    Ich lasse den VLC Player meinen Desktop streamen in ein HTTP-Ziel mit Custom Port.
    Im Serviio kann ich eine Online Quelle als Stream in die Bibliothek eintragen. In die Quelle gebe ich dann die "URL" ein: http://<IP vom streamenden Rechner>:<Custom Port> und sage ihm noch, dass es ein Video Stream ist.
    Dadurch greift Serviio im lokalen Netzwerk also den Stream vom PC ab und stellt ihn als DLNA Quelle dem Fernseher bereit. Von dort aus kann ich dann den Stream öffnen. Klappt problemlos.


    Das Tutorial werde ich mir mal durchlesen.


    Danke erst mal.

  • Hallo Magge123,


    ein HTTP-Ziel mit Custom Port? HTTP ist das verwendete Protokoll und eigentlich kein Ziel und warum der Port 1234 ein Custom Port sein soll, weiß ich nicht. Eigentlich wäre der Port 8080 für HTTP Streams vorgesehen. Der Port 1234 ist der voreingestellte Port für UDP/RTP-Streaming (siehe Liste der standardisierten Ports).


    Wenn es aber mit Deinen Einstellungen funktioniert, dann brauchst Du Dir nur noch den Kommandozeilenstring zusammenstellen. Das sollte eigentlich kein Problem sein.


    MfG, kodela

  • Hi Kodela,


    ja, das meinte ich damit. Als Protokoll für den Stream HTTP verwenden und der Port ist in diesem Sinn estmal nebensächlich, da er in der Konstellation nicht im Internet geroutet wird, sondern nur im lokalen Netzwerk fungiert. Da kann ich von mir aus auch den Port 443 nehmen, wenn auf der IP des Rechners nichts mit 443 lauscht. Mit dem eingestellten Port wird im Netzwerkstack nur ein Listener erstellt auf den dann der Stream lauscht, daher ist erst mal egal welche Nummer da als Port konfiguriert wird.


    Habe mir nun folgenden String gebaut, der auch am Rechner mit Serviio funktioniert:


    Code
    "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" dshow:// :show-vdev=screen-capture-recorder :dshow-adev=none :dshow-aspect-ratio=16\:9 :dshow-chroma= :dshow-fps=0 :no-dshow-config :no-dshow-tuner :dshow-tuner-channel=0 :dshow-tuner-frequency=0 :dshow-tuner-country=0 :dshow-tuner-standard=0 :dshow-tuner-input=0 :dshow-video-input=-1 :dshow-video-output=-1 :dshow-audio-input=-1 :dshow-audio-output=-1 :dshow-amtuner-mode=1 :dshow-audio-channels=0 :dshow-audio-samplerate=0 :dshow-audio-bitspersample=0 :live-caching=300 :sout=#transcode{vcodec=mp2v,vb=512,fps=25,scale=Automatisch,acodec=mpga,ab=128,channels=2,samplerate=44100}:http{mux=ts,dst=:8080/} :sout-all :sout-keep


    Nun habe ich noch folgende Frage:
    Wenn ich den String aktuell mit einer Batch aufrufe, offnet sich CMD und eben der VLC Player. Die CMD sollte sich aber wieder schließen und der VLC sollte minimiert sein sobald er läuft.
    In dem Tutorial steht, wenn ich den String mit START aufrufe, geht die CMD wieder zu - Da bekomme ich aber die Fehlermeldung, dass für den Wert "dshow://" kein Standardprogramm hinterlegt ist. Windows sieht also dshow:// als eigenes Programm, was ja falsch ist. Hast du hier eine Idee wo es hakt?
    Und dann würde ich gerne noch wissen, ob man im String hinterlegen kann, dass der VLC minimiert wird?


    Danke schonmal :)



    Geändert von kodela: Code als Code formatiert

  • Hallo Kodela,


    sorry, mein Fehler. Das funktioniert also nun auch :)
    Meine zweite Frage konnte ich mittlerweile selbst erarbeiten. Ging darum, dass der VLC minimiert startet.
    Habe es mit dem Befehl

    Code
    --qt-start-minimized

    gelöst

  • Hi Magge123.
    Ich hänge mich mal an dieses Thema dran und hoffe, du liest das auch jetzt noch!
    Ich hab nämlich genau das gleiche vor (Desktopstreaming mit "Screen-Capture-Recorder" über HTTP, VLC Start per Kommandozeile)
    Jedoch streamt sich nicht screen-capture-recorder, sondern die Webcam, und ich weiss nicht mehr weiter.
    Hast du nen Plan, wieso das so ist?

  • Sorry, habs selbst hinbekommen.
    Es handelte sich um einen simplen Tippfehler (":show" statt ":dshow")! Somit konnte VLC mit dem Befehl nix anfangen und benutzte stattdessen wohl die Standartausgabe (Webcam).