简单分析RTMP规范

原创 2016年06月01日 09:44:09

参考了网上很多文章,
完整的协议规范包含的内容较多,可以在网上搜索相应的文章。

下面是简单的分析,对于基本的结构有一个基本的了解。

1.RTMP在TCP/IP 体系结构中,属于应用层协议。
RTMP 协议有多个变种:
        1. 工作在 TCP 协议之上,并使用默认端口号 1935 的明文协议。
        2. RTMPS 使用 TLS/SSL 连接的 RTMP 协议。
        3. RTMPE 使用 Adobe 自己的安全机制的加密 RTMP。虽然它的实现细节是私有的,但使用的是行业标准加密原语。RTMPE 的设计是有缺陷的,它本身并不提供实际的安全。
        4. RTMPT 封装在 HTTP 请求内部以穿越防火墙的协议。RTMPT 常用于建立 TCP 端口 80 和 443 的请求以绕开很多公司的流量过滤。封装的会话中可能会携带纯 RTMP、RTMPS 或者 RTMPE 包。

RTMP协议中的数据单元称为消息(Message)。使用RTMP协议传输数据的时候,消息被拆成消息块(Chunk)

2.消息

RTMP消息分成两个部分,头和它的负载。

  2.1 消息头

消息头包含以下内容:
MessageType(消息类型)
Payload Length(负载长度)
Timestamp(时间戳)

Message Stream Id(消息流ID):


其中消息类型用一个字节的字段来表示。ID1-7 用于协议控制
Message Type ID 8-9分别表示音频和视频
MessageType ID 15-20用于AMF编码命令的发送,负责用户和服务器之间的交互,如播放,暂停等。

3 消息块
在传输数据的时候,消息被拆分成较小的数据块,即消息块。消息块由消息块首部(Chunk Header) 和 消息块数据组成。
消息块首部由三部分组成;
Basic header
Chunk Message Header 
Extended TimeStamp(这个只有当时间戳溢出时才会出现)
4.消息分块
消息分块只是 把Msg 的Data部分分成消息块。

块大小是可配置的。这个可以在7.1节中描述的块消息中完成。最大块是65535字节,最小块是128字节。块越大CPU使用率越低,但是也导致大的写入,在低带宽下产生其他内容的延迟。块大小对每个方向都保持独立。




疑问:
消息被分成消息块的时候,只是把Msg Body分成了块,
消息头没有处理,
这个消息头如何传递?

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

[实战]利用RTMP实现直播系统

一,目标: 利用开源或者免费工具实现一个直播系统;同时支持在浏览器、播放器和嵌入到PC应用或者移动APP中观看直播。...
  • kenny25
  • kenny25
  • 2014年09月17日 18:41
  • 6654

实时消息传输协议 RTMP(Real Time Messaging Protocol)

实时消息传输协议(RTMP)最初是由 Macromedia 为互联网上 Flash player 和服务器之间传输音频、视频以及数据流而开发的一个私有协议。Adobe 收购 Macromedia 购以...
  • defonds
  • defonds
  • 2013年12月18日 21:59
  • 15455

使用安全令牌保护 RTMP 流

本文就如何使用安全令牌对 Wowza 媒体服务器的直播流或者点播流进行保护的过程进行探讨,就服务器端和客户端配置分别进行了详细描述。...
  • defonds
  • defonds
  • 2014年01月21日 20:14
  • 7665

Adobe 官方公布的 RTMP 规范

本文是为截至发稿时止最新 Adobe 官方公布的 RTMP 规范的中文翻译。包含 RTMP 规范的全部内容。是第一个比较全的 RTMP 规范的中译本。本中译本已做成 PDF 格式,下载地址:http:...
  • defonds
  • defonds
  • 2013年12月24日 20:49
  • 23269

RTMP规范简单分析

RTMP协议是一个互联网TCP/IP五层体系结构中应用层的协议。RTMP协议中基本的数据单元称为消息(Message)。当RTMP协议在互联网中传输数据的时候,消息会被拆分成更小的单元,称为消息块(C...

RTMP规范简单分析

RTMP协议是一个互联网TCP/IP五层体系结构中应用层的协议。RTMP协议中基本的数据单元称为消息(Message)。当RTMP协议在互联网中传输数据的时候,消息会被拆分成更小的单元,称为消息块(C...

Rtmp协议简单分析(二)——协议交互过程

具体传输的过程是这样的,首先双方先进行握手,握手过程官方文档上有说明,但是在flash10.1之后,adobe公司改了握手,文档上那个握手不能用了,至少播放AVC和ACC不能用,这东西太坑人了,改了又...
  • leiych
  • leiych
  • 2014年01月14日 19:21
  • 1497

最简单的基于librtmp的示例:发布H.264(H.264通过RTMP发布)

本篇文章需要H.264的知识: ===================================================== ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:简单分析RTMP规范
举报原因:
原因补充:

(最多只允许输入30个字)