Wie funktioniert HTTP Adaptive Bitrate Streaming funktioniert auf dem iPhone?
Apple aufgenommen hat HTTP Adaptive-Bitrate-Streaming auf dem iPhone OS 3.0, insbesondere Safari erledigt dies automatisch.
Ich würde gerne spielen, mit diesem in eine kostengünstige Art und Weise, aber ich erwarte, dass Sie benötigen, einen benutzerdefinierten HTTP-server im schlimmsten Fall, und interessante PHP/etc-scripting-im besten Fall.
Aber zuerst muss ich wissen, was die Protokoll-Unterschiede oder standard ist. HTTP ist ziemlich einfach, wie in einem Protokoll, sondern mit adaptiver bit-rate bedeutet, dass die Dateigröße unterschiedlich ist, ist der chunk-Standorte sind Verschieden bei verschiedenen Bitraten, etc. Zum Beispiel stellt der client den server anweisen, die etwas besonderes über den Bach, wie es ist ein Download, oder ist es alles gehandhabt wird auf der server-Seite?
Beseitigung buffering-Pausen für die Endbenutzer ist sehr attraktiv für sowohl live-und aufgezeichneten video-streams, und dabei sowohl über HTTP ist sogar noch besser aufgrund der vielen Netzwerke und Regierungen sind, beschränken nicht den port 80 traffic.
- Was sind die technischen details für HTTP adaptive bitrate streaming, vor allem Apple ' s implementation?
- Wo ist dies am besten umgesetzt werden - Teil der HTTP-server selbst, ein Teil von einem mod in einem script...?
- Welche Veränderungen sind erforderlich, damit der client-Seite, wenn man zur Umsetzung dieser in eine Bewerbung?
InformationsquelleAutor Adam Davis | 2009-07-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Update
Sieht aus wie von Apple gemacht, ein IETF-Vorschlag, und einige Leute arbeiten bereits an segmenters:
HTTP-Live-Streaming - draft-pantos-http-live-streaming-01
http://tools.ietf.org/id/draft-pantos-http-live-streaming-01.txt
iPhone HTTP-Streaming mit FFMpeg und ein Open-Source-Segmenter
http://www.ioncannon.net/programming/452/iphone-http-streaming-with-ffmpeg-and-an-open-source-segmenter/
Sieht aus wie der HTTP-server fungiert einfach als dumm, HTTP-server. Stochern die Beispiel-website zur Verfügung gestellt von Akamai gibt mir genug Infos um loszulegen mit statischem Inhalt-streaming.
http://iphone.akamai.com/
Dem whitepaper ( http://www.akamai.com/dl/akamai/iphone_wp.pdf ) bietet Informationen über die transport-stream-Kodierung, also die .ts-streams sind einfach.
Bietet die website eine M3U8-Datei, die einfach eine M3U-Playliste, aber in der UTF-8-Zeichenkodierung-format.
Diese Datei dann links zu einer M3U8-Datei für jede bitrate. Ich nehme an, Sie alle müssen Einschnitte bei den gleichen Positionen (alle 2 oder 10 Sekunden, zum Beispiel), so dass die Umschaltung nahtlos ist. Es scheint völlig client-driven - der Kunde entscheidet, wie, die Bandbreite zu Messen und um welche version es geht, zu erhalten.
Den Inhalt der main-Datei:
Dann alle anderen Dateien sind:
hi/prog_index.m3u8
med/prog_index.m3u8
lo/prog_index.m3u8
Das funktioniert mit dem HTML 5 video-tag:
Gibt es noch eine Menge unbeantwortete Fragen, aber das ist wahrscheinlich genug, um loszulegen.
InformationsquelleAutor Adam Davis
Und ein kleiner player in Python+GStreamer http://code.google.com/p/hls-player/
InformationsquelleAutor elmarco
Sehen, eine open-source-encoder und segmenter und einige andere Coole Sachen 🙂
http://www.ioncannon.net/programming/452/iphone-http-streaming-with-ffmpeg-and-an-open-source-segmenter/
InformationsquelleAutor woo