MPEG-DASH 開源專案

據說,在參加了某一場 AWS Taiwan 舉辦的活動後,
我們曾對著一群人,豪邁的說出了「我們來在台灣辦例行性的 streaming workshop」吧!
然後,與大部分的政客一樣,只有發聲,沒有行動,遲遲沒有任何動作。
當時一時興起,以為,只要有人先說出口,
就自然會有其它人出來接棒,執行。當然,我也會全力協助與參與…

但就像 g0v 的座右銘

「不要問為何沒有人做這個,先承認你就是『沒有人』」。
因為,「沒有人」是萬能的。

過了快一年,似乎沒有因此產生什麼變化,
想說先做點什麼一個人可以做的,簡單一點的事好了。
於是有了這麼一篇,從分享簡單而公開的資訊開始。
夾雜點個人觀點,然後期待有人跳出來指正我哪寫錯了,
或是提供 patch ;D

MPEG-DASH 起始於 2010 年,2011 年有了草案。
同年,成為國際標準。於 2012 年以 ISO/IEC 23009-1:2012 的型式發佈。
這樣的一個標準,因為 video streaming 成了新世界的載體,漸漸成為基礎建設。
於是有不少開源專案:

  • dash.js: DASH IF 官方放出來的 HTML5 player,參考與示範意義大於商業實質用途。
  • Shaka Player: Google 放出來的 HTML5 player!
  • [rx-player][rx-player]: 另一個 HTML5 player,同時支援 DASH 與 SmoothStreaming。
  • MP4Box: 大名鼎鼎的 packager,算是最早釋出接近 production-ready 的 DASH packager 的專案。另外,它有個叫 Osmo4 的兄弟,專攻 player,不過不大好用 ;p 然後另一個 DashCast 的話,可以好好觀摩觀摩。GPAC rocks!
  • Bento4: 除了 GPAC 以外,另一個大名鼎鼎的就是 Bento4 了!與 GPAC 並列為瑞士刀等級的專案。
  • libdash: ISO/IEC MPEG-DASH 的官方(?)實作的 library。
  • VLC: 這應該不需要多作介紹?
  • ExoPlayer: Google 開發,用來實驗兼彌補 Android MediaPlayer API 用,同時支援 DASH 以及 SmoothStreaming!
  • DASHEncoder: 架在 x264 與 MP4Box 上,方便你透過一個界面來直接做 transcoding 與 packaging。初學用,進階的人,就直接忽略,自己去了解 x264, ffmpeg, MP4Box/Bento4 來得比較有意義。
  • DASH.encrypt: 另一個 DASH packager。
  • DashMe: 另一個 DASH packager + streamer (as a web server with REST API).
  • liveMediaStreamer: all-in-one 的 DASH transcoder/encryptor/packager,支援 real-time 處理。
  • MPEG-DASH MPD Validator: 線上版的 MPD validator,初期很適合拿來作為驗證用,但之後會發覺它有些地方太嚴厲 XD
  • DASHLiveEdgeCalculator: 一個很簡易的小工具,輸入一個 live-stream MPD 時間相關的資訊,會算出當下看這個 live stream 的話,應該要讀取哪一段 media segment。
  • ITEC DASH Tools: 上述不少專案的匯整入口。

在 KKV (KKStream & KKTV),我們用到的專案其實不多,其實很少。
一方面是有些專案的性質很接近,另一方面是我們相信,與其去接觸一堆專案,然後從中組合(system integrate)出解法來,
還不如挑選出比較基本而且重要的專案,然後一步一腳印的了解與深入。
畢竟,你的需求永遠與別人的不同,你永遠有需要客製化的地方,然後你遲早要深入去了解裏頭的技術與實作細節。

同步刊登在 Drake’s Weblog

About drakeguan

Trained in computer science; tried building a game company before startup boom; built animation pipeline and 3-D technology for years; and finally re-learn everything in Internet industry as streaming service provider. Overall, being tech-savvy, but prefer to treat human first, than technologies, as he always believe technology starts from humanity.
This entry was posted in KKV, Streaming, Video and tagged , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *