·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]RTMP协议的分析与研究

时间:2012-03-15 09:26CuPlayer.com
协议设计和分析一直都是在工作遇到,正好在这里总结一下,说到协议,在这个网络的时代,没有人可以离开它了。他存在我们生活中的任何角落,只不过我们平时,并没有注意到它的存在
播放器界面

极酷阳光播放器CuSunPlayerV2.0版RTMP流媒体播放器:[ 演示1 ]

支持RTMP协议(支持red5,wowza,FMS等rtmp流媒体)[ 演示2 ]

更多演示请点击进入[ 极酷阳光V2版RTMP流媒体播放器专栏 ]

  1 协议研究概述
  协议设计和分析一直都是在工作遇到,正好在这里总结一下,说到协议,在这个网络的时代,没有人可以离开它了。他存在我们生活中的任何角落,只不过我们平时,并没有注意到它的存在,可以这么说如果没有协议,我们生活和日常的工作生产都不能进行。如果仔细想想你生活中用到的所有东西,协议已经包含其中。那到底什么是协议呢?说的简单一点就是双方达成的共识,以便更好的交流,理论上协议是什么呢?如果学过《信号与系统》的人都知道有个简单的道理,就是信息在经过一个管道的符号集,到另一个符号集时信息不会丢失。

  任何复杂的事物都有个最简单的本质,网络上的协议也是这样,有个最基本的本质。除去上下层的概念,协议就只剩下通信双方实体的规则。

  一般的协议都包含最基本的协议头,不管是物理层、链路层、还是网络层,这个头就构成了协议的本质东西。通常协议头要包含以下最基本的三项信息:

  双方实体的唯一标示,用来标示通信双方的实体。
  类型描述或者是净核描述,标志净核的内容。
  协议净核的长度,用来在萃取净核的内容应用。
  其中,前两项是必须要有的,没有他们,通信双方的交互根本得不到保证,第三项在不太灵活的通信中可以去掉,而有第二项的类型推出。

  协议的丰富性,有净核的多样性体现。

  协议头除了以上的三项,还可以增加更多的信息(比如控制信息、时间信息等),取决于具体的应用。找到这些基本的东西,再去看协议的时候,能够更好的抓住协议的主体进行分析和设计了。

  如图 协议物理结构

  2 RTMP 协议概述
  RTMP 协议是被 Flash 用于对象、视频、音频的传输。该协议建立在 TCP 协议或者轮询 HTTP 协议之上, RTMP 协议就像一个用来装数据包的容器,这些数据可以是 AMF 格式的数据,也可以是 FLV 中的视 / 音频数据。一个单一的连接可以通过不同的通道传输多路网络流,这些通道中的包都是按照固定大小的包传输的 .

3 RTMP 协议部分
3.1 协议头
struct RTMP_HEAD

{
char cChannelid : 6;// 第一个字节的后 6 位
char cCheadsize ; // 第一个字节的头两位
char cTimer[3]; // 三个字节表示的时间信息
char cLength[3]; // 三个字节表示的长度
char cDatatype; // 数据类型
char sStreamid[4]; // 流标识
};

这里有三个最基本的元素(唯一标示 )、(类型 )和(净核的长度 )分别是: cChannelid 、 cDatatype 和 cLength 。

3.2 数据类型
数据类型 决定了协议上层可以做的具体的事情,和使用协议的人必须遵循的规则。

同时数据类型 说明了净核 的基本内容。

相关链接:

[AS3]RTMP流媒体协议在视频系统中应用的优势
[AS3]RTMP协议的分析与研究
[AS3]as3服务端FMS常用方法属性参考 
[AS3]FMS播放器连接fms的几种返回状态
RTMP协议与RTMP视频播放器的应用
flex播放器代码支持rtmp协议
关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE,RTMFP,AMF协议的介绍
[AS3]rtmp协议MP4(f4v)格式视频VOD点播实现过程
[AS3]极酷阳光V2版RTMP流媒体播放器实例演示与介绍

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器