HTTP Dynamic Streaming für den Flash Player

Wie bereits mit der Vorstellung des Flash Player 10.1 angekündigt, erhält das HTTP Dynamic Streaming Einzug in die Flash-Videowelt.

Zu den bisherigen beiden bisherigen Auslieferungsmethoden – Progressive Download über HTTP von einem Webserver und Streaming über RTMP von einem Streamingserver – kommt also nun eine weitere Methode hinzu. Somit hat Adobe nun nach Apple (QuickTime) und Microsoft (Smooth Streaming) endlich auch die HTTP-Streamingauslieferung im Programm.

HTTP Dynamic Streaming funktioniert sowohl für On-Demand- als auch für Live-Videos. Clientseitig werden Flash Player 10.1 oder Adobe AIR 2 benötigt.

Codecs für HTTP Dynamic Streaming

Als Codecs können die beiden wichtigen Codecs (H.264 und On2 VP6) in Flash verwendet werden. Selbstverständlich sind auch HD-Auflösungen kein Problem („Deliver high definition video up to 1080p, with bitrates from 700kbps up to and beyond 6Mbps”).

Vorteile gegenüber Progressive Download

Der Unterschied zum normalen Progressive Download besteht darin, dass das Video in viele einzelne kleine Datenblöcke zerstückelt wird, die dem Nutzer nacheinander ausgeliefert werden. Wesentlicher Vorteil: Der Anwender kann an eine beliebige Stelle des Videos springen (also wie beim echten Streaming). Der Server sendet dann einfach das passende Datenfragmente für die angesteuerte Stelle. Dies war bisher nur durch inoffizielle Workarounds oder selbsterstelle Lösungen möglich („Pseudostreaming”).

Die Anpassung der Qualität an die Bandbreite des Nutzers funktioniert so, dass einfach Datenfragmente in verschiedenen Qualitätsstufen vorhanden sind. Je nach Anbindung des Nutzers oder dessen aktuell verfügbare Bandbreite werden die passenden Fragmente ausgeliefert.

Des Weiteren können dank des HTTP Streamings auch Funktionalitäten wie DVR oder Content-Protection mit Adobe Flash Access 2 genutzt werden.

HTTP Streaming vs. RTMP Streaming

Selbstverständlich ist und bleibt echtes Streaming über das RTMP-Protokoll die erste Wahl. Dies liegt einfach daran, dass das HTTP-Protokoll nicht mit dem Hintergrund entwickelt wurde, zeitkritische Daten zu übermitteln und deshalb weniger geeignet ist für die Übertragung von Videodaten.

While the Real Time Message Protocol (RTMP) remains the protocol of choice for lowest latency, fastest start, dynamic buffering, and stream encryption, HTTP Dynamic Streaming enables leveraging of existing caching infrastructures ([…]), and provides tools for integrating content preparation into existing encoding workflows.

OSMF als Player für HTTP Streaming

Als fertigen Player kann auf das gestern in Version 1.0 veröffentlichte Open Source Media Framework zurückgegriffen werden.

Download

Für das Ausliefern der Videos wird einerseits ein serverseitiges Modul benötigt (Apache). Andererseits müssen die Daten im Vorfeld in die kleinen Datenfragmente zerlegt werden. Die nötigen Downloads stellt Adobe bereit.

Link: HTTP Dynamic Streaming
Archiv: Flash Player 10.1: NetStream-Klasse kann ByteArrays abspielen
Alternative: VCS Flash 10.1 HTTP Segment Streaming

[ad]

6 Gedanken zu „HTTP Dynamic Streaming für den Flash Player“

  1. Weiß jemand, wie es da mit der seek() function aussieht? Kann man in 10.1 bzw mit HTTP Streaming nun auch endliche zwischen den keyframes seeken?

  2. Wahrscheinlich nicht. Wahrscheinlich sind die angesprochenen "kleinen Datenfragmente" jeweil ein Keyframe und die danach folgenden non-keyframes.
    Definitiv kann man das aber erst sagen, wenn die F4F-Spezifikation auch wirklich im devnet auftaucht – da hängt gerade noch eine alte Version.

  3. Klingt logisch, dass ein Block immer mit einem Keyframe anfängt. Insofern vermute ich auch, dass man da eher nicht beliebig jeden Frame anspringen kann.

  4. Hi,

    wer lust hat kann sich ein bisschen mit einem flex demoprojekt beschäfiten. segmentiertes footabe material in 3 qualitäten habe ich auch reingepackt.

    filesize ist aber 180 mb..ihr braucht ein SDK wo ihr ab flash 10.0.0.0 oder höher exportierne könnt und natürlich den flashplayer 10.1 (am besten die debug version) installiert hab.

    http://onlinelib.de/demos/fhttp3/contentElements/downloads/Onlinelib_HTTP_StreamingDemoproject.zip

    habt ihr schon einen blick auf den file packager von adobe einen blick geworfen?

    ich frage mich echt wie die das machen wollen mit mehreren bitraten..wenn diese nicht die gleichen timepos in den i-frames haben wird das switching von verschiedenen qualitäten niemals funktionieren.

    dafür muss der encoder das für alle profile genau setzen.

    auch der hinweis in den adobe lizenzbestimmungen des packager finde ich "interesant"..dort steht das man die erstellten segmente nicht verschlüsseln darf…ich weiss auch wieso – das neue flash access DRM soll ja auch verkauft werden…:)

    trotzdem..danke adobe für das öffnen des netstreams..

    gary

  5. Kann man fuer den onelib flex player auch den f4fpackager zum segmentieren verwenden oder muss man den Kostenpflichtigen erwerben?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert