Cache für Videowiedergabe

  • Hallo,


    ist es möglich den Cache bei Videowiedergabe zu vergrößern?


    Hintergrund ist, dass ich gerne meine Filmsammlung mounten möchte. Das funktioniert im Heimnetz super, über das Internet allerdings nur mit Rucklern. Grund hierfür ist aber nicht etwa zuwenig Upstream, sondern meiner Meinung nach ein zu geringer Cache.


    Ich habe auf auf meiner Server-Box 10 Mbit/s Upstream und viel mit verschiedenen Protokollen und Parametern experimentiert. Die beste Möglichkeit, die ich gefunden habe war ein zweites VPN aufzusetzen, das die eigentlichen Daten (nach der auth) nicht verschlüsselt und dieses nur dafür zu benutzen, den Film-Ordner per NFS zu mounten. Damit habe ich eine Übertragungsrate beim Kopieren von Dateien von fast 1 MB/s.


    Allerdings ruckeln ALLE Filme. Auch solche, die nur einige hundert MB groß sind. Diese kann ich innerhalb von rund 15 Minuten vom Server auf den Client kopieren. Spielt man sie allerdings direkt vom Mount ab, ruckeln die Filme. Da die Spielzeit 90 Minuten und mehr beträgt, ist auch laut Router der Upstream nur zu einem Bruchteil ausgelastet.


    Im Umkehrschluss ist also meiner Meinung nach das Problem, dass zu wenig Daten in den Cache geladen werden und somit viel zu spät (für einen entfernten Mount) die Daten gelesen werden, die als nächstes abgespielt werden müssen. Würden diese bereits etwas früher gelesen, bevor sie gebraucht werden, hätte man keine Ruckler.


    Toll wäre daher eine Config-Option, mit der man die Größe des entsprechenden Caches frei konfigurieren kann.


    Danke :smiling_face:

  • Habe ich das richtig verstanden?
    Deine Box nutzt eine VPN Verbindung zum Server, d.h. der Server ist nicht im lokalen Heimnetz?


    Wie baust Du die VPN Verbindung auf?
    Welche Geräte sind da im Spiel?


    Hast Du mal gemessen, welche Datenrate grundsätzlich durch deine VPN Verbindung geht?

    Grüße
    ...jp

  • Wichtig wäre auch zu wissen, welche Bitrate die Videos haben (Bild und Ton).


    Edit:

    Damit habe ich eine Übertragungsrate beim Kopieren von Dateien von fast 1 MB/s

    Damit darf die Bitrate der Filme 8192kbit (danke @TSMusik :winking_face: ) nicht übersteigen (Bild + Ton), um ohne Cache auszukommen. Praktisch ist es eher noch weniger. Ohne Cache übrigens deshalb, weil ich meine, dass es keinen gibt. Kann aber auch sein, dass ich das gerade drucheinander bringe...

    2 Mal editiert, zuletzt von b_s101 ()

  • > Habe ich das richtig verstanden?
    > Deine Box nutzt eine VPN Verbindung zum Server, d.h. der Server ist nicht im lokalen Heimnetz?


    > Wie baust Du die VPN Verbindung auf?
    >Welche Geräte sind da im Spiel?


    > Hast Du mal gemessen, welche Datenrate grundsätzlich durch deine VPN Verbindung geht?


    Die Box baut eine VPN-Verbindung zum Server auf. Ist OpenVPN. Keine Compression und kein Cipher. Ergo nur Zertifikatbasierter Login - danach keine Encryption mehr (ist mir aber auch egal, da über dieses VPN lediglich eine NFS-Freigabe des Film-Ordners besteht und das mein Provider ruhig mitlesen darf).


    Die VPN-Verbindung nutzt mssfix, NFS wird per tcp gemountet und MTU-Pathdiscovery funktioniert (mit tcpdump überprüft). Daher gibt es auch keine Beeinträchtigung durch unnötige Fragments.


    Klar habe ich gemessen, wieviel durch die VPN-Verbindung geht. Ich habe das auch alles nur so ausführlich geschrieben, damit deutlich wird, dass es nicht an der VPN-Verbindung oder dem mount liegt. Ich habe über besagte Konstellation das Movie-Dir gemountet. Und dann per rsync --progress /mnt/file /local/file die Übertragungsrate gemessen und bin auf 1MB/s (=8Mbit/s) gekommen. Das ist SUPER für eine Leitung mit 10Mbit Upstream, da ja von der Bruttobandbreite noch Overhead für VPN und NFS abgeht.


    Wieviel Bitrate meine Filme haben spielt keine Rolle (soll heißen es ruckelt sowohl bei niedrigen als auch bei hohen Bitraten). Dass die Bitrate unter der zur Verfügung Stehenden Nettobandbreite liegen muss, ist natürlich klar. Aber selbst wenn nur 20% der Bandbreite genutzt wird, ruckelt es immer wieder. Es wird einfach zu lange gewartet, bis neue Daten gelesen werden. Dann sind die natürlich nicht schnell genug aufgrund von Latenz und Übertragungsgeschwindigkeit. Würden die Daten vorher gecached (auch wenn es nur ein relativ kleiner Cache wäre), hätte man das Problem nicht, denke ich.


    Wie gesagt passiert das auch bei Filmen, die ich in 15 Minuten vom Server zum Client kopieren kann (natürlich über VPN und NFS). Wird allerdings direkt von dort der Film gestartet, ruckelt es, obwohl zum Lesen der Daten nicht nur 15 Minuten sondern eine Vielzahl davon zur Verfügung stehen würden (zur Verfügung steht ja die gesamte Laufzeit des Films, also 90 Minuten oder mehr).

  • Ich kann übeigens den Kopiervorgang einer 2,5 GB großen .mkv (x264) mit "cp" starten und nur 1 Sek später die Wiedergabe der noch unvollständigen Datei starten und dann ohne Ruckler schauen. Leider ohne Ton (liegt wohl daran, dass zum Zeitpunkt des startens der Audiostream noch nicht korrekt gelesen werden konnte). Aber das zeigt ja, dass es nicht an der Bandbreite hapert oder die Box irgendwie überlastet ist, sondern der MoviePlayer lediglich nicht rechtzeitig genug (für eine remote Wiedergabe) die Daten liest und ein (größerer) Cache helfen würde. Da ruckelt es nämlich schon bei 600MB großen Filmen mit niedriger bitrate.

  • Ich hab mal schnell hier bei e2RemotePro (Apfel App) nachgeschaut: Hier kann man den Cache für a)Live–Stream und b)Aufnahmen–Stream jedenfalls je getrennt einstellen.
    Über die Funktionalität dessen kann ich aber nichts sagen.

  • Zwischenstand: Ich kann kleinere Filme jetzt ruckelfrei abspielen - bei etwas größeren, habe ich noch Probleme. Aber keine Zeit mehr heute das weiter zu testen und die Grenze zu testen. Mache ich morgen oder übermorgen.
    Danke jedenfalls schonmal - das hilft etwas :smiling_face:

  • Habe noch ein wenig getestet und optimiert.
    Ich kann jetzt so gut wie alles ruckelfrei abspielen. Vielen Dank @juanito_perez! Es lag wirklich am pagecache!


    Ein Problem habe ich noch: Ich kann zwar sogar Aufnahmen jetzt ruckelfrei abspielen (wow!), aber es wird immer wieder der Spinner angezeigt und im Log steht, dass der main thread nicht idle ist. Der Film läuft trotzdem ruckelfrei weiter, nur auf die Fernbdienung reagiert die Box dann nicht, bis der Spinner wieder weg ist. Das Problem habe ich nur bei Aufnahmen (die die Bandbreite aber auch bis ans aüßerste ausreizen).

  • Hätte ich gemacht, wenn da was interessantes drin stehen würde. Aber hier ist es:


    Der erste Spinner hat übrigens fast 60 Sek angehalten - die anderen jeweils nur ein paar Sekunden.

    Einmal editiert, zuletzt von maluhi ()