一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

MS-SSTR Smooth Streaming 協(xié)議

 angelbrian 2013-06-27
MS-SMTH 是2009版的,其中沒有關于直播的描述,新版本協(xié)議為 MS-SSTR(2011版的 Smooth Streaming 協(xié)議)
本文之前寫的都是2009版的,2011版的更新用紅色字體標出

1、微軟SmoothStreamIndexing協(xié)議規(guī)定了四種消息:
(The IIS Smooth StreamIndexing Transport Protocol defines four types of messages: )
  1.Manifest Request 
  2.Manifest Response 
  3.Fragment Request 
  4.Fragment Response 

1.  Manifest Request 
ManifestRequest =  [ "/" VirtualPath ] "/" PublishingPointName "." "ism" / VendorExtensionFileExtension "/" "Manifest" 
注意上面的式子中有一個斜杠是沒有引號的,也就是VendorExtensionFileExtension前面那個,也就是說這個斜杠不是要出現(xiàn)在Request中的,這個斜杠表示或者的意思。
也就是說,"."后面既可以跟ism也可以跟提供商自己的擴展名,"ism"跟VendorExtensionFileExtensions是或的關系。
看來ManifestRequest中必須包含".",就是"/" "Manifest"的前一級必須包含"."。這樣看來我自己在lighttpd上搞的目錄實際是不符合協(xié)議的。

2. Manifest Response (Manifest 文件的格式)
Manifest文件是個XML文本,遵循XML標準。注:XML 標簽對大小寫敏感,XML 的屬性值須加引號。
Manifest的根元素必須是<SmoothStreamIndexingMedia>,這個元素的意思是“客戶端為了播放節(jié)目(Presentation)所需的所有元數(shù)據(jù)”。
 這個元素有4個屬性:MajorVersion,MinorVersion,TimeScale,Duration。
  2011版新加入3個屬性:IsLive,LookaheadCount ,DVRWindowLength。這三個屬性都是直播相關的。

其中除了TimeScale之外都是必須的,TimeScale之所以不是必須,是因為他有默認值————10000000(1個1,7個0)。
TimeScale的意思是每秒鐘Duration屬性的增量,Duration就是節(jié)目長度的意思。也就是每一秒,Duration加幾,TimeScale就是個這數(shù)。
可以理解為TimeScale是劃分時間的粒度,10000000代表每秒鐘節(jié)目時長加10的7次方那么多,反過來理解就是,每10的負7次方秒,節(jié)目長度就要加1。
你看這默認值把視頻劃分的夠細的啊。
另外兩個屬性,描述版本用的:MajorVersion必須等于2,MajorVersion必須等于0,這沒啥好說的,規(guī)定。
這個元素屬性挺少的,到這兒就說完了。下邊說說這個元素的內容:
內容=[ ProtectionElement S?] 1* StreamIndexElement  注: *元素 表示0或多個元素,1*元素 表示1或多個元素,2*3元素 表示2或3個元素。
上面是協(xié)議里寫的,翻譯成漢語就是,由一個可選的<Protection>元素和若干個<StreamIndex>元素組成。接下來的任務就是看看這倆元素分別是啥了。
先看<StreamIndex>元素。
<StreamIndex>元素的意思“客戶端為了播放Stream所需的所有元數(shù)據(jù)”,跟前邊<SmoothStreamIndexingMedia>比,把節(jié)目(Presentation)換成了Stream。
其實一個節(jié)目一般可以分為兩個Stream,即視頻流和音頻流。以后就管Stream叫“流”了,漢語方便。
這 個元素有以下這12個屬 性:Type,Subtype,TimeScale,Name,Chunks,QualityLevels,Url,MaxWidth,MaxHeight,DisplayWidth,DisplayHeight,VendorExtension。
其 中Type是必須的,并且,如果這個<StreamIndex>元素中沒有插入<QualityLevel>元素,那么這3個元 素也是必須的:NumberOfFragments, NumberOfTracks,Url。當然,常見的場景是<StreamIndex>元素中都插入 了<QualityLevel>元素。
下邊來看看這12個屬性都什么意思:
Type:流的類型,可以是video, audio, or text。text有點特殊和不常見,今天先不說。
MaxWidth, MaxHeight, DisplayWidth, DisplayHeight:這4個屬性就是字面意思。注意只有當Type屬性的值為video時,這4個屬性才可以出現(xiàn)。
Subtype:當Type屬性的值為text時,這個屬性必須出現(xiàn)。這個屬性稍微復雜并不常用,今天先不說。
Name :流的名稱,沒啥好說的。
Chunks :流中Fragment的個數(shù),F(xiàn)ragment就是分片。
QualityLevels :流中Track的個數(shù),目前理解是,一個碼率就叫一個Track(對于視頻)。協(xié)議里說Track元素的名字就是QualityLevel。
Url:客戶端用以產生FragmentRequest的格式,這個屬性的值必須是UrlPattern:
UrlPattern = QualityLevels("{bitrate}" / "{Bitrate}"  ["," "{CustomAttributes}"] )"/"Fragments(TrackName "=" "{start time}" / "{start_time}" )
TimeScale:這個流中的TimeScale,跟前面的TimeScale具有相同的意義。
VendorExtension:內容提供商自己開發(fā)擴展用。
下邊說說這個元素的內容:
StreamContent = 1*(TrackElement S?) *(StreamFragment S?) 
翻譯成漢語就是,此元素的內容是一到多個Track元素(<QualityLevel>)與0到多個StreamFragment元素(<c>)組成的。下面正好開始看這兩個元素。
<QualityLevel>元素(Track元素)的意思是“客戶端為了播放Track所需的所有元數(shù)據(jù)”,跟前邊比,把stream換成了track。
這 個元素有以下這些屬 性:Index,Bitrate,MaxWidth,MaxHeight,CodecPrivateData,SamplingRate,Channels,BitsPerSample,PacketSize,AudioTag,NALUnitLengthField
這些屬性都是啥意思今天先不說。
這個元素的內容如下:
TrackContent = CustomAttributes?
這個內容協(xié)議里描述的沒太看明白,而且也不咋重要,今天先不說。
<c>元素(StreamFragment元素)的意思是“分片(Fragments)元數(shù)據(jù)的集合”。這個元素很重要,今天好好說說。
這個元素有3個屬性:n,d,t。其中d和t至少要出現(xiàn)一個。
n:分片在流中的序號,隨時間遞增。非必須屬性。
d:(FragmentDuration)分片的持續(xù)時間。由包含這個分片的流的TimeScale屬性的值顯示的或隱含的指明。如果d屬性沒有出現(xiàn),那么他的隱含值要由客戶端按如下規(guī)則計算:
  用本<c>元素的t屬性的值減去后面那個<c>元素的t屬性的值。翻譯成漢語就是,當前分片的開始時間減去后面分片的開時間。
