Delay VLC Stream Server (http)

  • Hallo ein Problem mit dem VLC und eine Stream Server


    Starte den VLC mit folgender Stream ausgabekette:


    #duplicate{dst="transcode{vcodec=h264,vb=1500,fps=25,scale=0.75,acodec=mp3,ab=128,channels=1}:std{access=http,mux=ts,dst=:1234}"}


    Stream läuft nur wenn ich mit einem Client oder auch mehr connecte dauert der verbindungsaufbau ca 30 sec. und genau diese Zeit ist der Stream auch später dran...

    Egal ob ich einen Film Streame oder das TV Signal von meiner Dreambox


    Liegt das am transcoden vllt oder an meiner einstellung ?!?


    Hoffe es kann mir einer weiter helfen:/:?:

    • Official Post

    Ich füge zwei Kommandozeilen-Beispiele zum ausprobieren hinzu, die bei mir erfolgreich funktionieren.


    Ein Eingangsstream wird lokal angezeigt und gleichzeitig als http-Stream auf Port :8080 im lokalen Netzwerk verteilt.


    1) RTMP-Stream für VLC 3.0.6 (64-Bit)

    Code
    @echo off
    start "" "C:\Program Files\VideoLAN\VLC\vlc.exe" --network-caching=1000 rtmp://p3-6.mov.at:1935/live/weekstream --sout=#transcode{vcodec=h264,vb=1500,acodec=mpga,ab=128,channels=2,samplerate=44100,scodec=none}:duplicate{dst=http{mux=ts,dst=:8080/},dst=display} :sout-all :sout-keep


    2) MPEG Dash Stream für VLC 3.0.6 (64-Bit)

    Code
    @echo off
    start "" "C:\Program Files\VideoLAN\VLC\vlc.exe" --network-caching=1000 https://stream.polar.cz/vctv/vctvlive-2/manifest_w1967880673.mpd --sout=#transcode{vcodec=h264,vb=1500,acodec=mpga,ab=128,channels=2,samplerate=44100,scodec=none}:duplicate{dst=http{mux=ts,dst=:8080/},dst=display} :sout-all :sout-keep


    Die Wiedergabe erfolgt in einer zweiten VLC-Instanz lokal auf dem gleichen Computer über die Netzwerkadresse http://127.0.0.1:8080/.

    Von einem anderen Computer im Netzwerk verwendet man die Server-IP-Adresse http://Server-IP:8080/.


    MfG

    Thomas

  • Also fangen wir anders an :)

    Mein vorhaben, was irgendwann auch mal geklappt hat mit der Streamausgabekette.


    Ich habe eine Drambox DM900 von dieser hole ich mir das "Signal".

    Der VLC soll denn Stream übers Netzwerk und evtl auch Internet dann verteilen.

    scale hatte ich mal wegen Bandbreite genommen und port :1234 da ich 8080 schon anderweitig vergeben habe


    Windows 10 auf server und Clinet

    VLC version 3.0.6

  • Beide Beispiele sind erstmal identisch...


    Mir ist hier nicht ganz klar, wann er die 30 Sekunden braucht um auf dem Stream zu connecten. Braucht die VLC Instanz welche den Stream weiter verteilen soll 30 Sekunden um sich mit der Quelle zu verbinden und / oder brauchen deine VLC Instanzen als End-Clients 30 Sekunden um sich dann zu der Verteilerinstanz zu verbinden?


    Und ist dies auch genauso bei dem Beispiel von thweiss?



    Edit:

    Das Beispiel von thweiss jedenfalls funktioniert bei mir ohne Probleme. Die Verteileninstanz unterscheidet sich nur um die angegebene Sekunde zur Quelle ("--network-caching=1000") und meine End-Clients haben auch nur die eine Sekunde (Standardeinstellung vom VLC) Verzögerung zur Verteilerinstanz.


    Vielleicht liegt hier auch das Problem bei dir, da bei dir der Wert für den Cache im VLC evt. auf 30 Sekunden gestellt ist.


  • Wenn ich mit dem VLC direkt vom Receiver schaue kein delay


    nur Delay vom Streamerver zum Endgerät

    Sehe beim Streamserver aber kein Live Bild



    Sieht bei mir wie folgt aus:


    Starte auf dem LAPTOP (Windows 10)


    Code
    @echo off
    start "" "C:\Program Files\VideoLAN\VLC\vlc.exe" --network-caching=1000 rtmp://p3-6.mov.at:1935/live/weekstream --sout=#transcode{vcodec=h264,vb=1500,acodec=mpga,ab=128,channels=2,samplerate=44100,scodec=none}:duplicate{dst=http{mux=ts,dst=:8080/},dst=display} :sout-all :sout-keep


    Stream läuft aber nur ein Standbild


    Auf dem Client PC (Windows 10, normaler Desktop PC)


    starte VLC normal ---> Netzwerkstream öffnen --- > http://IP-LAPTOP:8080

    Client braucht ca 30 sekunden zum verbinden und auch diese hinter dem LiveStream


    Habe diesen mal Paralell laufen lassen

  • Fangen wir bitte von vorne an, denn du musst schon genau beschreiben was, wann, wo, wie, nicht funktioniert. Einfach nur grobe Antworten zu geben (es reicht ja nicht einmal mehr für einen vernünftiger Satz), welche aber nicht eindeutig sind, bringt uns (mir) nichts.



    Dann machen wir es eben einfach wie im Kindergarten, wenn es sonst nicht anders geht... Führe bitte folgende Tests aus und antworte dann zu den Nummer um den Bezug sicherzustellen:


    1. Wie lange dauert der Aufbau der Verbindung vom Starten bis zur Anzeige des Bildes, sowie bis zur Ausgabe des Tons bei folgendem Aufruf (ich erwarte also zwei Zeitangaben)?

    Code
    "C:\Program Files\VideoLAN\VLC\vlc.exe" rtmp://p3-6.mov.at:1935/live/weekstream

    2. Wie lange dauert es bei folgendem Aufruf (du müsstest Bild und Ton sehen können)?

    Code
    "C:\Program Files\VideoLAN\VLC\vlc.exe" --network-caching=1000 rtmp://p3-6.mov.at:1935/live/weekstream --sout=#transcode{vcodec=h264,vb=1500,acodec=mpga,ab=128,channels=2,samplerate=44100,scodec=none}:duplicate{dst=http{mux=ts,dst=:8080/},dst=display}

    3. Lasse den VLC vom 2. Test geöffnet! Startet nun eine neue Instanz auf dem selben PC durch nachfolgenden Aufruf.

    Code
    "C:\Program Files\VideoLAN\VLC\vlc.exe" http://localhost:8080

    3.1.Wie lauge dauert es jetzt bis der zweite Stream aufgebaut ist?

    3.2. Da du nun ein doppeltes Bild und Ton haben solltest, wie groß ist die Verzögerung der beiden Stream zueinander?

  • Also zu

    1: das dauert ca 2 sekunden bis Bild und Ton kommen

    2: Ton kommt nach ca 5 - 6 Sekunden Bild erscheint aber nur ein Standbild

    3: Der "Stream" dauert ca 1 sekunde dann kommt Bild und Ton und er ist dann auch ca 1 Sekunde hintendran

  • Ok, also müsste man sich anschauen warum du bei 2. nur ein Standbild hast. Alles andere scheint dann ja so zu funktionieren wie es soll.



    4. Öffne bitte die Eingabeaufforderung (cmd) und probiere es mittels folgendem Befehl (da er länger ist als die 260 Zeichen welche der Ausführen Dialog unterstützt). Stelle also sicher, dass der Befehl auch vollständig (auch das Ende der Eingabe) sichtbar ist.

    Code
    "C:\Program Files\VideoLAN\VLC\vlc.exe" --network-caching=1000 rtmp://p3-6.mov.at:1935/live/weekstream --sout=#transcode{vcodec=h264,vb=1500,acodec=mpga,ab=128,channels=2,samplerate=44100,scodec=none}:duplicate{dst=http{mux=ts,dst=:8080/},dst=display} :sout-all :sout-keep

    Siehst nun nun das Bild als Video und nicht nur als Standbild?


    5. Wie verhält es sich bei einer anderen Quelle?

    Code
    "C:\Program Files\VideoLAN\VLC\vlc.exe" --network-caching=1000 rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov --sout=#transcode{vcodec=h264,vb=1500,acodec=mpga,ab=128,channels=2,samplerate=44100,scodec=none}:duplicate{dst=http{mux=ts,dst=:8080/},dst=display} :sout-all :sout-keep
  • Dies scheint ein Problem beim Transkodieren zu sein, da kann ich dir leider nicht wirklich weiter helfen. Warum auch immer habe ich jetzt aber ebenfalls das Problem, dass bei diesen Beispielen bei der Verteilerinstanz ein Standbild (je nachdem auch mit Bildfehlern) erscheint.



    Der große Delay von 30 oder mehr Sekunden scheint also nur mit der Dreambox zusammenzuhängen. Hier wäre die Frage also wie genau du diesen Stream aufrufst und ob der Delay auch so groß ist wenn du nur darauf zugreifst, also ohne ihn weiter zu verteilen?



    Edit:

    Oder wann tritt nun der große Delay auf? Tritt er nur auf wenn du dich mit einem anderen PC auf die Verteilerinstanz verbindest?

  • Der Delay Tritt nur dann auf wenn ein anderer Rechner auf dem Verteiler Connectet, egal welche Qulle ...


    Auf dem Verteiler lokal ist alles innerhalb 2-3 sekunden Delay was ja normal ist, aber warum dann im Netzwerk dann so ein großer Delay ist ...


    Es ist schon sehr komisch ...

  • Du müsstest da mal unterschiedliche Rollen der PCs testen. Also herausfinden, ob es immer nur bei bestimmten Clients auftritt, bei einem oder allen?


    Wenn es 30 oder mehr Sekunden dauert, der Stream aber um die selbe Zeit hinterher hängt, muss es ja irgendwo in der Kette entsprechend gepuffert werden. Also hast du entweder eine Kaskade an vielen kleinen Puffer die sich aufsummieren oder aber der Server oder die Clients nutzen dann einen solchen großen Puffer. Da du aber geschrieben hast, dass wenn du beim Verteiler auf ihn selbst zugreift es da keine große Verzögerung gibt, scheidet dieser ja als Ursache aus.


    Du kannst ja bei allen Clients beim Connecten ja per Parameter eine evt. falsch eingestellte Puffergröße überschreiben.


    Code
    "C:\Program Files\VideoLAN\VLC\vlc.exe" http://VERTEILER:8080 --network-caching=1000

    VERTEILER muss natürlich mit der entsprechenden IP ausgetauscht werden.