Bandbreitennutzung beim Livestream

Naddel_81

Banned
Registriert
Okt. 2006
Beiträge
3.878
Schönen guten Abend liebe CBler,

aktuell gucke ich den unterhaltsamen Rocketbeans-Stream auf Youtube in 1080p/60. Dabei habe ich spaßeshalber mal die Bandbreite im Router beobachtet. Durchschnittlich sind 3,5 MBit/s. Aber was ist mit den Spikes auf teilweise 25 MBit/s? Wäre ein solcher Stream auf einer herkömmlichen 16er Leitung nicht ruckelfrei ansehbar oder würde der Graph dann einfach flacher (eher am Limit, aber ohne Spikes) wegen eines gewissen Pufferns?



Bin auf euer Feedback gespannt.
 
Der Stream streamt teilweise unterhalb der Bitrate und lädt dann ab und zu größere Chunks mit voller Leitungsgeschwindigkeit nach. Diese Chunks werden aber erst in ein paar Sekunden benötigt, denn Livestreams haben lokal immer einen Buffer von mehreren Sekunden. Das heißt, während du dein aktuelles Bild hast, befinden sich die nächsten Sekunden des Streams bereits bei dir im Speicher. Entsprechend ist der Livestream auch um diese Sekunden verzögert.

Lange Rede kurzer Sinn: Ob du diese Chunks jetzt mit 50Mbit/s oder 16Mbit/s lädst, spielt keine Rolle, solange du noch genug Frames lokal "vorausgeladen" hast.
 
Die Streams basieren darauf, nicht darauf angeweisen zu sein, dass zum einem bestimmten Zeitpunkt eine bestimmte Datenrate zu Verfügung steht. Ich hab das mal für einen 50MBit/s Anschluss getestet. Wie du im Plot siehst, werden die Streamdaten für ca. 25s Streamdauer in 6 Bursts geladen. Während dieser Bursts wird die zur Verfügung stehende Datenrate voll ausgenutzt. Im Test wird die Datenrate jeweils über 10ms gemittelt. Wenn man über einen ausreichend großen Zeitraum mittelt, sieht man von den Bursts nichts mehr (das ist dann das was dein Router anzeigt).

Debug_short.png

(Achtung, logarithmische y-Achseneinteilung, die Markierungen zwischen 10 und 100 MBit/s stehen für 20, 50, 80)
 
Richtig, auf YouTube habe ich gerade mal nachgeschaut, müsste "Buffer Health" für die aktuelle Länge des Puffers stehen:
1OO7fqv.png

Auf Twitch heißt der Wert "Buffer Size". Fällt der auf 0, muss gebuffert werden.
 

Ähnliche Themen

Zurück
Oben