Ein progressiver Download ist die Übertragung digitaler Mediendateien von einem Server zu einem Client , typischerweise über das HTTP- Protokoll , wenn der Download von einem Computer aus gestartet wird. Der Nutzer kann die Wiedergabe der Medien bereits vor Abschluss des Downloads starten. Der Hauptunterschied zwischen Streaming-Medien und progressivem Download liegt darin, wie die digitalen Mediendaten vom Endgerät des Nutzers empfangen und gespeichert werden .
Ein Mediaplayer mit progressiver Download-Wiedergabe benötigt intakte Metadaten im Dateikopf und einen lokalen Puffer der heruntergeladenen Mediendatei. Sobald eine bestimmte Datenmenge auf dem lokalen Wiedergabegerät verfügbar ist, beginnt die Wiedergabe. Dieser Puffer wird vom Produzenten in den Encoder -Einstellungen der Datei hinterlegt und durch zusätzliche Puffereinstellungen des Mediaplayers verstärkt.
Geschichte
Ursprünglich war JPEG das erste visuelle Medium, das während des Downloads eine progressive Bildwiedergabe ermöglichte und daher als progressiver Download bezeichnet wurde. Die Unterscheidung zwischen dem technischen Verhalten des progressiven Downloads und der allgemeinen, kommerziellen Verwendung des Begriffs zur Beschreibung dieses Verhaltens wurde nicht dokumentiert, und es bestehen viele Unklarheiten hinsichtlich des Ursprungs des Begriffs im Vergleich zur Entstehung der technischen Implementierung. Apple verwendete 1997 in Bezug auf seinen QuickTime Media Player den Begriff „Fast Start “ [ 1 ] , um die kommerziell als progressiver Download bezeichnete Wiedergabe kodierter digitaler Medieninhalte zu beschreiben .
Progressive HTTP-Download im Vergleich zu Streaming-Medien
Das Nutzererlebnis ähnelt dem Streaming von Medien ; die Datei wird jedoch auf ein physisches Laufwerk des Endgeräts heruntergeladen. Sie wird üblicherweise im temporären Verzeichnis des zugehörigen Webbrowsers gespeichert, wenn sie in eine Webseite eingebettet war, oder in ein in den Einstellungen des verwendeten Mediaplayers festgelegtes Speicherverzeichnis umgeleitet. Die Wiedergabe ruckelt oder stoppt, wenn die Wiedergabegeschwindigkeit die Downloadgeschwindigkeit übersteigt. Nach weiterem Download wird die Wiedergabe fortgesetzt.
Diese Schnellstart-Wiedergabe ist das Ergebnis der Verschiebung der Metadaten vom Ende der digitalen Mediendatei an den Anfang. Durch diese Verschiebung erhielt der Mediaplayer alle notwendigen Informationen, um die Wiedergabe zu starten, während die Datei noch heruntergeladen wurde. Vor dieser Änderung befand sich die Zusammenfassung der Metadaten am Ende einer Mediendatei, und die gesamte Datei musste heruntergeladen werden, damit die Metadaten gelesen und die Wiedergabe gestartet werden konnte. [ 2 ]
HTTP-Pseudo-Streaming (oder progressiver Download) unterstützt , ähnlich wie Streaming Media oder HTTP Live Streaming , auch adaptives Bitraten-Streaming . Der Nachteil von HTTP-Pseudo-Streaming gegenüber Streaming Media liegt in der geringeren Sicherheit, da HTTP im Vergleich zu RTMP leichter abzufangen ist , sowie in den langen Ladezeiten beim Abrufen größerer Videos. [ 3 ]
Optimierung für HTTP-Pseudo-Streaming
MP4 - Dateien bestehen aus Datenblöcken , sogenannten Atomen . Diese Atome speichern Informationen wie Untertitel usw. Das spezielle Atom, das sogenannte Moov-Atom , speichert Informationen zur Videowiedergabe, z. B. Abmessungen und Bilder pro Sekunde. Diese Informationen sind wichtig, um die Videowiedergabe auf einem HTML- Videoplayer zu starten. [ 4 ] Da Atome in beliebiger Reihenfolge auftreten können, benötigen Webserver wie Nginx CPU-, Speicher- und Festplattenzugriffe, um das Moov-Atom zu finden , damit HTML-Video- Clients das Video abspielen können. Um HTTP-Pseudo-Streaming zu optimieren, ist es wichtig, das Moov-Atom an den Anfang der Datei zu setzen. Dadurch optimieren Webserver wie Nginx das Pseudo-Streaming, sodass Videos abgespielt werden können, ohne auf das vollständige Laden oder Scannen der Datei warten zu müssen. [ 5 ]
ffmpeg -i sample_input.mp4 -movflags faststart -acodec copy -vcodec copy sample_output.mp4
-movflags faststartDie Optimierung erfolgt durch Verschieben des Index (moov-Atom) an den Anfang der Datei. [ 6 ]-acodec copyExtrahiert die Audiospur unverändert aus der Eingabedatei.-vcodec copyExtrahiert das Video unverändert aus der Eingabedatei.
Durch diese Optimierung verhindern wir effektiv, dass Webserver wie nginx einen relativ hohen Rechenaufwand für die Suche nach dem Moov-Atom betreiben, wodurch die Wiedergabeleistung auf HTML-Video- basierten Clients verbessert wird. [ 5 ] [ 4 ]
Suche
Die Datei wird zunächst von Anfang an abgespielt. Nutzer können jedoch zu einem noch nicht heruntergeladenen Teil der Datei springen. Diese Funktion wird als „Suchen“ bezeichnet [ 7 ] und ermöglicht das Herunterladen und Abspielen eines beliebigen Teils der Mediendatei. Dies wird häufig als Pseudo-Streaming bezeichnet.
Für die Suche in Flash-Videos wird eine Liste von Suchpunkten in den Metadaten der Mediendatei benötigt. Diese Punkte sind Offsets im Video (sowohl in Sekunden als auch in Bytes), an denen ein neues Keyframe beginnt. Ein Webserver oder Medienserver, der den Download verarbeitet, muss Suchpunkte in der Abfragezeichenfolge der Download-Anfragen unterstützen.
Für andere Mediendateitypen wie MP4 oder MKV müssen Webserver einen speziellen Offset-Parameter verarbeiten können. Da sich der Name dieses Parameters je nach Server unterscheidet, muss er in den Player-Einstellungen angegeben werden.
Einige Server unterstützen die Suche nur über zusätzliche Module; diese sind unten aufgeführt. Die Namen der Suchparameter sind kursiv geschrieben .
| Server | Blitzsuche | MP4-Suche |
|---|---|---|
| Apache HTTP-Server | mod_h264 start mod_flvx start | mod_h264 Startzeit |
| lighttpd | Start | mod_h264 Startzeit |
| Nginx | http_flv_module start | http_mp4_module start |
| Wendiger Streamer | Start | Start |
Siehe auch
Referenzen
- ^ QuickTime Streaming Server 4.1 (PDF) , archiviert vom Original (PDF) am 06.07.2011 , abgerufen am 21.09.2010 .
Zwei Methoden werden üblicherweise verwendet, um Medien über das Web zur Echtzeitwiedergabe bereitzustellen: progressiver Download (Fast Start) und Echtzeit-Streaming.
- ^ Verständnis des MPEG-4-Filmatoms , abgerufen am 17.07.2015
- ^ Peter Luk. „Video Delivery: HTTP Pseudo-Streaming“ .
- ^ a b Billy Hoffman (2016). "Optimierung von MP4-Videos für schnelleres Streaming" .
- ^ a b "Module ngx_http_mp4_module" .
- ^ "FFmpeg-Formatdokumentation" .
- ^ Pseudo-Streaming in Flash , abgerufen am 17.07.2015
Externe Links
- Streaming vs. Progressiver Download , archiviert vom Original am 18.08.2010
- Webserver vs. Streaming-Server , Microsoft , abgerufen am 21.09.2010
- Flash-Video: Progressiver Download , abgerufen am 21.09.2010
- Video-Streaming vs. Progressiver Download , archiviert vom Original am 29.05.2015 , abgerufen am 29.05.2015