如果一個分片沒有后續(xù)分片,那么他的d屬性隱含值為0.(注:這里協(xié)議原文貌似寫的有問題,我覺著只有按我這么理解才能解釋通)
t:(FragmentTime)分片(開始)時間(點)。由包含這個分片的流的TimeScale屬性的值顯示的或隱含的指明。如果t屬性沒有出現(xiàn),那么他的隱含值要由客戶端按如下規(guī)則計算:
  用本<c>元素前面那個<c>元素的d的值加上t的值。
  如果一個分片前面沒有其他分片,那么他的t屬性隱含值為0.
  
下邊是個例子:
     <c t = "0" d = "19680000" />  
      <c t = "19680000" d="19680000" /> 
      <c t = "39360000" d="19680000" />

為了支持直播,新版協(xié)議給視頻分片加了兩個新的box(type=uiid):tfxdBox(本分片的t和d封裝在里面),tfrfBox(下一個或幾個分片的t和d封裝在里面)。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产99久久精品果冻传媒| 色综合久久六月婷婷中文字幕| 欧美亚洲另类久久久精品| 亚洲精品一区二区三区免| 色老汉在线视频免费亚欧| 日本高清中文精品在线不卡| 嫩草国产福利视频一区二区| 国产白丝粉嫩av在线免费观看| 男女午夜福利院在线观看| 午夜精品一区免费视频| 久热在线视频这里只有精品| 大香蕉再在线大香蕉再在线| 国产免费黄片一区二区| 午夜直播免费福利平台| 丝袜诱惑一区二区三区| 色婷婷激情五月天丁香| 日本乱论一区二区三区| 亚洲免费视频中文字幕在线观看 | 日韩精品综合免费视频| 爱在午夜降临前在线观看| 欧美黑人在线一区二区| 日本女优一色一伦一区二区三区| 国产伦精品一区二区三区高清版| 中文字日产幕码三区国产| 日韩欧美一区二区黄色 | 中文字幕乱子论一区二区三区| 一区二区不卡免费观看免费| 国产亚洲不卡一区二区| 尤物天堂av一区二区| 国产又大又硬又粗又湿| 大尺度激情福利视频在线观看| 国产福利在线播放麻豆| 国产在线一区二区三区不卡| 女人精品内射国产99| 免费亚洲黄色在线观看| 99在线视频精品免费播放| 精品国自产拍天天青青草原| 精品午夜福利无人区乱码| 国产精品刮毛视频不卡| 这里只有九九热精品视频| 中文字幕精品一区二区三|