HTTP Live Streaming draft-pantos-http-live-streaming-10
http://tools.ietf.org/html/draft-pantos-http-live-streaming-10
Informational R. Pantos, Ed.
Internet-Draft W. May
Intended status: Informational Apple Inc.
Expires: April 18, 2013 October 15, 2012
HTTP Live Streaming
draft-pantos-http-live-streaming-10
Abstract This document describes a protocol for transferring unbounded streams of multimedia data. It specifies the data format of the files and the actions to be taken by the server (sender) and the clients (receivers) of the streams. It describes version 5 of this protocol. Status of this Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. This document may not be modified, and derivative works of it may not be created, and it may not be published except as an Internet-Draft. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on April 18, 2013. Copyright Notice Copyright (c) 2012 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. This Informational Internet Draft is submitted as an RFC Editor Pantos & May Expires April 18, 2013 [Page 1]
Internet-Draft HTTP Live Streaming October 2012 Contribution and/or non-IETF Document (not as a Contribution, IETF Contribution, nor IETF Document) in accordance with BCP 78 and BCP 79. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. The Playlist file . . . . . . . . . . . . . . . . . . . . . . 4 3.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . 4 3.2. Attribute Lists . . . . . . . . . . . . . . . . . . . . . 5 3.3. Standard Tags . . . . . . . . . . . . . . . . . . . . . . 6 3.3.1. EXTM3U . . . . . . . . . . . . . . . . . . . . . . . . 6 3.3.2. EXTINF . . . . . . . . . . . . . . . . . . . . . . . . 6 3.4. New Tags . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.4.1. EXT-X-BYTERANGE . . . . . . . . . . . . . . . . . . . 7 3.4.2. EXT-X-TARGETDURATION . . . . . . . . . . . . . . . . . 7 3.4.3. EXT-X-MEDIA-SEQUENCE . . . . . . . . . . . . . . . . . 8 3.4.4. EXT-X-KEY . . . . . . . . . . . . . . . . . . . . . . 8 3.4.5. EXT-X-PROGRAM-DATE-TIME . . . . . . . . . . . . . . . 10 3.4.6. EXT-X-ALLOW-CACHE . . . . . . . . . . . . . . . . . . 10 3.4.7. EXT-X-PLAYLIST-TYPE . . . . . . . . . . . . . . . . . 10 3.4.8. EXT-X-ENDLIST . . . . . . . . . . . . . . . . . . . . 11 3.4.9. EXT-X-MEDIA . . . . . . . . . . . . . . . . . . . . . 11 3.4.9.1. Rendition Groups . . . . . . . . . . . . . . . . . 13 3.4.10. EXT-X-STREAM-INF . . . . . . . . . . . . . . . . . . . 14 3.4.10.1. Alternative Renditions . . . . . . . . . . . . . . 15 3.4.11. EXT-X-DISCONTINUITY . . . . . . . . . . . . . . . . . 16 3.4.12. EXT-X-I-FRAMES-ONLY . . . . . . . . . . . . . . . . . 16 3.4.13. EXT-X-MAP . . . . . . . . . . . . . . . . . . . . . . 17 3.4.14. EXT-X-I-FRAME-STREAM-INF . . . . . . . . . . . . . . . 17 3.4.15. EXT-X-VERSION . . . . . . . . . . . . . . . . . . . . 18 4. Media segments . . . . . . . . . . . . . . . . . . . . . . . . 19 5. Key files . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . 20 5.2. IV for [AES_128] . . . . . . . . . . . . . . . . . . . . . 20 6. Client/Server Actions . . . . . . . . . . . . . . . . . . . . 20 6.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . 20 6.2. Server Process . . . . . . . . . . . . . . . . . . . . . . 21 6.2.1. Introduction . . . . . . . . . . . . . . . . . . . . . 21 6.2.2. Sliding Window Playlists . . . . . . . . . . . . . . . 23 6.2.3. Encrypting media segments . . . . . . . . . . . . . . 23 6.2.4. Providing variant streams . . . . . . . . . . . . . . 24 6.3. Client Process . . . . . . . . . . . . . . . . . . . . . . 25 6.3.1. Introduction . . . . . . . . . . . . . . . . . . . . . 25 6.3.2. Loading the Playlist file . . . . . . . . . . . . . . 25 Pantos & May Expires April 18, 2013 [Page 2]
Internet-Draft HTTP Live Streaming October 2012 6.3.3. Playing the Playlist file . . . . . . . . . . . . . . 26 6.3.4. Reloading the Playlist file . . . . . . . . . . . . . 26 6.3.5. Determining the next segment to load . . . . . . . . . 27 6.3.6. Decrypting encrypted media segments . . . . . . . . . 28 7. Protocol version compatibility . . . . . . . . . . . . . . . . 28 8. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 8.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . 29 8.2. Simple Playlist file . . . . . . . . . . . . . . . . . . . 29 8.3. Sliding Window Playlist, using HTTPS . . . . . . . . . . . 30 8.4. Playlist file with encrypted media segments . . . . . . . 30 8.5. Variant Playlist file . . . . . . . . . . . . . . . . . . 30 8.6. Variant Playlist with I-Frames . . . . . . . . . . . . . . 31 8.7. Variant Playlist with Alternative audio . . . . . . . . . 31 8.8. Variant Playlist with Alternative video . . . . . . . . . 31 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 32 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 32 11. Security Considerations . . . . . . . . . . . . . . . . . . . 33 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 34 12.1. Normative References . . . . . . . . . . . . . . . . . . . 34 12.2. Informative References . . . . . . . . . . . . . . . . . . 36 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 36
Pantos & May Expires April 18, 2013 [Page 3]
Internet-Draft HTTP Live Streaming October 2012
1. Introduction
This document describes a protocol for transferring unbounded streams of multimedia data. The protocol supports the encryption of media data and the provision of alternate versions (e.g. bitrates) of a stream. Media data can be transferred soon after it is created, allowing it to be played in near real-time. Data is usually carried over HTTP [RFC2616]. External references that describe related standards such as HTTP are listed in Section 11.
2. Summary
A multimedia presentation is specified by a URI [RFC3986] to a Playlist file, which is an ordered list of media URIs and informational tags. The URIs and their associated tags specify a series of media segments. To play the stream, the client first obtains the Playlist file and then obtains and plays each media segment in the Playlist. It reloads the Playlist file as described in this document to discover additional segments. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119].
…………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………
浙公网安备 33010602011771号