Stabiler Streamempfang bei wackliger Leitung! Tipps-Ideen, alles willkommen

  • Tachchen zusammen,
    Ich streame von D Live-TV nach Asien, für mich und ein paar Freunde.
    Serverseitig: VDR-Stremdev-Server, 1,2 Mbit Upload, alles ok und sehr stabil.
    Clientseitig ein Sorgenkind...:
    DSL Anschluss 3Mbit Download (nur unter Verwendung eines DL-Managers, welcher zig gleichzeitige Verbindungen aufmachen kann)
    Allerdings bereitet oft ein 300kbit Stream ständige Puffer-Probleme, seitens des client VLC.
    Es ist aber zwar teilweise möglich 3 Streams a' 200KBIT gleichzeitig zu schauen, aber nicht 1 Stream mit 300 Kbit.
    Jetzt wäre Ideen nett, wie ich den Stream vor dem abspielen, ca 1-2 Minuten buffern könnte um dann zu schauen.
    Allerdings sollte dieser Buffer nicht unermeßlich ansteigen, sondern sollte sich zb. alle 5 Minuten erneuern.
    Oder ein Proxy vielleicht, oder was auch immer.
    Alle Ideen sind willkommen.
    PS: vlc http-caching funktioniert nicht vernünftig, da vlc im Betrieb teilweise den Cache einfach leerlaufen läßt um erst dann wieder nachzuladen :evil:
    Timeshift bei http Streams funktioniert garnicht

    Linux Mint Helena (Ubuntu 9.10),
    Athlon X250 2x3.0 GHZ/4GB RAM
    VDR 1.6.x, Streamdev-Server 0.5, Live 0.2 (Eigenkompilate)

  • Schon mal daran gedacht einen professionellen Dienst zu nutzen, auch wenn es etwas kostet? http://zattoo.com/view Die Qualität dürfte wesentlich besser sein als 300kBits/s Streams. Vorausgesetzt der Dienst ist am Zielort überhaupt erreichbar.

  • hallo?
    halbfertiger: nicht gelesen oder nicht verstanden?
    Es geht hier um meine client-seitige Leitung und deren "Schwankhaftigkeit".
    Es geht auch nicht um die Qualität (ich könnte auch mit 800kbit streamen , wenn ich wollte)
    Es geht hier um Caching, Buffer, Proxy etc.pp um meine(n) Clienten halbwegs stabil zu versorgen..

    Linux Mint Helena (Ubuntu 9.10),
    Athlon X250 2x3.0 GHZ/4GB RAM
    VDR 1.6.x, Streamdev-Server 0.5, Live 0.2 (Eigenkompilate)

    Einmal editiert, zuletzt von vel_tins ()

  • Doch, habe ich. Aber manche Vorhaben sind nach meinem persönlichem Geschmack so hart an der Grenze des qualitativ Erträglichen (1,2 MBit/s aufgeteilt auf mehrere Streams) dass ich auch mal eine Alternative vorschlage.


    Könnte es sein dass der Provider es mit der Netzneutralität nicht so genau nimmt und auf bestimmten Ports eine Drosselung hat oder ähnlich bei erkennbaren Streams eingreift? Dann müsstest du schon mindestens die halbe Sendung puffern um sie ohne Störung sehen zu können. Klappen andere Streamverfahren wie z.B. Skype? Die Vermutung liegt nahe wenn du die volle Leistung deines DSL nur mittels Downloadmanager und mehrerer gleichzeitiger Vorgänge nutzen kannst.

  • Versuch mal den SMplayer (=mplayer mit GUI), da kannst du für Streams einen Cache einstellen.

  • Zitat

    Original von vel_tins
    Jetzt wäre Ideen nett, wie ich den Stream vor dem abspielen, ca 1-2 Minuten buffern könnte um dann zu schauen.
    Allerdings sollte dieser Buffer nicht unermeßlich ansteigen, sondern sollte sich zb. alle 5 Minuten erneuern.
    Oder ein Proxy vielleicht, oder was auch immer.
    Alle Ideen sind willkommen.


    Versuch mal die Übertragungspuffer zu erhöhen.


    Im VLC kann man das einstellen: Netzwerk Medium öffnen -> Mehr Optionen anzeigen -> Cache.


    Du kannst streamdev so patchen dass er einen größeren Ausgabepuffer verwendet. Das ist der Hauptspeicher in den streamdev hineinschreibt bevor er die Netzwerkschnittstelle bedient.


    Ich nutze ab und an eine schwache WLAN Verbindung und mache da so ähnlich mit ffnetdev, mit einem Ausgabepuffer von 20 Mb statt 2 Mb. Das hat bei mir geholfen, der Stream friert ggf ein und bricht nicht ab.


    Das Ganze funktioniert aber nur wenn die mittlere Bandbreite reicht um den Stream durch die Leitung zu bekommen. Dann kann man mit den Buffern Durchsatzschwankungen auffangen. Wenn die Leitung nicht dick genug ist dann geht Livestreaming halt nicht.


    Alternativen (als Denkansatz):


    Du bekommst das VDR video-Verzeichnis irgendwie auf die Clients exportiert, vielleicht mit Samba. Dann kannst Du die Platte als Puffer verwenden, d.h. im VDR eine Aufnahme starten und 1/2h später anfangen zu schauen.


    Oder Du nimmst auf und überträgst die Sendungen per FTP/ssh auf die lokalen Platten. Von da aus haste dann keine Netzprobleme mehr.

    VDR "headless" Server:

    • Whitebox mit Supermicro X10SLL+-F, Xeon Prozessor, 16 GB RAM als ESXi Host, Debian VM für VDR, Digital Devices Cine S2 mit VT-d Passthrough an die VM
    • Debian, VDR 2.2 mit epgsearch, streamdev-server und live Plugins

    Client: Laptop, Windows und OS X, VLC Media Player

  • Zitat

    Könnte es sein dass der Provider es mit der Netzneutralität nicht so genau nimmt und auf bestimmten Ports eine Drosselung hat oder ähnlich bei erkennbaren Streams eingreift? Dann müsstest du schon mindestens die halbe Sendung puffern um sie ohne Störung sehen zu können. Klappen andere Streamverfahren wie z.B. Skype? Die Vermutung liegt nahe wenn du die volle Leistung deines DSL nur mittels Downloadmanager und mehrerer gleichzeitiger Vorgänge nutzen kannst.


    Nein, weder Drosselung noch sonstwas, einfach zu bestimmten Zeiten (ca. 18-22 Uhr) überlastet. Datenrate schwankt dann zw. 0 und 1Mbit (bei meinem Stream).
    Ich will einfach nur diese Schwankungen auffangen.
    Zu anderen Zeiten kann ich einige Stunden am Stück Streams empfangen ohne nachzupuffern.

    Zitat

    Versuch mal den SMplayer (=mplayer mit GUI), da kannst du für Streams einen Cache einstellen


    Schon probiert, aber er kann a: nicht weiterstreamen ins Lan/Wlan
    und b: nicht wirklich simpel zu bedienen (versuch mal das Bild zu schärfen...)

    Zitat

    Im VLC kann man das einstellen: Netzwerk Medium öffnen -> Mehr Optionen anzeigen -> Cache


    Schon klar, aber mir ist aufgefallen, das der VLC den Cache nicht kontinuierlich nachlädt, selbst bei 90sek Cache, läßt VLC den irgendwann komplett leerlaufen ohne ein Byte nachzuladen. Erst wenn komplett leer, lädt VLC wieder nach...BUG?

    Zitat

    Du kannst streamdev so patchen dass er einen größeren Ausgabepuffer verwendet. Das ist der Hauptspeicher in den streamdev hineinschreibt bevor er die Netzwerkschnittstelle bedient.


    DAS hört sich ja mal interessant an. Muß der Source gepatcht werden? Wenn ja wo und wie, oder wo nachzulesen?


    Zitat

    Das Ganze funktioniert aber nur wenn die mittlere Bandbreite reicht um den Stream durch die Leitung zu bekommen. Dann kann man mit den Buffern Durchsatzschwankungen auffangen. Wenn die Leitung nicht dick genug ist dann geht Livestreaming halt nicht.


    Reicht, Stream ca. 300-400 Kbit - Leitung 3 Mbit


    Zitat


    Du bekommst das VDR video-Verzeichnis irgendwie auf die Clients exportiert, vielleicht mit Samba. Dann kannst Du die Platte als Puffer verwenden, d.h. im VDR eine Aufnahme starten und 1/2h später anfangen zu schauen


    Aufnahmen funktionieren nicht mit Streamdev..und 1 Minute Versatz ist ja ok, aber dann.....


    Einfaches Timeshift würde vielleicht schon reichen, Stream starten, 1-2 Minuten auf Pause und dann schauen, aber selbst das kann der $%$§ VLC nicht.

    Linux Mint Helena (Ubuntu 9.10),
    Athlon X250 2x3.0 GHZ/4GB RAM
    VDR 1.6.x, Streamdev-Server 0.5, Live 0.2 (Eigenkompilate)

  • Zitat

    Original von vel_tins


    Schon klar, aber mir ist aufgefallen, das der VLC den Cache nicht kontinuierlich nachlädt, selbst bei 90sek Cache, läßt VLC den irgendwann komplett leerlaufen ohne ein Byte nachzuladen. Erst wenn komplett leer, lädt VLC wieder nach...BUG?


    Huch, das ist interessant. Da wäre jetzt mal interessant zu schauen was in dier Zeit im Netzwerk los ist. Als Schnellschuss kann man da mal ping -t <vdr server> laufen lassen und auf die Antwortzeiten achten.


    Zitat

    Original von vel_tins


    DAS hört sich ja mal interessant an. Muß der Source gepatcht werden? Wenn ja wo und wie, oder wo nachzulesen?


    Ja, der Code von streamdev muss gepatcht werden. Dazu musst Du streamdev compilieren können. Nachzulesen ist das im Code von streamdev :)


    Ohne es ausprobiert zu haben... würde ich mal hieran drehen, in streamdev/server/streamer.h:


    Code
    #ifndef TS_SIZE 
    #define TS_SIZE 188 
    #endif  
    
    
    #define STREAMERBUFSIZE (20000 * TS_SIZE) 
    #define WRITERBUFSIZE (5000 * TS_SIZE)


    Zitat

    Original von vel_tins


    Reicht, Stream ca. 300-400 Kbit - Leitung 3 Mbit


    Miss mal den wirklichen TCP Dursatz, z.b. mit iperf, im server mode auf dem VDR Rechner, als client auf einem VLC Rechner.


    Zitat

    Original von vel_tins


    Aufnahmen funktionieren nicht mit Streamdev..und 1 Minute Versatz ist ja ok, aber dann.....


    Das hätte mit streamdev nix mehr zu tun. Du würdest am VDR vorbei auf die Aufnahmedateien zugreifen. Alber wenn man so drüber nachdenkt: wieso sollte SMB schneller sein als das HTTP von streamdev...

    VDR "headless" Server:

    • Whitebox mit Supermicro X10SLL+-F, Xeon Prozessor, 16 GB RAM als ESXi Host, Debian VM für VDR, Digital Devices Cine S2 mit VT-d Passthrough an die VM
    • Debian, VDR 2.2 mit epgsearch, streamdev-server und live Plugins

    Client: Laptop, Windows und OS X, VLC Media Player

  • Zitat

    Huch, das ist interessant. Da wäre jetzt mal interessant zu schauen was in dier Zeit im Netzwerk los ist. Als Schnellschuss kann man da mal ping -t <vdr server> laufen lassen und auf die Antwortzeiten achten


    Netzwerk ist ok, du kannst, während der VLC den Puffer leerlaufen läßt, eine zweite Instanz oder Mplayer starten, welche auch anstandslos sofort mit dem laden und spielen anfangen.


    Zitat

    Ohne es ausprobiert zu haben... würde ich mal hieran drehen, in streamdev/server/streamer.h


    Ich habe die Werte, spez. "define WRITERBUFSIZE (5000 * TS_SIZE)" mal erhöht auf 20000, mal sehen was passiert. kompiliert ist der Server ja in einer Minute.
    Nur, wie kann ich einen evtl. Effekt überprüfen?


    Zitat

    Miss mal den wirklichen TCP Dursatz,


    Server - Client beides rel. identisch ~40kbyte/sec, passt schon. Das Problem ist definitiv meine schwankende Client-ADSL Leitung (hier in Bangkok).
    Aber das ist leider "normal" hier..Wobei angehängtes Bild unseren "DSL- Haus-Anschlusskasten" zeigt.. :evil: Die "Lautsprecherkabel" werden hierzulande als Telefon/DSL Leitungen verwendet. Abschirmung etc.? Wozu... Zu kurz? Kein Problem da werden die Enden zusammengedrillt und mit Isolierband "veredelt" fertig.


    Zitat

    Das hätte mit streamdev nix mehr zu tun. Du würdest am VDR vorbei auf die Aufnahmedateien zugreifen. Alber wenn man so drüber nachdenkt: wieso sollte SMB schneller sein als das HTTP von streamdev...


    Eben...ausserdem, Aufnahmen will ich nicht und abgesehen davon, SMB übers Internet?
    Also ich stelle mir das so vor:
    Streamdev Server schreibt 30 sec - 1Minute Buffer auf die Platte/RAM.
    Client bedient sich davon und schreibt seinerseits einen kleinen Buffer auf die Platte und spielt diesen dann ab. Und füllt vor allem den Buffer während des abspielens immer wieder auf!
    Kann doch nicht so kompliziert sein..oder wie oder was?

  • Zitat

    Original von vel_tins


    Ich habe die Werte, spez. "define WRITERBUFSIZE (5000 * TS_SIZE)" mal erhöht auf 20000, mal sehen was passiert. kompiliert ist der Server ja in einer Minute.
    Nur, wie kann ich einen evtl. Effekt überprüfen?


    Ich denke im syslog. Ich kann es jetzt für streamdev nicht nachprüfen aber ffnetdev schreibt alle 2 sec. seine Buffer usage ins syslog. Ebenso das Aufräumen wenn der Buffer volläuft.

    VDR "headless" Server:

    • Whitebox mit Supermicro X10SLL+-F, Xeon Prozessor, 16 GB RAM als ESXi Host, Debian VM für VDR, Digital Devices Cine S2 mit VT-d Passthrough an die VM
    • Debian, VDR 2.2 mit epgsearch, streamdev-server und live Plugins

    Client: Laptop, Windows und OS X, VLC Media Player

  • Den Bildern nach scheinst du aber eher Powerline als DSL zu haben, denn Kupfer-Doppeladern sehen anders aus. ;)


    Mein Beileid.
    Besteht die Möglichkeit den Anschluss ab oberem Anschluss Mast professioneller zu gestalten?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!