Buffering RasPi

  • Hallo zusammen.

    Ich habe schon einiges über Bufferingprobleme gelesen, aber noch keine Lösung gefunden. Ich habe bereits selbst einiges ausprobiert und meiner Test zu Folge liegt das Problem innerhalb des RasPi/LibreElec/Kodi.

    Ich streame Serienepisoden aus den Mediatheken der TV-Sender, teilweise über Joyn bzw. TVNow Addon.

    In der gesamten hier relevanten Konfig sind keine WLAN-STrecken, die können wir aus der Betrachtung heraus lassen.

    Basis ist eine FB 6490 Cable mit 120/6, die Verbindung ist stabil. Von da aus geht es über verschiedene Komponenten zu den verschiedenen Netzwerkteilnehmern, hier relevant sind ein Patchpanel, festverlegte Leitungen zu RJ45-Dosen und ein kleiner GB-Switch. Dazwischen GBit-geeignete Patchkabel.

    Das Problem:
    Ich schaue diverse Serienepisoden per Stream aus dem Netz. Manchmal laufen die Filme völlig problemlos, inkl. Pause und Fortsetzen, Vor- und Zurückspringen. Dann wieder laufen die Folgen etwa 20 Sekunden, dann wird knapp 10 Sekunden gebuffert, dann läuft es wieder 20 Sekunden, dann wieder knapp 10Sekunden buffern. Die Folge, die vorgestern Abend genau dieses Verhalten zeigte, lief gestern Abend einwandfrei. Eine andere Folge einer anderen Serie, die vorgestern ebenfalls das Bufferingproblem hatte, hatte dies auch gestern Abend. Ich habe die Folge gestoppt und auf dem Smartphone in der Joyn-App gestartet, da lief sie einwandfrei (selbe Fritzbox, selbes Netzwerk, selber Switch, aber über WLAN, sowohl im 2,4GHz Netz, wie auch im 5GHz Netz mit unterschiedlichen APs und SSIDs), was mich die Leitung, das Netzwerk und den liefernden Server ausschließen läßt.
    Der RasPi wurde vor etwa 8-10 Wochen komplett neu aufgesetzt mit den jeweils aktuellen Versionen. Keine illegalen Streamingapps installiert, IP-TV (über einen AVM DVB-C Repeater im lokalen Netz) läuft einwandfrei.

    Anbei ein (zugegebenermaßen schlechtes) Diagramm der Netzwerkverbindungen, schwarz sind die Verkabelungen, die unverändert geblieben sind, rot die ursprüngliche, grün die zu Testzwecken geänderte (rote Kabel raus, grüne Kabel rein, direkte Verbindung des RasPI mit der FB). In der FB ist der RasPi als Echtzeitanwendung priorisiert.

    Das Speedtest-Addon auf dem RasPI zeigt Downloads zwischen 70 und 90 MBit/s bei 6 MBit/s Upload und 33ms Latenz, das Handy 54MBit/s stabil auf 2,4GHz und 114MBit/s stabil auf 5GHz mit jeweils knapp 30ms Latenz.

    Die [definition='2','1']advancedsettings[/definition].xml sieht wie folgt aus:

    <?xml version="1.0" encoding="utf-8"?>
    <[definition='2','1']advancedsettings[/definition] version="1.0">
    <cputempcommand>/usr/bin/cputemp</cputempcommand>
    <gputempcommand>/usr/bin/gputemp</gputempcommand>
    <showexitbutton>false</showexitbutton>
    <remotedelay>1</remotedelay>
    <samba>
    <clienttimeout>30</clienttimeout>
    </samba>
    <fanartres>720</fanartres>
    <imageres>540</imageres>
    <cache>
    <buffermode>1</buffermode>
    <memorysize>104857600</memorysize>
    <readfactor>8</readfactor>
    </cache>
    </[definition='2','1']advancedsettings[/definition]>

    laut Logfile wird sie auch gezogen, ich habe auch schon readfactor 4 und 16 probiert, ebenso memorysize 50MB und 150MB, keine Änderung.

    Da ansonsten im Netz alles funktioniert, die Bandbreiten, soweit ich sie getestet habe, mehr als ausreichend sind, Streaming auf dem PC und den mobilen Devices einwandfrei funktioniert, sogar über WLAN, kann es eigentlich nur noch am RasPi/LibreElec/Kodi liegen. Unerklärlich ist für mich nur, warum es mal geht und mal nicht, in der selben Konfiguration manche Episoden einwandfrei laufen, andere nicht (selbes Addon), die problematischen Episoden an anderen Tagen dann aber teilweise komplett problemlos laufen.

    [definition='1','4']Debuglog[/definition] habe ich aktuell nicht, müßte ich konfigurieren, versuchen, den Fehler zu reproduzieren und das Log dann rausholen und hier einstellen (hab' ich noch nie gemacht, kann also etwas dauern), aber vielleicht hat der eine oder andere das Problem schon gehabt und kennt die Lösung.


    Edit:
    Noch ein paar Fragen (bin kein Linuxer, komme von Novell & Windows, daher tue ich mich da etwas schwer):
    Wenn man memorysize auf "0" stellt, schreibt er statt in den RAM auf den Datenträger. In welche Partition? Kann man das Umleiten auf ein USB-Device (HDD, Stick)?
    In einem anderen Thread habe ich gelesen, das Buffering komplett abzustellen würde helfen (buffermode 3), kann das helfen? Ist das sinnvoll?

    Einmal editiert, zuletzt von Boatman (3. September 2020 um 17:38) aus folgendem Grund: Nachtrag.

  • ich habe eine nvidia shield pro verbunden über ethernet und stabiles vdslinternet mit 250mbit/s.
    ich habe bei disneyplus übers kodiaddon auch bufferingprobleme. sobald das buffering anfängt, muss ich das video komplett neustarten, denn es kommt aus dem buffering nicht mehr raus. ich schaue nur in 1920x1080 auflösung.
    ich konnte keine lösung finden. alles andere funktioniert bufferfrei.

    die beschriebenen buffersymptome sind bei mir sehr ähnlich.

  • was sagt denn die CPU Auslastung des RPI2 ? (top kommando von der CLI) ?
    Gehe mal davon aus, das all die videos h264 sind und die h264 lizenz fuer den raspi installiert ist.
    wenn mal soweit mit dekodieren ausgelastet ist, das sie nicht mehr sofort hinterherkommt mit
    runterladen der folgenden videosegmente, dann kann das vielleicht zu so einem schluckauf kommen.

  • Ich bin wie gesagt kein Linuxprofi, wie interpretiert man die Daten von top?

    Der load average lag während des Streamens zwischen 0.6 und 0,8, 77% CPU durch kodi.bin

    Da die selbe Folge aber heute buffert und morgen durchläuft, eine andere Folge einer anderen Serie auch heute durch läuft, denke ich nicht, daß es am Codec liegt, das Problem müßte ja dann bei allen Folgen aller Serien auftauchen. Ich muß das nochmal genau beobachten, aber aus der Erinnerung heraus betrifft das Folgen sowohl auf Joyn, wie auch auf TVNow, mal diese, mal jene, heute lief eine Folge von Joyn nur mit dauerndem buffern, eine Folge von TVNow ohne Probleme.

  • Das sind die Aufzeichnungen der Sendungen, die im TV liefen. Die liegen nach Ausstrahlung einige Tage in den Mediatheken der Fernsehsender.
    Reproduzierbar ist das temporär, wenn eine Folge stockt, stockt sie während der gesamten Folge. Ein neuer Versuch 10 Minuten, 30 Minuten, oder eine Stunde später hat das selbe Ergebnis.
    Aber 24 Stunden später kann es sein, daß genau diese Folge problemlos durchläuft. Das liegt aber nicht am Alter der Folgen, teilweise kann ich Folgen wenige Minuten nach der Ausstrahlung, wenn sie gerade frisch in der Mediathek sind, störungsfrei gucken. Manchmal versuche ich eine Folge mehrere Tage nach Ausstrahlung zu gucken, und sie stockt trotzdem.
    Und wie beschrieben, während eine solche Folge auf Kodi stockt, läuft sie in der App auf dem Handy über das selbe Netz einwandfrei.
    Das muß mit dem Buffering von Kodi/LibreElec zusammenhängen, ich sehe da keinen anderen Punkt, wo der Fehler herkommen könnte. Unverständlich ist für mich aber, warum Folge 7 von Serie A stockt und Folge 12 von Serie B eben nicht. Am selben Abend, unter den selben Bedingungen. Neustart von Kodi bzw. dem kompletten RasPi ändert nichts. Änderung der Netzwerkverkabelung ändert nichts. Neustart der Fritzbox ändert nichts, Priorisierung des RasPi in der Fritz ändert nichts. Bandbreite ist ok, Ping ist ok, Latenz ist ok, ich kann das logisch nicht erklären, warum die eine Folge stockt und die andere nicht, am nächsten Tag stockt eine andere und die, die am Vortag gestockt hat, läuft einwandfrei. Ich kann da einfach kein System erkennen.

  • Ich tippe halt mal, das der RPI2 da ziemlich an seiner Performancegrenze ist. Waere ja mal interessant, wenn andere hier, die diese Plugins auf einem RPI2 und LibreElec am laufen haben diese Theorie widerlegen koennten mit "bei mir laeuft joyn auf der Kiste dauernd stoerungsfrei". Aber halt auch mit genau so schneller Internetverbindung, und nicht einer langsameren.

    Da ich joyn nicht verwende (das andere auch nicht), kann ich nur vermuten, dass die da adaptives streaming machen (sieht auch so in der python quelle des plugins danach aus), und das ist halt immer kompliziert: Da wird halt bloss eine bestimmte Menge von segmenten vorgeladen, und die qualitaet der segmente bestimmt sich auch der geschwindigkeit mit der die vorherigen segmente geladen wurden, da kommt es dann also leicht mal dazu, das die berechnung im client sagt "lad mal die naechsten segmente in hoher qualitaet", und dann ist waehrend die geladen werden sollen, leider die CPU aber sehr ueberlastet, weil die letzten segmente halt fett waren und bei der dekodierung mehr aufwand betreiben, das schaukelt sich hoch, etc. pp. Der dekoder im kodi fuer adaptives streaming ist ja wohl auch verbesserungsfaehig, erinnere mich da an versuche/wuensche, den zu verbessern. Naja, und die Unterschiede, mal geht, mal geht nicht kann z.b. davon kommen, das die dateien von underschiedlichen cacheservern kommen und diese zuordnung aendert sich halt mal.

    Ich habe auch genial thesen ueber den Osterhasen und Weihnachtsmann, die kann man auch nicht beweisen oder einfach widerlegen *sigh*.

    Wieviele Stunden musst Du fuer 36 euro schaffen, und wieviele stunden bastelst Du da jetzt schon rum ? Goenn Dir halt mal einen RPI3B+. 50% schnellere CPU koennte da gerade den Unterschied machen. Ansonsten zurueckschicken. Oder halt auf Nummer Sicher wenn Wohlstand herrscht, fuer 56 Euro einen RPI4.

  • Danke, daß Du Dich da so mit beschäftigst. Adaptives Streaming war mir neu, das hatte ich überhaupt nicht berücksichtigt. Erscheint mir aber unlogisch, wenn die selbe Datei heute buffert, und morgen nicht. Ich habe gestern 3 Folgen einer anderen Serie geschaut, völlig problemlos, habe anschließend nochmal die Folge der ersten Serie gestartet, die 5h vorher schon gebuffert hatte, lief noch immer nicht durch. Aber: Die Abstände zwischen den einzelnen Bufferings wurden im Laufe der Zeit immer kürzer (mag auch vorher schon so gewesen sein, mit der Zeit wird man ja aufmerksamer und achtet auf mehr Details). Ich habe parallel auf dem Handy per SSH top mitlaufen lassen, keine Änderung der CPU- oder Speicherbelastung kurz vor, oder während des Pufferns.
    Wenn adaptives Streaming die Ursache sein sollte, würde ich eher vermuten, daß die Abstände größer werden, weil die Logik sagt, ok, nächste Segmente in höherer Qualität, das geht dann schief, und die Logik senkt die Qualität wieder. Müßte schon eine recht zickige Logik sein, die dann sagt, ok, hat nicht geklappt, jetzt versuche ich es erst recht!
    Würde man diese Qualitätsänderung denn auf dem TV sehen können? Ich habe nichts in der Richtung festgestellt. In der alten 7TV-App auf dem TV selbst hatte ich des öfteren den Effekt, daß Aufnahmen in ziemlich grober Auflösung gestartet sind und dann innerhalb der ersten paar Minuten immer besser wurden, die hohe Qualität dann aber auch gehalten haben. Ich vermute, daß es sich da um adaptives Streaming gehandelt hat? Schwach (mit kleinen Datenpaketen) anfangen und bei ausreichend Bandbreite die Qualität steigern, soweit die Verbindung es zuläßt?

    Die Anschaffung eines RasPi 3 oder 4 ist nicht das Problem, nach 40 Jahren IT ist das aber so gar nicht mein Ansatz, Probleme einfach mit mehr Hardware zu erschlagen, beim RPi geht das, in den meisten anderen Fällen aber nicht, da kommt der Ehrgeiz durch, den Fehler zu finden. Sollte sich rausstellen, daß die Software tatsächlich höhere Hardwareanforderungen hat, oder daß ein Bug vorliegt, der sich über mehr Leistung umgehen läßt, kann das eine Lösung sein, aber zuerst interessiert mich, wo das Problem liegt, ob das per Konfiguration lösbar ist (das Problem hab' nicht nur ich, das Problem tritt auch auf diversen RPi3 auf, ich suche schon länger nach der Ursache, stoße aber immer nur auf diverse, nicht wirksame Anpassungen in der [definition='2','1']advancedsettings[/definition].xml), oder per Update von LibreElec, Kodi oder Addon. Ich könnte auch einfach Joyn vom Handy oder Tablet auf den TV streamen, oder einen Laptop da hin stellen, würde das Problem auch verdrängen (aber nicht lösen).

  • jo, wenn man qualitaetsaenderungen sieht ist das eigentlich immer adaptive streaming. aber wenn man die nicht sieht weiss man nicht ob es nicht doch auch adaptive streaming ist, bloss halt das die niedrigeren bitraten z.b. fehlen.

    wenn du jetzt gerade vor anfang des ruhestandes bist und ein neues hobby brauchst kannst du gerne versuchen da experte zu werden, ich gebe dir gerne pointer wie du beliebig viel zeit verplempern kannst damit. z.b. gibts pakete die man in den linux kernel reinbauen kann, mit denen man dann genauere performance logs jeder einzelnen tcp-verbindung rausbekommt, und wenn man die analysiert weiss man danach vielleicht mehr. Gibt ja auch keine Diagnostik. siehe meine bitte hier im thread:

    https://forum.kodi.tv/showthread.php?tid=352969

    So wie ich das verstehe aus dem thread kann dann ja wohl das derzeitige adaptive streaming im kodi garnicht die bitrate waehrend des abspielens... oder ich verstehe es falsch. aber der hat da ja wohl nie was mehr gemacht.

    Hast Du mal versuch beim einsetzen vom ruckeln zu rebooten und zu gucken ob das dann das ruckeln erst mal wieder rauszoegert ?

    ansonsten, zum eingrenzen kannst du dir ja alternativ nochmal ein osmc auf eine andere sd karte tun und gucken ob das anders reagiert.

    ja, kann schon verstehen, wenn du das analysieren willst, habe leider selbst zuviele andere baustellen, und siehe oben: zuerst muesste man wohl probieren, diagnosik in den adaptive streaming python code reinzubasteln um zu verstehen, was da passiert.

  • Nö, ich glaub' nicht ;)

    Du steckst da so tief drin, daß ich schon jetzt nur die Hälfte von dem verstehe, was da in dem Link steht.
    So tief wollte ich da nicht einsteigen, da müßte ich zunächst mal Linux lernen plus die Besonderheiten von LE und anschließend noch Kodi samt Grundlagen zu Video, Codecs, Streaming etc.
    Ich bin zu alt für den Scheiß....

    Ja, Reboots hatte ich mehr als genug, ohne Änderung.

    Im Moment kann ich gar nichts tun, das Addon läuft nicht, scheint auf Seiten von Joyn Änderungen gegeben zu haben, die zu Fehlern führen. Offensichtlich nicht bei jedem, bzw. nicht sofort: [Pre-Release] Joyn VOD/Live

    Ich danke Dir trotzdem für Deine Unterstützung, hab' einiges gelernt, vielleicht auch, daß ich da mit meinen Mitteln wohl eher nicht weiter komme.
    Ich versuche mal, mit anderen Addons auf die einzelnen Mediatheken zuzugreifen, mal schauen, was da passiert, warte auf ein Update des Joyn-Addon und steige vielleicht auch mal um auf einen RPi 4, obwohl die CPU-Auslastung (die zeigt er ja live an, wenn Debuglogging aktiv ist, wußte ich vorher auch nicht) beim Abspielen von TVNow VOD (selbes System wie Joyn, Mediathek, Widevine codiert) nicht kritisch wird.

    Hat noch jemand eine Idee, wie man das Buffering auf Datenträger umleiten kann auf eine USB-Disk/USB-Stick?

    Edit:
    Selbe Folge über das Pro7 Addon gestartet, läuft ohne Probleme. Allerdings meinen alten Augen nach nur in SD, bei Joyn war es gefühlt HD (kann ich das irgendwo anzeigen, in welcher Auflösung ein Stream aktuell läuft?)

  • Das war es, was ich gesucht habe. Jetzt weiß ich, daß die Mediathek der Pro7 Gruppe in nicht mal SD liefert und die Dekodierung HW-basiert ist. Die CPU-Last ist auf allen 4 Kernen überschaubar, da sehe ich keinen Engpaß. Leider läuft Joyn ja aktuell nicht, so daß ich nicht direkt vergleichen kann.

    Adaptive Streaming müßte ich aber erkennen können, wenn sich während des Streamings die Auflösung ändert, oder?


    Gibt's einen ähnlichen Shortcut auch für die Netzwerkübertragungsrate?

  • Wuesste im Kodi nix weiteres zur online Diagnose als 'O'.

    Das mit dem adaptiven heisst ja auch nicht, dass da notwendigerweise verschiedene bitraten unterstuetzt werden. Oder selbst wenn, dann kann es ja sein (wie ich vermute), das das kodi adaptive streaming da bloss am anfang eine bitrate auswaehlt. Geht vor allem darum, dass beim adaptive streaming halt das video in vielen kleinen haeppchen zerstueckelt rumliegt und der client immer nach einer bestimmten menge nachfragt und dadurch wird die ganze geschichte ziemlich kompliziert und es koennen sich ueberall fehler einschleichen.

  • Scheinbar war das ein Problem des Joyn-Addon (obwohl ich das anders in Erinnerung hatte).
    Das aber ist durch die Änderung auf Seiten von Joyn (und den wohl ähnlich anstehenden Änderungen der vergleichbaren Dienste) tot, damit ist das Problem eigentlich erledigt.
    Eigentlich ist für mich das ganze System RasPi/Kodi damit erledigt, das war für mich eine Ergänzung des Fernsehers, Filme und Serien "aus dem Netz" gehen ohnehin nicht mehr (aus technischen UND juristischen Gründen), Joyn auf Kodi ist tot, die anderen Mediatheken gehen den selben Weg, Bilder mache ich auf dem PC, Musik im Auto, YouTube und PVR kann der TV native, ich brauche das nicht mehr.

    Aber Dir vielen Dank für Deine Unterstützung, ich habe viel gelernt. Eins noch, weißt Du, wo noch überall adaptive Streaming genutzt wird? Mir ist sowas noch nie aufgefallen, außer eben bei den Apps des TV selbst für die Mediatheken der TV-Sender (die dann auch nicht mehr laufen werden, weil mein TV ebenfalls kein Widevine/CDM-VMP kann).
    Ist das eine Nischentechnik, oder etwas, was in Zukunft mehr oder weniger überall zu erwarten ist?

Jetzt mitmachen!

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