[流媒体]实例解析MMS流媒体协议,下载LiveMediaVideo[2]

简介:

[流媒体]按照MMS协议和MS Media Server交互

下载实时交通录像的包分析[2]

 

编写者

日期

关键词

郑昀@ultrapower

2005-10-17

mms streaming protocol 
ethereal 
协议分析 流媒体

 

       通过mms://220.194.63.17/cebeijing8,我们可以看到交通部门设置在北京西直门上的摄像头的实时录像,从而了解西直门的交通状况。

       但是,要是想下载这个流媒体到本地的话,我试验了asfr+ASF Recorder以及StreamBox vcr,均无法下载。又找了一个mimms-0.0.9linux版本,也就是以前的mmsclient,将其依赖于Linux的某些函数库换成Windows版本的对应包,编译之后,可以下载mms://220.194.63.17/cebeijing8的数据,但是用WindowsMediaPlayer9播放的时候,却报告错误无法播放,因为此文件已损坏

       只有SDP2.0(Streaming Download Project)可以正常下载并播放它。

为了改造mimms,我分析了SDP和流媒体服务器的来往包,看看我和他的实现到底存在哪些差异。如果你也开发流媒体下载应用,希望这个分析对你理解 Microsoft Windows Media Services”协议有帮助。

 

下面是第三个回合的数据包。我们对每一个“包头”和“包体”的每一个字节都做了尽可能详细的分析。

      

第三对包client to server 告知传输协议/IP地址/端口号

 第三回合之第1个包to server;Len=112

