- 浏览: 489586 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (185)
- job (15)
- linux/windows/unix/bash/shell (31)
- JAVA/J2EE/spring/hibernate/struts (30)
- VC/C++ (48)
- mysql/postgresql (6)
- php/jsp/asp/pear (1)
- FMS/flex/openlaszlo/red5/openmeetings (34)
- apache/tomcat/ftp/svn (6)
- xen/vm/Hadoop/cloudcompute (6)
- visual studio/eclipse/zendstudi/ant (8)
- others (1)
- windows异常处理 __try __except (1)
- (1)
- matlab (4)
- android (0)
最新评论
-
hongzhounlfd:
很透彻,很详细
依赖注入和控制反转 -
jefferyqjy:
谢谢~言简意赅~很明了!
依赖注入和控制反转 -
elderbrother:
太好了,谢谢
依赖注入和控制反转 -
east_zyd_zhao:
终于搞明白了
依赖注入和控制反转 -
Dremeng:
完美,一看就懂理解透彻
依赖注入和控制反转
RTMP协议封包分析 参考red5
2009年03月20日 星期五 18:57
原创
RTMP协议封包 参考Red5 RTMP协议封包 由一个包头和一个包体组成,包头可以是4种长度的任意一种:12, 8, 4, 1 byte(s).完整的RTMP包头应该是12bytes,包含了时间戳,AMFSize,AMFType,StreamID信息, 8字节的包头只纪录 了时间戳,AMFSize,AMFType,其他字节的包头纪录信息依次类推 。包体最大长度默认为128字节,通过chunkSize可改变包体最大长 度,通常当一段AFM数据超过128字节后,超过128的部分就放到了其他的RTMP封包中,包头为一个字节. 完整的12字节RTMP包头每个字节的含义:
一、Head_Type 第一个字节Head_Type的前两个Bit决定了包头的长度.它可以用掩码0xC0进行"与"计算: Head_Type的前两个Bit和长度对应关系:
Head_Type的后面6个Bit和StreamID决定了ChannelID。 StreamID和ChannelID对应关系:StreamID=(ChannelID-4)/5+1 参考red5
二、TiMMER TiMMER占3个字节纪录的是时间戳,音视频流的时间戳是统一排的。可分为绝对时间戳和相对时间戳。
五、StreamID StreamID是音视频流的ID,如果AMFType!=0x08 或!=0x09那么 StreamID为0。 ChannelID 和StreamID之间的计算公式:StreamID=(ChannelID-4)/5+1 参考red5 例如当ChannelID为2、3、4时StreamID都为1 当ChannelID为9的时候StreamID为2 六、封包分析 例如有一个RTMP封包的数据03 00 00 00 00 01 02 14 00 00 00 00 02 00 07 63 6F 6E 6E 65 63 74 00 3F F0 00 00 00 00 00 00 08 ,,, 数据依次解析的含义 03表示12字节头,channelid=3 000000表示Timmer=0 000102表示AMFSize=18 14表示AMFType=Invoke 方法调用 00 00 00 00 表示StreamID = 0 //到此,12字节RTMP头结束下面的是AMF数据分析,具体的AMF0数据格式请参考 http://www.cnweblog.com/fly2700/archive/2008/04/09/281432.html 02表示String 0007表示String长度7 63 6F 6E 6E 65 63 74 是String的Ascall值"connect" 00表示Double 3F F0 00 00 00 00 00 00 表示double的0.0 08表示Map数据开始 |
发表评论
-
Red5安装和配置
2011-02-24 10:23 4019Red5安装和配置参考网页:http://www.cahblo ... -
基于Moodle平台的网站调查报告
2011-02-24 10:18 2536基于Moodle平台的网站调查报告 网站举例: ² 西南 ... -
moodle插件模块功能汇总
2011-02-24 10:03 4954Moodle官方提供654种插件或者模块moodle.org ... -
moodle 一体包安装手册(window)
2011-02-24 09:55 1254见附件 -
moodle中上传文件大小控制
2011-02-24 09:51 1804第一步:修改在php4下POST文件大小的限制1.编修php. ... -
linux下面安装moodle
2011-02-24 09:50 20531. 安装moodle运行 ... -
OpenMeetings安装文档
2011-02-15 11:09 2570OpenMeetings 是一个多语言可定制的视频会议和协作系 ... -
Compilation and Execution (openlaszlo)
2010-11-22 11:02 10227. Compilation and Exe ... -
Combining Tags and Script in LZX Programs (openlaszlo)
2010-11-22 11:01 12826. Combining Tags and ... -
Data Access, Manipulation, and Binding (openlaszlo)
2010-11-22 10:33 11635. Data Access, Manipu ... -
Constraints(openlaszlo)
2010-11-22 10:18 1095constraint 表示可变的变量赋值形式 In LZX, ... -
Events and Methods (openlaszlo)
2010-11-22 09:35 13373. Events,Methods ,han ... -
Dimdim&Moodle安装配置文档节选
2010-11-09 17:40 2514Dimdim&Moodle安装配置文档节选 ... -
Red5如何响应rmpt的请求,中间涉及哪些关键类?
2010-11-01 15:35 1507Red5如何响应rmpt的请求,中间涉及哪些关键类? 响应请 ... -
red5的eclipse插件和用法
2010-10-30 20:56 1109参见http://www.red5.org/wiki/Red5 ... -
red5集群分析
2010-10-28 19:42 49901. 边(Edge ): 1. 边的主要作用是管理连接,并可以 ... -
red5源代码分析
2010-10-26 08:59 3827Red5如何响应rmpt的请求 ... -
创建第一个red5程序
2010-10-25 15:33 21141.下载最新版本的RED5 http://osflash.or ... -
openlaszlo中多媒体组件介绍
2010-10-14 15:50 1097在openlaszlo中我们可以处理图像,音视频等媒体文件。详 ... -
openlaszlo组件的简单介绍
2010-10-14 15:50 1258openlaszlo组件的简单介绍 收藏 在写laszlo ...
相关推荐
RTMP协议封 包 由一个包头和一个包体组成,包头可以是4种长度的任意一种:12, 8, 4, 1 byte(s).完整的RTMP包头应该是12bytes,包含了时间戳,AMFSize,AMFType,StreamID信息, 8字节的包头只纪录 了时间戳,AMFSize,AMFType...
RTMP封包协议以及VS2008程序源代码
rtmp的协议规范,中文版的,学习RTMP协议的好资源。
RTMP协议官方文档 文档为英文版,从官方网站下载,希望对你有帮助
流媒体协议:RTMP协议(中文)详解 流媒体协议:RTMP协议(中文)详解 流媒体协议:RTMP协议(中文)详解
RTMP协议,RTMP协议完整的中文翻译手册,便于学习RTMP协议
本文档记录了利用ffmpeg将摄像机采集的rtsp视频流转换为rtmp视频流,并推送到rtmp服务器red5的详细步骤。最终可以供VLC、web页面访问并展示rtmp视频。
Adobe公司的实时消息传输协议,RTMP协议官方说明文档,中文翻译。主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信
Rtmp协议中文介绍
RTMP协议Adobe刚刚开放,实现代码很少,C++实现也稀少,发一个给大家共享。RTMP 协议下载C++实现。
RTMP协议基础知识RTMP 全称Routing Table Maintenance Protocol(路由选择表维护协议) 在 AppleTalk 协议组中,路由选择表维护协议(RTMP,Routing Table Protocol)是一种传输层协议,它在 AppleTalk 路由器中建立...
讲解RTMP实时传输消息协议 希望对开发RTMP相关程序的人有用处
《RTMP协议中AMF的定义》,原名《TheAMF》英文版本。 内容简介: The AMF object is used for the sending and receiving of all video/audio data. After the initial handshake, all objects sent use the AMF ...
RTMP协议详解,原创分享PPT
基于rtmp协议android端推流Demo 直接设置IP推流到rtmp流媒体服务器
RTMP协议 RTMP协议封包 由一个包头和一个包体组成,包头可以是4种长度的任意一种:12, 8, 4, 1 byte(s).完整的RTMP包头应该是12bytes,包含了时间戳,AMFSize
基于RTMP协议的Flash流媒体网页播放器,可以直播,很好很强大。
这是一篇论文,描述了如何从rtp协议往rtmp协议转换的实现细节和意义。