前往
大廳
主題

串流媒體 DASH mpd — ( 1 )

路人乙 | 2024-03-08 05:51:34 | 巴幣 0 | 人氣 238

哈嚕~進來看這篇文章的你,如果不是想增廣見聞、學習新知,就是想多了解一些好用來壞壞。
上一篇寫到了m3u8這個檔案格式,那麼這一篇就該輪到mpd這個檔案格式了。

其實是我自己懶惰記名稱,所以都是這樣叫比較方便,但其實網路上比較常見的的名稱分別為「HLS」「MPEG-DASH」「DASH」

既然上一篇談到m3u8,也就是HLS這個格式,但其實這只是簡稱,這個格式是由Apple公司所開發,全名為「HTTP Live Streaming」,此技術與蘋果生態系綁得非常緊密,然而在蘋果的生態系之外則是MPEG-DASH這也是簡稱,他的全名為「Dynamic Adaptive Streaming over HTTP」

DASH 是一套 MPEG 公開標準,可以用在直播/影片/音訊等各種媒體應用上,並與許多的軟硬體廠商組成一個聯盟—DASH IF(DASH Industry Forum),成員包括 Google、微軟、SONY、Intel、Akamai…等。

總之你只要記得這是為了保護串流影片所創造出來的格式就對了!

m3u8中,實際的影音資料是放在ts檔案中,而在mpd這邊則是使用mp4m4a,這兩種分別是影片跟音頻,對的!你沒看錯!他把一段串流媒體分開成兩個檔案!因此除了要下載下來外還要解密以及要把他們合併成一段完整的MP4。

而這個mpd使用的是XML格式,當然跟m3u8一樣裡面紀錄了影音的詳細資料,以及影音的資料位置。

我從網路上的一個測試DASH影片的網站上擷取一部份mpd的內容,mpd 是 XML 格式,那現在我們就來看看mpd的內容。

讓我們一個一個簡單的講解帶過,

<MPD ……>簡單說這只是在做宣告

<Period…>這裡面則是標記了影片的長度

<AdaptationSet>就代表一組可用的畫質和音質,相關的檔案位置…等。原本在這個mpd檔案中其實是有多組的影音畫質,如:720P、360P、240P,但為了方便講解於是精簡了裡面的內容。

<ContentProtection>就是字面上的意思,這部影音受到了內容保護,簡單來說就是被加密了,而這裡面則是加密內容,但只是一部份並不完整。

<Representation>這裡面則是包含不同的碼率、編碼方式、幀率資訊等。

<Segments > 這部分用比較容易理解的方式說明來解釋可以看做類似於m3u8裡面的影片分段。

透過這個mpd可以清楚的看到影音被分成了影片檔(mp4)和音頻檔(m4a),而且也清楚地寫明了所使用的加密系統。

所以經由這個mpd檔案抓取裡面的影音資料,一般你會獲得經過加密的.mp4和.m4a兩種檔案。

你問如果沒有解密那下載的影片能看嗎?當然不行,你把下載的影片丟進播放器裡面,播放器會呈現一片黑且聲音也會非常奇怪。

好的,這篇文目前就先斷在這邊,下一篇將進入比較偏向較有技術性的探討和交流。

創作回應

更多創作