织梦CMS - 轻松建站从此开始!

罗索

RTMP协议(草稿)

落鹤生 发布于 2011-11-02 20:34 点击:次 
RTMP(Real-Time Messaging Protocol)协议是Adobe公司公开发布的私有协议,专门用于AdobeFlash的音频、视频以及数据的高效传输。RTMP支持的音视频和数据的格式有AMF、SWF、FLV和F4V。
TAG:

RTMP(Real-Time Messaging Protocol)协议是Adobe公司公开发布的私有协议,专门用于AdobeFlash的音频、视频以及数据的高效传输。RTMP支持的音视频和数据的格式有AMF、SWF、FLV和F4V。

RTMP协议采用TCP传输协议,默认端口是1935,数据被切分成固定大小的块进行传输,数据块的大小可以通过协商确定,默认情况下,音频传输大小是64字节,视频是128字节。不同类型的数据块通过交错传输实现了对单个TCP连接的复用。

建立链接

RTMP连接是通过握手建立起来的,与头部和可变大小的数据构成的数据包不同,握手数据包是固定大小的,客户端发送C0,C1和C2,服务器端发送的是S0,S1和S2。

C0和S0是一样的,大小为一个字节,给出了协议的版本号,当前是3。C1和S1的大小是1536字节,第一个四字节是时间戳,第二个四字节必须置为0, 其它为随机数。C2和S2差不多是C1和S1的echo,对于C2来说,第一个四字节是S1中的第一个四字节,第二个四字节是读取S1的时候的时间戳,对 于S2来说,第一个四字节是C1中的第一个四字节,第二个四字节是读取C1的时候的时间戳。

数据块

建立好了链接就进行流的传输了,流是由数据块组成的,不同的流可以复用到一个链接。一个Chunk是一个固定格式的数据块,有固定的结构,有意个Stream ID,接受端把相同streamID的Chunk重新组装起来。

协议控制消息

有两种类型的控制消息,设定Chunk的大小以及结束Chunk的发送。控制消息的Message Stream ID是0,Chunk Stream ID的值是2,具有最高的发送优先级。

RTMP命令消息

Play,pause??

参考资料:

  1. RTMP Specification 1.0
  2. http://en.wikipedia.org/wiki/Real_Time_Messaging_Protocol :Real Time Messaging Protocol
  3. http://www.cppblog.com/vliuchao/archive/2009/12/27/104163.html : RTMP协议详解
(dqzhangp)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201111/15263.html]
本文出处:blog.sina.com.cn/dqzhangp 作者:dqzhangp
顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容