2016-06-02 5 views
0

Ich habe kürzlich ein Video auf YouTube abgespielt und ein Gedanke kam mir in den Sinn. Wenn Videos abgespielt werden, kann ein Benutzer im Video springen und das Video wird an diesem Punkt ohne Probleme fortgesetzt.Wie sind ungepufferte Videostreams auf halbem Wege gestartet?

Was ich nicht finden kann, ist, wie das funktioniert, ich weiß, dass wenn ich eine Datei über HTTP anfrage, es das ganze Ding herunterlädt, so scheint das Starten eines binären Stroms in der Hälfte des Videos mit HTTP nicht möglich. Gibt es ein RFC oder ein ähnliches Dokument darüber, wie Browser dies tun?

Danke

+1

Ich verstehe, dass Videos, die über das Internet bereitgestellt werden, in kleinere Dateien unterteilt sind, so dass sie abhängig von der Zeit, die der Benutzer anfordert, heruntergeladen werden können. Es gibt auch das Konzept des "Medienservers", eines Computers, der sich auf die Manipulation und den Zugang zu Mediendateien wie Videos und Tondateien spezialisiert hat. Ich habe jedoch keine genaue Antwort auf Ihre Frage. –

Antwort

2

Es gibt ein paar verschiedene Technologien sind jedoch alle im Wesentlichen können Sie bestimmte eine im Video-Offset und dann ein ‚Brocken‘ von dort herunterladen.

Der einfache Weg, dies zu tun, ist mit Bytebereichen und progressivem HTTP-Download 0 gibt eine RFC, die sie hierbei um:

Ein ähnlicher, aber etwas komplizierter Mechanismus hinter der ist B. HLS, MPEG-DASH, Smooth-Streaming usw. Diese Protokolle zerlegen ein Video in mehrere Abschnitte (z. B. 10 Sekunden lange Segmente) und erzeugen auch mehrere unterschiedliche Codierungen des Videos jeweils auf unterschiedlichen Bits Raten.

Der Client kann dann den nächsten Chunk basierend auf den aktuellen Netzwerkbedingungen anfordern - wenn das Netzwerk beschäftigt ist oder wenn der Client eine Low-Band-Verbindung verwendet, kann er den nächsten Chunk von einer niedrigen Bitratencodierung des Videos anfordern. Wenn sich die Netzwerkkonnektivität verbessert, kann sie von progressiv höheren Bitraten anfordern, bis sie das Maximum erreicht.

Sie können dies in Aktion sehen, wenn Sie sich die in YouTube verfügbaren "Statistiken für Nerds" ansehen, wenn Sie mit der rechten Maustaste auf das Video klicken - sehen Sie sich die Verbindungsgeschwindigkeitsgrafik an.

Dieser Mechanismus bedeutet auch, dass der Client Brocken von weiter vorne (oder hinter) als die aktuelle Position im Video anfordern kann - solange es nicht offensichtlich live ist!

Es ermöglicht auch einen schnelleren Start, wenn Sie vorwärts springen, da die Wiedergabe von einer niedrigeren Bitrate starten kann, die schneller heruntergeladen und wieder auf die höhere Bitrate gebracht werden kann. Das kann man oft sehen, wenn man mit Diensten wie Netflix herumspielt - wenn man vorwärts springt, kann es anfänglich eine geringere Qualität für eine kurze Zeit sein.

0

YouTube speichert die Videos in mehreren Blöcken. Sobald jeder Chunk seinen Download abgeschlossen hat, können Sie diesen Videoabschnitt abspielen. Betrachte sie als individuelle Split-Videos.

Wenn Sie versuchen, in die Mitte zu springen, beginnen sie mit dem Herunterladen des erforderlichen Videos und starten die Wiedergabe. Daher können Sie in die Mitte springen.