CMAF 的提出,還無解的 Video Streaming 的規格聖戰

所有的影音串流服務的營運單位都曉得, 日常的營運費用(OPEX)支出裏頭, 前三大的是支出分別是: 內容版權費 流量費 人事成本 內容版權費是大老闆與首席內容官(Chief Content Officer)的事; 人事成本是營運長(Chief Operation Officer)與研發主管的事; 至於流量費嘛(以及與它高度相關的儲存空間費用), 我們都曉得這是影音服務有別於其它網路業的最大支出。 流量費也是這一篇 blog 或這個 CMAF 標準在關心的議題。 從多媒體技術的觀點來看的話,現在的影音串流服務是怎麼做到的呢? 以我微薄的知識與見聞來看,目前成熟的技術市場,大概是有以下的幾塊: (Adaptive) streaming protocols: MPEG-DASH, HLS, HDS, MSS, RTMP, … Container format: MP4, fMP4, TS, MOV, … Video codec: H.264, HEVC, VP9, … DRM: PlayReady, Widevine, FairPlay, … Caption: SRT, WebVtt, … Ad: VAST, VPAID, … 以一家有點規模, 平台有至少包含 Android, iOS, Web, STB, … 的 VOD (Video-on-Demand)服務來看, 一部影片,會因為上述的 1, 2, 4 這三點,少則要準備個 2 份,多則要個 3, 4 份。 然後 1 份裏頭,又會因為有 adaptive streaming 而有很多的 profiles, 然後一個 profile 又可能因為 media segmentation 而有很多的檔案。 以一部 60 分鐘的影片,10 個 profiles,5 秒為一個 media segment 來看: video duration: 1 hour segment duration: 5 seconds adaptive profiles: 10 (audio and video) media segments: 60 * 60 * 10 / 5 = 7,200 一份會有 7,200 個檔。 如果來個 3, 4 份的話,就是會有 21,600 ~ 28,800 個檔案。 這對於儲存空間來說,是一筆支出,但更嚴重的,是對於流量的支出。 原本,一部影片,CDN 只要 cache 個一份, 現在因為上述的原因,變成要 cache 個兩三四份,糟透了。 理論上,網路流量的支出是要高於儲存的支出的,而且高很多。 除非,你在經營一家沒有人看的影音服務… 2015 ~ 2016 年之間,兩大巨頭,Microsoft & Apple,坐下來談一件事。 他們針對上述的問題,做了初步的努力,這個產物就是 CMAF (Common Media Application Format)。 CMAF 繼續了 MAF 的特性(或說是美德也行), 它並沒有定義任何新的技術或規格, 相反的,它是基於現在的技術規格下, *挑選(或限制)*出了一些規範(ex, profiles)來符合當下的軟硬體需求。 ...

April 13, 2017 · 5 min · Shuen-Huei Guan

MPEG-DASH 開源專案

據說,我在參加了某一場 AWS Taiwan 舉辦的活動後, 曾對著一群人,豪邁的說出了「我們來在台灣辦例行性的 streaming workshop」吧! 然後,與大部分的政客一樣,只有發聲,沒有行動,遲遲沒有任何動作。 我當時一時興起,以為,只要有人先說出口, 就自然會有其它人出來接棒,執行。當然,我也會全力協助與參與… 但就像 g0v 的座右銘: 「不要問為何沒有人做這個,先承認你就是『沒有人』」。 因為,「沒有人」是萬能的。 — http://g0v.tw/zh-TW/join.html 過了快一年,似乎沒有因此產生什麼變化, 想說先做點什麼一個人可以做的,簡單一點的事好了。 於是有了這麼一篇,從分享簡單而公開的資訊開始。 夾雜點個人觀點,然後期待有人跳出來指正我哪寫錯了, 或是提供 patch ;D MPEG-DASH 起始於 2010 年,2011 年有了草案。 同年,成為國際標準。於 2012 年以 ISO/IEC 23009-1:2012 的型式發佈。 這樣的一個標準,因為 video streaming 成了新世界的載體,漸漸成為基礎建設。 於是有不少開源專案: ...

January 31, 2017 · 2 min · Shuen-Huei Guan