0030                             01 00 00 00 ce fa 0b b0 60 00  ..............`.

0040   00 00 4d 4d 53 20 0c 00 00 00 02 00 00 00 00 00  ..MMS ..........

0050   00 00 00 00 00 00 0a 00 00 00 02 00 03 00 f1 f0  ................

0060   f0 f0 ff ff ff ff 00 00 00 00 00 00 a0 00 02 00     ................

0070   00 00 5c 00 5c 00 31 00 39 00 32 00 2e 00 31 00  ..\.\.1.9.2...1.

0080   36 00 38 00 2e 00 31 00 2e 00 38 00 35 00 5c 00  6.8...1...8.5.\.

0090   54 00 43 00 50 00 5c 00 32 00 35 00 31 00 36 00  T.C.P.\.2.5.1.6.

00a0   00 00 00 00 00 00

 

包头”解释:

l         01 00 00 00 ce fa 0b b0”是服务器端向客户端发包的“BOOB FACE”固定开头。以后你会看到每一个包都是如此开头的。8字节。

l         60 00 00 00”,表明在“协议类型(也就是接下来的4d 4d 53 20)”后面的所有数据的长度。4字节。

l         4d 4d 53 20”,表明协议类型,就是“MMS<space>”的ASCII码。4字节。

l         0c 00 00 00”,Length until end of packet in 8 byte boundary lengthsIncluding own data field4字节。

l         02 00 00 00”,Sequence number4字节。

l         00 00 00 00 00 00 00 00”,8字节。Double precision time stamp (see notes) used for network timing

l         0a 00 00 00”,Length until end of packet in 8 byte boundary lengths. Including own data field4字节。

l         02 00 03 00”, 指的是“Comm 2 bytes | Dir 2 bytes”。02 00Command数值。03 00Direction数值,这里的0x03指明客户端发往服务器。4字节。

 

在“Comm 2 bytes | Dir 2 bytes”之后,就是这个包的Body了。

“包体”解释:

l         f1 f0 f0 f0”,MMS协议标志24字节。

l         ff ff ff ff 00 00 00 00”,不知道。8字节。

l         00 00 a0 00”,不知道。4字节。

l         02 00 00 00”,固定数值,反映了Header PacketIDType4字节。

l         01 00 00 00 01 00 00 00 00 80 00 00”,固定数值,不知道含义。12字节。

l         5c 00 5c 00 31 00 39 00 32 00 2e 00 31 00 36 00 38 00 2e 00 31 00 2e 00 38 00 35 00 5c 00 54 00 43 00 50 00 5c 00 32 00 35 00 31 00 36 00”,其实就是“\\192.168.1.85\TCP\2516”的ASCII码。这是向服务器说明传输层协议类型TCP,客户端的IP地址192.168.1.85以及socket端口号2516

第三对包server to client 表示接受传输协议

 第三回合之第2个包to client;Len=96

0030                          01 00 00 00 ce fa 0b b0 50 00  ..@0..........P.

0040   00 00 4d 4d 53 20 0a 00 00 00 04 00 00 00 73 00  ..MMS ........s.

0050   70 00 3a 00 2f 00 08 00 00 00 02 00 04 00 00 00  p.:./...........

0060   00 00 f1 f0 f0 f0 08 00 00 00 46 00 75 00 6e 00  ..........F.u.n.

0070   6e 00 65 00 6c 00 20 00 4f 00 66 00 20 00 54 00  n.e.l. .O.f. .T.

0080   68 00 65 00 20 00 47 00 6f 00 64 00 73 00 00 00  h.e. .G.o.d.s...

0090   8a 94 b9 30 c2 c1                                ...0..

 

包头”解释:

l         01 00 00 00 ce fa 0b b0”是服务器端向客户端发包的“BOOB FACE”固定开头。以后你会看到每一个包都是如此开头的。8字节。

l         

l         02 00 04 00”, 指的是“Comm 2 bytes | Dir 2 bytes”。02 00Command数值。04 00Direction数值,这里的0x04指明服务器发往客户端。4字节。

 

在“02 00 04 00”之后,就是这个包的Body了。

“包体”解释:

l         00 00 00 00”,错误号。

l         f1 f0 f0 f0”,MMS协议标志24字节。

l         08 00 00 00”,4字节。数据的长度,有可能是假的。

l         46 00 75 00 6e 00 6e 00 65 00 6c 00 20 00 4f 00 66 00 20 00 54 00 68 00 65 00 20 00 47 00 6f 00 64 00 73 00”,其实就是“Funnel Of The Gods”的ASCII码。有时候也会是“Funnel Of The”。不知道为什么偏偏是这个上帝的漏斗,我们不妨假设服务器是想告诉我们传输协议被接受了。

郑昀编写,随时更新。

目录
相关文章
|
7月前
|
存储 缓存 负载均衡
阿里云服务器实例选择指南:热门实例性能、适用场景解析对比参考
2025年,在阿里云的活动中,主售的云服务器实例规格除了轻量应用服务器之外,还有经济型e、通用算力型u1、计算型c8i、通用型g8i、计算型c7、计算型c8y、通用型g7、通用型g8y、内存型r7、内存型r8y等,以满足不同用户的需求。然而,面对众多实例规格,用户往往感到困惑,不知道如何选择。本文旨在全面解析阿里云服务器实例的各种类型,包括经济型、通用算力型、计算型、通用型和内存型等,以供参考和选择。
|
6月前
|
网络协议
为何UDP协议不可靠?DNS为何选择UDP?
总的来说,UDP和TCP各有优势,选择哪种协议取决于应用的具体需求。UDP可能不如TCP可靠,但其简单、快速的特性使其在某些场景下成为更好的选择。而DNS就是这样的一个例子,它利用了UDP的优势,以实现快速、高效的名字解析服务。
328 14
|
8月前
|
存储 缓存 网络协议
DNS协议详解
通过本文,您可以全面了解DNS协议的各个方面,从而更好地理解和应用这一重要的互联网基础服务。
1582 44
|
7月前
|
编解码 监控 网络协议
RTSP协议规范与SmartMediaKit播放器技术解析
RTSP协议是实时流媒体传输的重要规范,大牛直播SDK的rtsp播放器基于此构建,具备跨平台支持、超低延迟(100-300ms)、多实例播放、高效资源利用、音视频同步等优势。它广泛应用于安防监控、远程教学等领域,提供实时录像、快照等功能,优化网络传输与解码效率,并通过事件回调机制保障稳定性。作为高性能解决方案,它推动了实时流媒体技术的发展。
396 5
|
7月前
|
存储 机器学习/深度学习 人工智能
阿里云服务器第八代通用型g8i实例评测:性能与适用场景解析
阿里云服务器通用型g8i实例怎么样?g8i实例采用CIPU+飞天技术架构,并搭载最新的Intel 第五代至强可扩展处理器(代号EMR),不仅性能得到大幅提升,同时还拥有AMX加持的AI能力增强,以及全球范围内率先支持的TDX机密虚拟机能力。这些特性使得g8i实例在AI增强和全面安全防护两大方面表现出色,尤其适用于在线音视频及AI相关应用。本文将深入探讨g8i实例的产品特性、优势、适用场景及规格族,以帮助您更好地了解这款产品,以供参考和选择。
|
7月前
|
数据采集 存储 数据库连接
Requests与BeautifulSoup:高效解析网页并下载资源
Requests与BeautifulSoup:高效解析网页并下载资源
|
9月前
|
存储 运维 资源调度
阿里云服务器经济型e实例解析:性能、稳定性与兼顾成本
阿里云经济型e云服务器以其高性价比、稳定可靠的性能以及灵活多样的配置选项,成为了众多企业在搭建官网时的首选。那么,阿里云经济型e云服务器究竟怎么样?它是否能够满足企业官网的搭建需求?本文将从性能表现、稳定性与可靠性、成本考虑等多个方面对阿里云经济型e云服务器进行深入剖析,以供大家参考选择。
565 37
|
10月前
|
人工智能 搜索推荐 API
Cobalt:开源的流媒体下载工具,支持解析和下载全平台的视频、音频和图片,支持多种视频质量和格式,自动提取视频字幕
cobalt 是一款开源的流媒体下载工具,支持全平台视频、音频和图片下载,提供纯净、简洁无广告的体验
1531 9
Cobalt:开源的流媒体下载工具,支持解析和下载全平台的视频、音频和图片,支持多种视频质量和格式,自动提取视频字幕
|
9月前
|
存储 Java 计算机视觉
Java二维数组的使用技巧与实例解析
本文详细介绍了Java中二维数组的使用方法
275 15
|
10月前
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
521 3

推荐镜像

更多
  • DNS