RTMP协议(一)基本概述

概述

RTMP协议是Real Time Message Protocol(实时信息传输协议)的缩写,它是由Adobe公司提出的一种应用层的协议,通过一个可靠地流传输提供了一个双向多通道消息服务。用来解决多媒体数据传输流的多路复用(Multiplexing)和分包(packetizing)的问题。

名词解释

  • Payload (有效载荷):包含一个数据包中的数据,例如音频采样或者压缩的视频数据。
  • Packet (数据包):由一个固定头和有效载荷数据构成。一些底层协议可能会要求对数据包进行封装。
  • Port (端口):传输协议用于区分开指定一台主机的不同目的地的一个抽象。TCP/IP 使用使用小的正整数对端口进行标识。OSI 传输层使用的运输选择器 (TSEL) 也相当于端口。
  • Transport address (传输地址):用以识别传输层端点的网络地址和端口的组合,例如一个 IP 地址和一个 TCP 端口。数据包由一个源传输地址传输到另一个目的传输地址。
  • Message stream (消息流):通信中消息流通的一个逻辑通道。
  • Message stream ID (消息流 ID):每个消息有一个关联的 ID,用ID可以识别出该消息属于哪个消息流。
  • Chunk (块):消息的一段,消息在网络发送之前被拆分成很多小的部分。块可以确保端到端交付所有消息在一个有序的时间戳中,即使有很多不同的流。
  • Chunk stream (块流):通信中允许块流向一个特定方向的逻辑通道。块流可以从客户端流向服务器,也可以从服务器流向客户端。
  • Chunk stream ID (块流 ID):每个块有一个关联的 ID,使用 ID 可以识别出流通中的块流。
  • Multiplexing (合成):将独立的音频/视频数据合成为一个连续的音频/视频流的加工,这样可以同时发几个视频和音频。
  • DeMultiplexing (分解):Multiplexing 的逆向处理,将交叉的音频和视频数据还原成原始音频和视频数据的格式。
  • Remote Procedure Call (RPC 远程方法调用):允许客户端或服务器调用对端的一个子程序或者程序的请求。
  • Metadata (元数据):关于数据的一个描述。
  • Application Instance (应用实例):应用服务器上应用的实例,客户端可连接这个实例并发送连接请求,连接服务器。
  • Action Message Format (AMF,操作消息格式协议):采用二进制压缩,序列化、反序列化、传输数据。有两个版本:AMF0 和 AMF3。

基础概念

  • 字节序:所有整数型属性网络字节序传输,字节 0 代表第一个字节,零位是一个单词或字段最常用的有效位。字节序通常是大端排序。关于传输顺序的更多细节参考 IP 协议 [RFC0791]。
  • 字节对齐:RTMP 中的所有数据都是对准的:例如,一个十六位的属性可能会在一个奇字节偏移上。填充后,填充字节应该有零值。
  • 时间格式:RTMP 中的 TimeStamps 以一个整数形式表示。具体怎样使用这个整数来对时,需要 RTMP 之外的机制。比如,每个流都以一个 0 为 timestamp 起始。(注意:timestamp 的长度为32位使,每隔 49 天 17 小时 2 分钟 47.296 秒就会重来一次)

块流 与 信息流

RTMP 中块是信息的载体,同一个块流中,可能有多个信息流。

RTMP 协议系列来源

RTMP Adobe 官方文档

你可能感兴趣的:(RTMP协议(一)基本概述)