Drake's Weblog

streaming

5 minute read

所有的影音串流服務的營運單位都曉得,
日常的營運費用(OPEX)支出裏頭,
前三大的是支出分別是:



  • 內容版權費

  • 流量費

  • 人事成本


內容版權費是大老闆與首席內容官(Chief Content Officer)的事;
人事成本是營運長(Chief Operation Officer)與研發主管的事;
至於流量費嘛(以及與它高度相關的儲存空間費用),
我們都曉得這是影音服務有別於其它網路業的最大支出。
流量費也是這一篇 blog 或這個 CMAF 標準在關心的議題。



從多媒體技術的觀點來看的話,現在的影音串流服務是怎麼做到的呢?
以我微薄的知識與見聞來看,目前成熟的技術市場,大概是有以下的幾塊:



  1. (Adaptive) streaming protocols: MPEG-DASH, HLS, HDS, MSS, RTMP, …

  2. Container format: MP4, fMP4, TS, MOV, …

  3. Video codec: H.264, HEVC, VP9, …

  4. DRM: PlayReady, Widevine, FairPlay, …

  5. Caption: SRT, WebVtt, …

  6. 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)來符合當下的軟硬體需求。

2 minute read

據說,我在參加了某一場 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 成了新世界的載體,漸漸成為基礎建設。
於是有不少開源專案:

Recent posts

Categories

About

You're looking at Drake's words or statements. All opinions are my own.