1、HTTP直播流介紹
HTTP實時流媒體提供了一個可靠的,成本效益的手段通過網際網路提供連續和長時間的視訊。它允許接收器使媒體的比特率适應目前網絡條件,以保持不間斷播放最好的品質。它支援插頁式内容邊界。它為媒體加密提供了一個靈活的架構。它可以有效地提供相同内容的多個呈現,例如:音頻翻譯。它提供了與大規模HTTP的相容性緩存基礎設施以支援向大量閱聽人傳遞。
自2009年首次釋出草案以來,HTTP Live Streaming已經有了已經被廣泛的内容制作者實施和部署,工具供應商,分銷商和裝置制造商。在裡面随後的八年,協定已被廣泛的提煉與各種媒體流媒體實作者進行回顧和讨論。
本文檔的目的是為了促進互操作性在HTTP實時流媒體實作之間通過描述媒體傳輸協定。使用這個協定,用戶端可以收到一個來自伺服器的連續媒體流以便并行呈現。
本文檔介紹協定的第7版。
2、概念
多媒體示範由統一資源指定辨別符(URI)[ RFC3986 ]播放清單。
播放清單是媒體播放清單或主播放清單。兩者都是包含URI和描述性标簽的UTF-8文本檔案。
媒體播放清單包含媒體片段的清單,當播放時依次播放多媒體示範。
這裡是一個媒體播放清單的例子:
第一行是格式辨別符标簽#EXTM3U。該線包含#EXT-X-TARGETDURATION表示所有媒體片段将會是10秒或更少。然後宣布三個媒體分段。第一和第二是9.009秒長, 三是3.003秒。
要播放此播放清單,用戶端首先下載下傳它然後下載下傳并播放在其中聲明的每個媒體分段。該用戶端将按照本文檔中的描述重新加載播放清單以發現任何額外的細分。資料應該通過HTTP [ RFC7230 ] 傳送,但是通常一個URI可以指定任何可以可靠傳輸的協定指定的資源按需。
主播放清單可以描述更複雜的示範。一個主播放清單提供了一組變體流,其中每一個描述了相同内容的不同版本。
變體流包括指定媒體的媒體播放清單以特定的比特率編碼,以特定的格式編碼,并以包含視訊的媒體的特定分辨率。
一個Variant流也可以指定一組Renditions。譯叢是内容的替代版本,例如制作的音頻不同的語言或不同的錄影機角度錄制的視訊。
客戶應該在不同的變體流之間切換以适應網絡狀況。客戶應根據使用者選擇Renditions優先。
關鍵詞“必須”,“不得”,“需要”,“應該”,“不應該”,“應該”,“不應該”,“推薦”,“可能”和“可選”文檔将按照RFC 2119 [ RFC2119 ]中的描述進行解釋。
3、媒體細分
媒體播放清單包含一系列組成的媒體片段整體介紹。媒體段由URI和可選地一個位元組範圍。
媒體播放清單中顯示了每個媒體段的持續時間通過其EXTINF标簽(第4.3.2.1節)。
媒體播放清單中的每個片段都有唯一的整數媒體序列數。媒體中第一個片段的媒體序列号播放清單為0,或在播放清單中聲明(第4.3.3.2節)。每隔一段的媒體序列号等于媒體序列号之前的段加1。
每個媒體段必須帶有編碼的延續從以前的媒體段的末尾的比特流序列号,一系列的值,如時間戳和連續性計數器必須不中斷。唯一的例外是媒體播放清單中第一個出現在媒體播放清單中的媒體細分媒體分段明确表示為不連續(第4.3.2.3節)。未标記的媒體不連續可以觸發播放錯誤。
包含視訊的任何媒體片段都應該包含足夠的内容資訊來初始化視訊解碼器并解碼連續集合包含段中最後一幀的幀; 網絡如果細分中有足夠的資訊,效率會得到優化解碼段中的所有幀。例如,任何媒體細分包含H.264視訊應該包含一個IDR; 之前的幀第一個IDR将被下載下傳,但可能被丢棄。
4、支援的媒體段格式
所有媒體片段必須采用本節所述的格式。其他媒體檔案格式的傳輸未定義。
一些媒體格式需要一個相同的位元組序列來初始化a可以解析Media Segment之前的解析器。這種格式特定的序列被稱為媒體初始化部分。媒體初始化部分可以由EXT-X-MAP指定(第4.3.2.5節)标簽。媒體初始化部分不可以包含樣本資料。
簡單的媒體播放清單
Live Media播放清單,使用HTTPS
說明:絕對
帶有加密媒體段的播放清單
主播放清單
主播放清單I幀
主播放清單與替代音頻
主播放清單與替代視訊