m3u8文件內容剖析


轉自http://blog.csdn.net/afeng0007/article/details/6765105

m3u8 筆記:

 m3u8格式用來流播放,直播流或者點播形式,目的是實現時實性及保密性它會不讓你獲取它的視頻所在地址,所以你做視頻軟件的

時候就不能實現下載的功能。

其實大部分我們做視頻推薦類的應用時候,使用的視頻都是從優酷及土豆上獲取的,其實它們提供了開放的API,可以獲取視頻地址

以及視頻的多個標簽,視頻的同類視頻推薦,視頻同類目下的視頻等,開發者可以去申請。

優酷視頻開放平台:

http://open.youku.com/

土豆視頻開放平台:

http://api.tudou.com/apps/main.php

在IOS device和mac上可以用http的方式進行分發,其中playlist標准為由m3u擴展而來的m3u8文件,媒體文件為MPEG2-TS或者AAC文件(audio only)。

m3u8文件有兩種應用場景

multi bitrate adaptive streaming

#EXTM3U

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1280000

http://example.com/low.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2560000

http://example.com/mid.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=7680000

http://example.com/hi.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=65000,CODECS="mp4a.40.5"

http://example.com/audio-only.m3u8

sbr bitrate adaptive streaming

#EXTM3U

#EXT-X-TARGETDURATION:5220

#EXTINF:5220,

http://media.example.com/entire.ts

#EXT-X-ENDLIST

 

rfc doc:

http://tools.ietf.org/html/draft-pantos-http-live-streaming-06

m3u8 文件是m3u文件的擴展。在該rfc中定義了擴展的關鍵字:
其中:

#EXT-X-TARGETDURATION
定義每個TS的最大的duration。
#EXT-X-MEDIA-SEQUENCE
定義當前m3u8文件中第一個文件的序列號,每個ts文件在m3u8文件中都有固定唯一的序列號,該序列號用於在MBR時切換碼率進行對齊。

#EXT-X-KEY

定義加密方式和key文件的url,用於取得16bytes的key文件解碼ts文件。

屬性:
METHOD
URL
#EXT-X-PROGRAM-DATE-TIME

第一個文件的絕對時間

#EXT-X-ALLOW-CACHE

是否允許cache。
#EXT-X-ENDLIST
表明m3u8文件的結束。live m3u8沒有該tag。
#EXT-X-STREAM-INF
屬性:
BANDWIDTH
PROGRAM-ID
CODECS
#EXT-X-DISCONTINUITY
當遇到該tag的時候說明以下屬性發生了變化:
file format 
number and type of tracks
encoding parameters
encoding sequence

timestamp sequence

#EXT-X-VERSION

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM