日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

MMS协议

發布時間:2023/12/10 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MMS协议 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MMS格式解析

簡介:

MMS是微軟的私有流媒體協議。 它的最初目的是通過網絡傳輸多媒體廣播、視頻、音軌、現場直播和一系列的實時或實況材料。 MMS建立在UDP或TCP傳輸/網絡層上,是屬于應用層的。使用TCP的MMS上URL是MMS://或者MMST://,如果是UDP的MMS使用MMSU://。 在低帶寬的情況下推薦使用UDP連接。在有防火墻的情況下使用HTTP。在下載MMS的時候TCP是不二的選擇。服務器上的媒體文件是以ASF或WMA形式存在。直播通過流媒體服務器組裝成數據包。 如果是TV/視頻的話,一個包可能會由多個流組成,但是語音廣播就只有一個流。

MMS協議包有兩種:命令包和數據包。

MMS命令包頭

以下是小端格式。左邊=LSB,右邊=MSB。0f 00 00 00 就相當于0f。

字段長度(bytes)描述
可能是版本號4B01 00 00 [00]:從client發出的格式是固定的。[00]域從服務器發出的時候是可以發生變化的
命令ID值,或許是版本或者序列號4B固定CE FA 0B B0
命令數據包長度4B計算到全部數據末尾,從協議類型域之后開始計算
協議類型4B固定值為MMS :4D 4D 53 20
直到包尾的長度4B包含自身數據域
序列號4B命令是由客戶端發向服務器的,序列號的計數從0開始。命令的響應擁有同樣的序列號。也就是說序列號就是ECHO。客戶端總是發起命令
雙精度時間戳8B用于網絡時序
到包尾的長度4B包括自身
Comm2B命令值:含義參考MMS命令列表
Dir2B方向域,0x03 = 向服務器,0x02 = 向客戶端。
命令包通常都包括上述內容,最小字節是40。命令包頭是作為命令發送的最小包。 注意:包長域包括到包末尾所有的padding。命令包長度跟在其后,先是‘prefix 1’然后是‘prefix 2’,接下來直到命令包結束都是‘command specific data’。 命令指定數據可以是字符串文本‘Unicode 16bit’,或者是raw 8位數據。 在prefix 數據解說之后可以看到命令特定數據段含義。

01 至Server

Prefix 1 f0 f0 f0 f0 - 標志(見標志段)Prefix 2 0b 00 04 00Then 1c 00 03 00 功能:發送初始鏈接信息,包含播放器的版本號、客戶端GUID(隨機產生)和要連接的服務器地址。 注意:客戶端GUID是隨機生成的,具體內容見'locally generated GUIDs'.

01 至Client

Prefix 1 00 00 00 00 - 錯誤碼Prefix 2 f0 f0 f0 f0 - 標志(詳見標志段) 結構體定義如下: 服務器返回諸如服務器軟件版本等信息。0b 00 04 00 ?? 1c 00 03 00 ?? 00 00 00 00 00 00 f0 3f 雙精值為1內容不詳 01 00 00 00 ?? 01 00 00 00 ?? 00 80 00 00 ?? 00 00 a0 00 ??時有為80 96 98 00 = 10000000 Ww ww ww ww 服務器版本字符串長度 Xx xx xx xx 工具版本字符串長度 Yy yy yy yy 播放器下載鏈接長度 Zz zz zz zz 加密方式字符串長度

02 至Server

Prefix 1 f1 f0 f0 f0 - 標志(見標志段)Prefix 2 ff ff ff ffThen 00 00 00 00Then 00 00 a0 00 - 未知Then 02 00 00 00 – 映射包頭ID類型(Header PacketIDType ) 發送傳輸協議、客戶端地址和客戶端套接字端口號到服務器。

02 至Client

Prefix 1 00 00 00 00 - 錯誤碼Prefix 2 f1 f0 f0 f0 - 標志Then nn nn nn nn - 4 bytes 數據長度 長度計數單位是4字節,也包括了Length域,所以4Bytes就是1。 Then Unicode字符串數據

