1.smooth streaming 介绍:
http://learn.iis.net/page.aspx/558/getting-started-with-iis-smooth-streaming/
2.smooth streaming spec:
http://www.iis.net/community/files/media/smoothspecs/[MS-SMTH].pdf
http://msdn.microsoft.com/en-us/library/ff469518%28v=PROT.10%29.aspx
3.smooth streaming msdn:
http://msdn.microsoft.com/en-us/library/ee673436(v=VS.90).aspx
其中Manifest是一种xml文件。用来描述smooth streaming中媒体信息和每个Fragment文件的time和duration。Fragment是一种类MP4的由box作为单元的容器。
Live Manifest和Vod Manifest有很多不同点:
其中vod Manifest在spec中介绍比较详细。live Manifest中有如下特殊属性:
LookaheadCount:用来记录服务器将要缓冲的block个数。一般设置为2.
DVRWindowLength:DVRwindow的大小,timescale为SmoothStreamingMedia 中指定的timescale。
与其他live streaming不同smooth streaming对MBR关键帧要求严格对齐。而且Manifest文件只从server请求一次。之后的请求的Fragment的time和duration要通过在它之前的Fragment得到。其中LookaheadCount就是用来设定会缓存几个Fragment,当client发现download到的Fragment中之后的Fragments的个数少于LookaheadCount的时候会等待一小段时间。
其中Fragment为一种类似于MP4的容器。header类型为'moof';data 类型是‘mdat‘。
对于live smooth streaming的Fragment 有两种特殊的box类型:
userbox UUID=6d1d9b05-42d5-44e6-80e2-141daff757b2
记录当前block的time和duration
userbox UUID=d4807ef2-ca39-4695-8e54-26cb9e46a79f
记录不大于LookaheadCount个之后的blocks的time和duration