免费预览已结束,剩余6页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
简介 可以传输音、视频的通用服务器有两种,都有各自的优缺点。分别是:标准WEB服务器和流媒体服务器。标准WEB服务器使用HTTP协议。流媒体服务器使用两种协议提供媒体服务。这两种协议分别是HTTP1.0或1.1以及MMS(Multi Media Server)协议。流媒体服务器使用的HTTP协议是经过修改的版本,扩展了语法命令以支持实时传输。这是普通HTTP所不支持的。使用两种协议提供媒体服务和WEB服务器有着显著区别。一个区别是在WEB服务器上使用标准HTTP协议的数据不需要一个特殊的服务器和软件进行浏览甚至下载。另外一个区别是使用MMS(例如Microsoft Windows Media Services)的流媒体服务器通过流形式提供媒体给使用者。流媒体服务器可以处理大量数据。MMS是什么MMS是微软的私有流媒体协议。它的最初目的是通过网络传输多媒体广播、视频、音轨、现场直播和一系列的实时或实况材料。使用这个协议的观众可以通过电脑观看电视图像或音轨。微软为有网络连接的家用电脑使用者开发了免费软件。MMS建立在UDP或TCP传输网络层上,是属于应用层的。使用TCP的MMS上URL是MMS:/或者MMST:/,如果是UDP的MMS使用MMSU:/。在低带宽的情况下推荐使用UDP连接。HTTP带有大量的头信息,UDP一般不能通过防火墙,在有防火墙的情况下使用HTTP。TCP的无差错特性是非常诱人的,它的吞吐量比UDP小,但是在下载MMS的时候TCP是不二的选择。哈!看起来开始有趣了!到目前为止还没有关于MMS协议的任何有效的细节。网络搜索和库阅读也是徒劳无功的。微软不打算就MMS的内容发表任何看法。这真是水到山前疑无路,从使用协议的流媒体服务器上下载流信息已经成为了可能,使用MMS协议的服务器还只能在线观看,事实上,也只是目前为止!让我们从这里开始包和流MMS协议是以包和数据块的形式从服务器向使用者发送数据到你的计算机上。服务器上的媒体文件是以ASF或WMA形式存在。直播通过流媒体服务器组装成数据包。如果是TV/视频的话,一个包可能会由多个流组成,但是语音广播就只有一个流。可以认为多个流是被混合到了一个实际的包中。包中发送的流取决于媒体类型。下面会涉及到更多关于流的内容。MMS协议包有两种:命令包和数据包。首先,让我们来处理命令包MMS协议使用一段命令来完成多种人物,比如:连接到流服务器、请求文件、丢包重传请求及类似事宜。这是应用层协议,在这一层上媒体使用者和服务器进行通讯。这些都要传输到使用者。MMS命令包头下面分析MMS包头结构。以下是小端格式。左边=LSB,右边MSB。0f 00 00 00 就相当于0f。 开始 - 4bytes = 01 00 00 00 从client发出的格式是固定的。00域从服务器发出的时候是可以发生变化的。现在不能理解这个比特的含义总是0,可能是版本号。4bytes = CE FA 0B B0 命令ID值,或许是版本或者序列号。这总是固定的。如果你按照大端来读就是“Boob Face”.可能是巧合吧。 4bytes 命令数据包长度,计算到全部数据末尾。单位为比特,从协议类型域之后开始计算。4bytes = 4D 4D 53 20 协议类型,固定值为MMS的ASCII。4 bytes 直到包尾的长度,8比特为单位。包含自身数据域。例如,8bytes,value = 1。4 bytes 序列号。命令是由客户端发向服务器的,序列号的计数从0开始。命令的响应拥有同样的序列号。也就是说序列号就是ECHO。客户端总是发起命令。8 bytes 双精度时间戳,用于网络时序。4 bytes 到包尾的长度,单位为8比特。包括自身。例如,8 bytes ,value = 1。Comm 2bytes | Dir 2bytes 标志命令方向流的值。命令值含义参考MMS命令列表。对于方向域,0x03 = 向服务器,0x02 = 向客户端。 - 长度为40比特的命令头到此为止。命令包长度跟在其后,先是prefix 1然后是prefix 2,接下来直到命令包结束都是command specific data。命令指定数据可以是字符串文本Unicode 16bit,或者是raw 8位数据。在prefix 数据解说之后可以看到命令特定数据段含义。命令包通常都包括上述内容,最小字节是40。命令包头是作为命令发送的最小包。注意:包长域包括到包末尾所有的padding。01 至ServerPrefix 1 f0 f0 f0 f0 - 标志 (见标志段)Prefix 2 0b 00 04 00Then 1c 00 03 00结构题定义如下。功能:发送初始链接信息,包含播放器的版本号、客户端GUID(随机产生)和要连接的服务器地址。这个命令是在协议初始化之初发送的。它发送本地信息给服务器。Unicode数据字符串由以下信息组成:“NSPlayer/956; 128比特16进制文本客户端GUID ; Host: The.Host.Net” + 0x00 + 全零隐藏数据域 (可选项)。注意: 客户端GUID是随机生成的,具体内容见locally generated GUIDs.Host 域为可选字段。只在Media Player 7.0及后续版本中使用。播放器名称必须以 “NSPlayer”开始,如果服务器收到其他名称,将会自动发送名为Upgrade Your Player缺省的电影。这是一个15秒的教你如何升级的电影。在NSPlayer之后可以接任意的东西。例如像/956的版本号。MediaPlayer7.0及后续版本才支持MMS Proxy Server选项。Host域指明实际流媒体服务器的域名或者IP地址,这同是否使用代理并不相关。代理服务器使用这个主机地址连接到流媒体服务器。这就是在7.0以前版本里面没有host域的原因。01 至ClientPrefix 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 至ServerPrefix 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 )发送传输协议、客户端地址和客户端套接字端口号到服务器。Unicode字符串格式如下:“ 123.456.789.012TCP1234” + null + 可选Unicode数据,如“0”。可选数据:当传输协议使用UDP时可以显示10Bytes的未知数据。Where: 123.456.789.012 是客户端IP地址,TCP (或UDP)标志欲是用的传输协议。1234 是客户端TCP或UDP套接口端口号。02 至ClientPrefix 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 至ClientPrefix 1 00 00 00 00 - 错误码Prefix 2 00 00 00 00由服务器返回,指明协议选择的错误。同时也表示从服务器发向客户端的关闭套接字连接的请求。在这个命令之后连接中断。05 至ServerPrefix 1 01 00 00 00 -命令级别Prefix 2 ff ff ff ffThen 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 至ClientPrefix 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 至ClientPrefix 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 媒体总包数,实时为0x00或0xffffffff 00 00 00 00 Ss ss ss ss 最高流比率值 Hh hh hh hh 头大小,单位bytes Zeros 数据结构末尾的40个bytes零数据 07 至ServerPrefix 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 至ClientPrefix 1 00 00 00 00 - 错误码Prefix 2 04 00 00 00 -
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Oracle笔试面试试题+护师模拟试卷(含详细答案解析)
- 边坡治理BIM建模应用方案
- Nuke合成中级实操考试题(含详细答案)
- 社区老年大学课程方案
- 广东省惠州市惠城区十校联考2025-2026学年八年级上学期语文期中试卷(含答案)
- Node.js 基础实战试题(含详细答案解析)
- 云南土建质量员考试题库及答案
- GB-T 32295-2026《运载火箭剩余推进剂排放设计要求》
- 玉林市博白县2025届四年级数学下学期期末质量检测试题含解析
- 广东省深圳市育才第二中学2027届数学九年级第一学期期末达标检测试题含解析
- 3.6《改进我们的乐器》教学设计-2026-2027学年科学四年级上册新教科版
- 小学生科普芯片
- pack线安全培训课件
- 开封树脂瓦屋顶施工方案
- 水土保持监测合同范本
- 食品安全小作坊培训课件
- 沪科版七年级数学上册有理数的乘方完整版教案(2025-2026学年)
- 2025钢筋采购居间合同
- 2025年江苏省美容外科主诊医师培训考题及答案
- 2025年江苏省小学科学教师教学基本功比赛理论考试试题(含答案)
- 商贸公司代运营合同范本
评论
0/150
提交评论