rtmpdump协议开发

1:RTMP简介

RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写,该协议基于TCP,是一个协议簇包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种,RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。

        基本的数据单元:消息;

    在传输过程中 ,会分为更小的单元块。

2:基本定义

Payload(载荷),包含于一个数据包中的数据,音频采样,视频压缩数据。

Port(端口):TCP/IP使用小的正整数对端口进行标识

Packet(数据包)一个数据包由固定头和载荷构成。

Transport address(传输地址):用以识别传输层端点的网络地址和端口的组合

Message stream(消息流):通信中消息流通的一个逻辑通道。

Message stream ID(消息流ID):每个消息有一个关联的ID,使用ID可以识别出该消息属于哪个消息流

Chunk stream(块流):通信中允许块流向一个特定方向的逻辑通道。块流可以从客户端流向服务器,也可以从服务器流向客户端。
Chunk stream ID(块流 ID):每个块有一个关联的ID,使用ID可以识别出该块属于哪个块流

Multiplexing(合成):将独立的音频/视频数据合成为一个连续的音频/视频流,这样就可以同时发送视频和音频了。

DeMultiplexing(分解):Multiplexing 的逆向处理,将交叉的音频和视频数据还原成原始音频和视频数据的格式。

*****消息传输格式

Action Message Format (AMF,操作消息格式):AMF是Adobe独家开发出来的通信协议,它采用二进制压缩,序列化、反序列化、传输数据,从而为Flash 播放器与Flash Remoting网关通信提供了一种轻量级的、高效能的通信方式。如下图所示。

三.块

握手之后,连接开始对一个或多个块流进行合并。每个块都有一个唯一ID对其进行关联,这个ID叫做chunk stream ID(块流ID)。这些块通过网络进行传输,在发送端,每个块必须被完全发送才可以发送下一块。在接收端,这些块根据块流ID被组装成消息。

    

猜你喜欢

转载自blog.csdn.net/zuodenghuakai/article/details/79487092