基於HTTP的動態自適應流(英語:Dynamic Adaptive Streaming over HTTP,縮寫DASH,也稱MPEG-DASH)是一種自適應位元速率串流技術,使高品質串流媒體可以通過傳統的HTTP網路伺服器以網際網路傳遞。類似蘋果公司的HTTP Live Streaming(HLS)方案,MPEG-DASH會將內容分解成一系列小型的基於HTTP的檔案片段,每個片段包含很短長度的可播放內容,而內容總長度可能長達數小時(例如電影或體育賽事直播)。內容將被製成多種位元速率的備選片段,以提供多種位元速率的版本供選用。當內容被MPEG-DASH客戶端回放時,客戶端將根據當前網路條件自動選擇下載和播放哪一個備選方案。客戶端將選擇可及時下載的最高位元速率片段進行播放,從而避免播放卡頓或重新緩衝事件。也因如此,MPEG-DASH客戶端可以無縫適應不斷變化的網路條件並提供高品質的播放體驗,擁有更少的卡頓與重新緩衝發生率。
此條目翻譯自其他語言維基百科,需要相關領域的編者協助校對翻譯。 |
MPEG-DASH是首個基於HTTP的自適應位元速率串流解決方案,它也是一項國際標準。[1]MPEG-DASH不應該與傳輸協定混淆——MPEG-DASH使用TCP傳輸協定。
MPEG-DASH使用現有的HTTP網路伺服器基礎設施。它允許如網際網路電視、電視機上盒、桌上型電腦、智慧型手機、平板電腦等裝置消費通過網際網路傳送的多媒體內容(如影片、電視、廣播等),並可應對變動的網際網路接收條件。自適應流解決方案的標準化是為向市場提供信心,使該解決方案可以用於通用部署,抗衡類似但更專有的解決方案,如微軟Smooth Streaming與Adobe的HDS。
不同於HLS、HDS和Smooth Streaming,DASH不關心編解碼器,因此它可以接受任何編碼格式編碼的內容,如H.265、H.264、VP9等。[2]
標準化
MPEG-DASH技術在MPEG之下開發。對DASH的工作始於2010年。2011年1月,它成為一項國際標準草案,並在2011年11月成為國際標準。[3]MPEG-DASH標準已於2012年4月發布為ISO/IEC 23009-1:2012 (頁面存檔備份,存於網際網路檔案館)。
DASH是一項與Adobe Systems HTTP Dynamic Streaming、蘋果公司HTTP Live Streaming(HLS)微軟Smooth Streaming相關的技術。DASH基於3GPP第9版中的Adaptive HTTP streaming(AHS)和Open IPTV Forum Release 2中的HTTP Adaptive Streaming(HAS)。[4][5]作為與MPEG協同運作的一部分,3GPP Release 10採用DASH(具有特定的編解碼器和操作模式)用於無線網路。[4]
DASH行業論壇(DASH-IF)[6]進一步促進和催化了MPEG-DASH的採用,並幫助將其從規範轉變為實際業務。主要的串流媒體和媒體公司,包括微軟、Netflix、Google、愛立信、三星、Adobe等都在實際業務中嘗試使用,並為不同使用環境建立了DASH使用指南。
MPEG-DASH也被整合在其他標準中,例如HbbTV中的MPEG-DASH支援(截至1.5版本)。[7]
概述
DASH是一項自適性串流技術,其將多媒體檔案分割為一個或多個片段,並使用超文字傳輸協定傳遞給客戶端。[8] 媒體演示描述(MPD)描述片段資訊(計時、統一資源定位符,以及媒體特徵,例如影片解析度和位元速率),並且可以根據使用環境以不同的方式組織,例如SegmentList, SegmentTemplate, SegmentBase和SegmentTimeline。[9] 片段可以包含任何媒體資料,但是規範提供了與兩種容器類型一起使用的特定指導和格式:ISO基礎媒體檔案格式(例如MP4檔案格式)或MPEG-2傳輸流。
DASH不關心音訊/影片的編解碼器。多媒體檔案通常有一種或多種表示(即不同解析度或位元速率版本),並可基於不同的網路條件、裝置功能和使用者偏好進行選擇,達到自適性串流[10]和QoE (Quality of Experience) fairness。[11]DASH也與底層的應用層協定無關,因此可以配合任何協定中使用。例如,基於CCN的DASH。[12]
實現
通過ExoPlayer,MPEG-DASH在Android上可原生使用,如三星智慧型電視2012+、LG智慧型電視2012+、索尼電視2012+、飛利浦NetTV 4.1+、松下Viera 2013+和Chromecast。[14]YouTube以及Netflix已經支援MPEG-DASH,並且可使用多種MPEG-DASH播放器。[15]
中國大陸方面,bilibili已經支援MPEG-DASH[16]。
雖然HTML5不直接支援MPEG-DASH,但是已有一些MPEG-DASH的JavaScript實現允許在網頁瀏覽器中通過HTML5 Media Source Extensions(MSE)使用MPEG-DASH。[17]另有其他JavaScript實現,如bitdash播放器[18]支援使用HTML5加密媒體擴充播放有DRM的MPEG-DASH。[19]當WebGL結合使用,MPEG-DASH基於HTML5的自適應位元速率流還可實現360°影片的即時和按需的高效串流傳輸。[20]
- Dash.js是Dash行業論壇官方參考和生產播放器。[21]
- Shaka是出自Google的開源dash播放器。[22]
- VLC多媒體播放器3.0將為MP4/MPEG和即時串流媒體發布一個新客戶端外掛程式。[23][24][25]
- 跨平台FOSS多媒體框架GStreamer自從至少1.4版本以來支援MPEG-DASH和WebM DASH。[26]
- 開源程式庫libdash[27]獨立於平台,可在Android、iOS、Windows Phone等行動平台上執行。
- bitmovin為HTML5和Flash提供了bitdash MPEG-DASH播放器。[28]
- THEOplayer (頁面存檔備份,存於網際網路檔案館)目前正在尋找夥伴來測試他們的MPEG-DASH影片播放器。[29]
- Viblast Player支援HTML5中的MPEG-DASH,並為iOS和Android提供SDK。[30]
- 巴黎電信學院中GPAC的OSMO4支援MPEG-DASH。[31]
- 克拉根福大學ITEC中的DASH-JS支援MPEG-DASH。[32]
- Radiant Media Player支援HTML5中的MPEG-DASH(DASH264和WebM DASH)。[33]
- Videogular是AngularJS面向桌面和行動平台提供的一個影片應用框架,AngularJS為HTML5提供的影片播放器
- libndash (頁面存檔備份,存於網際網路檔案館)是一個開源(Apache許可證)的C++程式庫,提供構建一個全功能MPEG-DASH媒體播放器所需的所有功能(不包括解碼/彩現訊框到顯示器)。
請注意,除了Live Streaming外,DASH內容不需要伺服器的特定支援。
- Brightcove Zencoder已支援MPEG-DASH transmuxing/transcoding。[34]
- Elemental Technologies影片處理解決方案支援DASH。
- Helix Universal Server已支援各種模式下的DASH。
- nginx-rtmp-module支援生成MPEG-DASH即時流。[35]但在1.2.0版本以前,[36]只能使用dash.js的修改版本[37]和bitdash播放。[38]
- nginx-ts-module支援即時MPEG-DASH[39]
- Nimble Streamer有即時和點播MPEG-DASH的支援。對點播來說,它支援H.265和H.264編解碼器[40]
- Unified Origin支援MPEG-DASH。[41][42]
- Amazon Web Services Elastic Transcoder (頁面存檔備份,存於網際網路檔案館)已支援MPEG-DASH。[43]
- Level 3通訊 CDN支援DASH。
- Akamai CDN支援DASH。[44]
- Amazon CloudFront CDN支援DASH。
- Azure Media Services平台已支援MPEG-DASH。[45]
- bitmovin提供的雲轉碼服務bitcodin.com支援MPEG-DASH。[46]
- Limelight Networks CDN支援DASH。
- Tata Communications CDN支援DASH。
- StreamRoot的混合CDN模型支援MPEG-DASH。
- ScaleEngine Video CDN支援DASH。
參考資料
外部連結
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.