Hallo,
hier ein Vorschlag, der zumindest in meinem Fall zum Erfolg geführt hat:
Problem/Rahmenbedingungen:
Ich habe seit kurzem auch einen RPi und hatte ebenfalls das Problem mit dem ständigen buffern (1080p, mkv-container, h.264 codec)
Da ich es mir nicht erklären konnte, habe ich sehr viel gelesen und Unterschiedliches probiert:
- alternatives OS (Openelec, Raspbmc)
- Übertakten (mitsamt dem Einbau von Kühlkörpern)
Beides führte nicht zum Erfolg.
Mein RPI ist per HDMI mit einem Onkyo TX SR 876 verbunden. Das Gerät ist in der Lage DTS und AC3 per Pass-Through vom RPi zu erhalten, ohne dass der RPi sich hierfür mit eigener CPU-Leistung krumm machen müsste (und damit wertvolle Ressourcen, die er für das reibungslose Streamen benötig, verschwendet).
Die Hinweise in einem Forum, man solle sich die Codecs kaufen, halte ich für Quatsch, da nämlich h.264 gerade vom Raspberry unterstützt wird. Das konnten auch durch andere User verifiziert werden, die sich die Codecs gekauft haben und weiterhin "Stutter"-Probleme bei 1080p-Material hatten.
Nun lass ich weiterhin, dass manche User bei einer Kabel-Lan-Verbindung absolut keine Schwierigkeiten hatten und andere wiederum Abhilfe durch die Verwendung eines WLan-Sticks erzielen konnten. Die meisten der aktuellen Wlan-Sticks schaffen die 150MBit (oder gar mehr), mithin also mehr als das 100Mbit-Kabel-Lan.
Das der Lan-Port im RPi wohl an einen insgeamt relativ langsamen USB-Host gekoppelt ist (so hab ich es zumindest beim Lesen verstanden), existiert also sowohl für die Lan-Verbindung über Kabel als auch Wireless derselbe Flaschenhals.
Es leuchtete mir aufgrund dessen also überhaupt nicht ein, dass der vermeintlich schnellere WLan-Dongle ein besseres Ergebnis in der Bandbreite und damit beim Streaming erzielen sollte, da er seine Daten durch denselben Flaschenhals wie auch das Kabel schiebt.
Nun habe ich angefangen, den Fehler bzw. die Lösung des Problems in meinem Netzwerk zu suchen.
Mein Netzwerk ist wie folgt aufgebaut:
1. Fritzbox 7390 (1.000er LAN):
- Port 1: Raspberry (100er LAN)
- Port 2: weiterer D-Link-Switch (siehe unten)
2. Weiterer D-Link Switch (1.000er Lan)
- Port 1: PC (1.000er LAN)
- Port 2: Windows Home Server (100er LAN) (Samba-Freigabe)
Die Geräte sind jeweils über Cat5e-Kabel verbunden. Alles in allem also eine Infrastruktur, die grundsätzlich dazu geeignet ist, dass die Medien in 1080p ganz entspannt vom Homeserver zum RPi gestreamt werden müssten (wenn auch der Homeserver in diesem Fall auch nur mit einem 100er LAN ausgesattet ist), ohne dass es zu Aussetzern kommt.
"Beschneidung des Netzwerks":
Wer selbst eine Fritzbox 7390 in Gebrauch hat, weiß, dass man in den Netzwerkeinstellungen für jeden Port auswählen kann, ob er mit 1GBit oder 100Mbit (energy saver) betrieben werden soll.
Aus irgendeinem unerfindlichen Grund habe ich alle Ports von 1 Gbit auf 100Mbit umgestellt. Anschließend den Raspberry neugestartet und wieder eine Test-File abgespielt.
Wie durch ein Wunder hatte ich von jetzt auf gleich keinen Aussetzer mehr. Auch die Debugging-Anzeige, die ich während des Abspielens dazuschaltete, zeigte, dass der Puffer nun immer konstant hoch blieb und nur in Ausnahmefällen mal kurzzeitig auf 80% fiel, aber dann sehr schnell wieder hoch auf 90+.
Anschließend habe ich noch ein paar mal hin- und hergewechselt zwischen (1Gbit und 100Mbit auf allen Ports), um dieses Ergebnis zu verifizieren. Nach jedem Umstellen im Router war es immer nötig den RPi neuzustarten. Ich hatte es nun in der Hand den RPi bei der Wiedergabe zum "Stutter" zu bringen (Fritzbox auf 1Gbit auf allen Ports) bzw. die Wiedergabe flüssig und ohne jeden Aussetzer zu gestalten (Fritzbox auf 100 Mbit auf allen Ports). Es handelt sich also um keinen Zufall. Das Ergebnis ist bei mir absolut rekonstruierbar.
Anschließend bin ich noch dazuübergegangen wahlweise nur Port 1 (RPi) auf 100Mbit und Port 2 (D-Link-Switch) auf 1GBit zu stellen. Das Ergebnis war, dass der Puffer nun wieder abbaute, aber sehr viel langsamer als sonst als die Fritzbox insgesamt auf allen Ports auf 1GBit lief.
Lösung:
Kurzum lautet die Lösung für ruckelfreies/stutterfreies Streamen: Entschleunigen der für das Streamen verwendeten Netzwerkverbindungen von 1 GBit auf 100Mbit.
Dieses Ergebnis hätte ich (kein Informatiker) nie erwartet.
Fazit:
Das Ergebnis passt auch gut zu den widersprüchlichen Angaben, die man sonst in Foren liest. Die User haben bei ihren Äußerungen ("Bei mir läuft alles wunderbar über das LAN-Kabel" oder "Bei mir ruckelt es nur über LAN-Kabel") nie dazugesagt, welche LAN-Verbindung sie nutzen. Offenbar sind all diejenigen User benachteiligt, die eigentlich ein schnelleres LAN daheim installiert haben, damit nichts dem FULL-HD-Streaming im Wege steht *welch Ironie*.
Dass mit den WLan-Dongles offenbar auch unproblematisch gestreamt werden kann, hängt möglicherweise mit der Wandlung der elektrischen Signale in Funksignale zusammen?! Das muss kann uns ja dann mal ein Fachmann näher erläutern.
Ich hoffe, dass diese Erkenntnisse künftig auch anderen Nutzern von Hilfe sind, die wie ich absolut keine Erklärung für die Bild-Ruckler bei der Wiedergabe von 1080p-Material hatten.
Gruß,
Kailly