03 至Client

Prefix 1 00 00 00 00 - 錯誤碼Prefix 2 00 00 00 00 由服務器返回,指明協議選擇的錯誤。同時也表示從服務器發向客戶端的關閉套接字連接的請求。在這個命令之后連接中斷。

05 至Server

Prefix 1 01 00 00 00 -命令級別Prefix 2 ff ff ff ffThen 8 zeros (未知)或許是雙精值Then Unicode數據 這條命令請求位于服務器上的文件路徑和文件名。這不包含IP或DNS信息,只有媒體的路徑和文件名。

05 至Client

Prefix 1 00 00 00 00 - 錯誤碼Prefix 2 04 00 00 00 - 響應Media PacketIDType值Then 下述結構體

現在發送媒體數據,包括媒體的播放時間。

01 00 00 00 未知但是可以改為01 00 00 00 00 可能是偏移時間,例如00 00 00 40200 00 00 00 ?? 00 00 00 00 ?? 00 00 00 00 ?? Xx xx xx xx 單精浮點值,顯示文件時間減去緩沖區時間,僅在seek模式有效,其他情況下總為1

06 至Client

Prefix 1 00 00 00 00 - 錯誤碼Prefix 2 01 00 00 00Then 結構體如下

功能:答復文件名和路徑請求。包括文件數據的包數,包長度和文件播放時間。06命令的數據類似于ASF文件的頭信息。一旦媒體在服務器上定位,媒體流的細節和包便被返回。下面是prefix后的結構體信息:

01 00 00 00 結果標志 00 00 00 00 00 00 00 00 00 00 xx yy 廣播標志 Tt tt tt tt tt tt tt tt 雙精度文件時間點 Ll ll ll ll 回放文件的長度(秒為單位),實時則為0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Pp pp pp pp 媒體包長度,單位byte Nn nn nn nn 媒體總包數,實時為0x000xffffffff 00 00 00 00 Ss ss ss ss 最高流比率值 Hh hh hh hh 頭大小,單位bytes Zeros 數據結構末尾的40bytes零數據

07 至Server

Prefix 1 01 00 00 00 - 命令級別Prefix 2 ff ff 01 00 -76 04 00 00 #Then 結構題描述如下

功能:從包xx 開始文件播放。這條命令也用以恢復下載或請求丟包。在Seek模式下用來發送播放點。

8 bytes 雙精格式,Seek秒數。 4 bytes FF 4 bytes 包序列號 ff ff ff ff 從開始播放 注意:v9版本中不可用,任何值都是從頭開始播放 3 bytes 最大的流時間限制 1 byte 允許流限制標志 4 bytes Media PacketIDtype 4 bytes 可選數據# 如ff ff ff 7f 4 bytes 可選數據# 如00 00 00 00 4 bytes 可選數據# 如ff ff ff 7f 4 bytes 可選數據# 如00 00 00 00

09 至Server

Prefix 1 01 00 00 00 - 命令級別Prefix 2 ff ff 01 00

停止播放,媒體播放器發送這條命令,流停止,保持套接字連接。

0A 至Client

Prefix 1 00 00 00 00 - 錯誤碼Prefix 2 04 00 00 00 - 響應PacketIDTypeData 00 00 00 00 00 00 00 00 - 雙精值

此命令在快進/后退中使用。

0D 至Server

Prefix 1 01 00 00 00 - 命令級別Prefix 2 01 00 00 00

協議中止。常用在關閉套接字連接時。

11 至Client

Prefix 1 00 00 00 00 - 錯誤碼Prefix 2 02 00 00 00 - 顯示頭的PacketIDTypeThen 00 00 00 00 - ??Then 00 00 00 001c 00 03 00 用法未知。

在播放器請求時發送頭或UDP包。

總結

以上是生活随笔為你收集整理的MMS协议的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。