天天看點

MPEG-DASH簡介

MPEG-DASH簡介

         MPEG-DASH(HTTP上的動态自适應流傳輸,ISO / IEC 23009-1)是由MPEG和ISO準許的獨立于供應商的國際标準,它是一種基于HTTP的使用TCP傳輸協定的流媒體傳輸技術。MPEG-DASH是一種自适應比特率流技術,可根據實時網絡狀況實作動态自适應下載下傳。

         類似蘋果公司的 HTTP Live Streaming(HLS)方案,MPEG-DASH 會将媒體内容封裝成一系列小型的基于 HTTP 的檔案片段,每個片段包含的時間可以設定,一般包含時間較短但是每個片段有多種碼率的版本,這樣可以更精确地實作網絡自适應下載下傳。用戶端将根據目前網絡條件自适應地選擇下載下傳和播放目前網絡能夠承載的最高比特率版本,這樣既可以保證目前媒體的品質又能避免由于碼率過高導緻的播放卡頓或重新緩沖事件。是以,MPEG-DASH可以實作動态無縫适應實時的網絡條件并提供高品質的播放内容,擁有更少的卡頓,極大地提升了使用者體驗。

         目前,MPEG-DASH已經被越來越多的應用在網際網路上,随着一些國内外有影響力的大公司如Netflix、YouTube、Google和愛奇藝等的加入,加速了MPEG-DASH協定的部署。有了這些主要的網際網路流量來源,MPEG-DASH已經占據了網絡流媒體總流量的半壁江山。

         MPEG-DASH傳輸系統架構由HTTP伺服器和DASH用戶端兩部分組成。HTTP伺服器存儲着DASH檔案,主要包含兩部分:媒體描述檔案MPD和DASH媒體檔案。DASH媒體檔案主要由分段媒體檔案和頭資訊檔案兩部分組成。

MPEG-DASH簡介

         圖為用戶端根據實時網絡情況進行下載下傳的示範圖,首先HTTP 伺服器端将媒體檔案切分成一個個時間長度相等的小分片,每個分片被編碼為不同大小的碼率;這些分片可以通過GET請求下載下傳,用戶端通過評估自身的性能和帶寬情況,下載下傳相應碼率的切片。碼率切換以媒體分段為機關,當網絡帶寬較好時,用戶端可以請求對應時間較高碼率的媒體分段;而當帶寬變差時,用戶端則下載下傳對應碼率較低的下一個媒體分段。由于不同品質的媒體分段在時間上都是互相對齊的,是以不同品質的媒體分段之間切換時,畫面是自然流暢的。

MPEG-DASH結構内容描述

         為了精确描述DASH的結構内容,MPEG-DASH引入了Media Presentation Description (MPD)的概念。MPD是一個XML檔案,它完整描述了DASH内容的所有資訊,包括各類音視訊參數、内容分段時長、不同媒體分段的碼率和分辨率以及對應的通路位址URL等等,用戶端通過首先下載下傳并解析MPD檔案,可擷取到與自身性能和帶寬最比對的媒體分段。下圖比較清晰地說明了MPD檔案的分層結構關系。

MPEG-DASH簡介
period

         一個DASH檔案可以包含一個或多個Periods,每個Period代表一段連續的視訊片段,假設一段碼流有60s被劃分為3個Periods,Period1為0-15s,Period2為16-40s,Period3為41-60s。在同一個Period内,可用的媒體内容的類型及其各個可用碼率(Representation)都不會發生變更。直播情況下,MPD檔案會發生實時變化,需要周期性地去伺服器請求新的MPD檔案,伺服器可能會移除已過時的Period,添加新的Period,而新的Period中可能會出現新的可用碼率,或者移除上一個Period中存在的某些碼率。

AdaptationSet

         一個Period由一個或多個AdaptationSets組成。例如,一個自适應集包含同一視訊内容的多個不同比特率的視訊分段,另一個自适應集包含同一音頻内容的多個不同比特率的視訊分段。每個AdaptationSet包含了邏輯一緻的可供切換的不同碼率的碼流(Representation)。例如,這些Representation具有相同的codec、language、resolution以及音頻通道數(5.1,stereo等)。這些Representation中可能包含一個(ISO profile)或多個(TS profile)media content components,因為ISO profile的mp4或fmp4 segment中通常隻含有一個視訊或者音頻内容,而TS profile中的TS segment同時含有視訊和音頻内容,當同時含有多個media component content時,每個被複用的media content component将被單獨描述。

Representation

         一個AdaptationSet由一組媒體内容配置可切換的Representations構成。每個Representation表示同一媒體内容但編碼參數互不相同的音視訊資料。包含了相同媒體内容的不同配置,即不同的分辨率、碼率等,以供用戶端根據自身的網絡條件和性能限制來選擇合适的版本下載下傳播放。

Segment

         每個Representation中的内容按時間或者其他規則被切分成一段段Segments,使得用戶端在播放時能夠靈活地在不同的Representations之間進行切換。每個Segment都有一個唯一的與之對應的URL位址,也可能由相同的URL與不同的byte range指定。DASH用戶端可以通過HTTP協定來擷取URL對應的分片資料。MPD中描述Segment URL的形式包括Segment list,Segment template,Single segment。

         如圖所示,DASH用戶端根據MPD-URL向伺服器發送請求擷取MPD,用戶端首先解析MPD内容,得到伺服器端DASH檔案的内容資訊,包括視訊分辨率、視訊内容種類、分段情況、幀率、碼率以及各個媒體内容的URL位址等媒體配置資訊。DASH用戶端通過分析上述DASH檔案内容資訊,根據目前網絡狀态以及用戶端緩沖區的大小等選擇合适的媒體版本。然後通過向伺服器發送請求,根據媒體URL下載下傳對應的媒體檔案進行流式傳輸。用戶端收到對應的媒體檔案之後,進行解封裝得到裸碼流,最後送入解碼器進行解碼播放。

MPEG-DASH簡介

MPEG-DASH 是一種基于 HTTP 協定進行資料傳輸的動态流媒體自适應技術,已經成為包括 3GPP、EBU、HBBTV 等多個國際标準的推薦流傳輸協定。與已有的采用 RTP 的方法相比,HTTP 不需要考慮防火牆的問題,并且可以充分利用已有的系統架構,如緩存、CDN 等。DASH本身也可以通過 WebSocket 和上層 push 等技術來支援低延遲的流推送, 而且不同于 HLS、HDS 和 Smooth Streaming,DASH 不關心編解碼器,是以它可以接受任何編碼格式編碼的内容,如 HEVC、H.264、VP9 等。由于其多方面的優勢,目前全景視訊也主要采用 DASH 協定進行傳輸,而且DASH協定針對全景視訊的的特性加入了一些特定功能以适應去全景視訊的傳輸。

繼續閱讀