1. 核心类与功能概览
文件 | 核心类 / 函数 | 主要功能 |
---|---|---|
RtmpHandshake.h/.cpp |
RtmpHandshake |
处理 RTMP 协议握手过程(C0/C1/C2/S0/S1/S2 包的解析与构建),管理握手状态。 |
RtmpChunk.h/.cpp |
RtmpChunk |
处理 RTMP 块(Chunk)的解析与构建,包括块头(基本头、消息头)和块体的处理。 |
RtmpConnection.h/.cpp |
RtmpConnection |
管理单个 RTMP 连接的生命周期,处理握手后的消息解析(视频、音频、命令等)。 |
RtmpServer.h/.cpp |
RtmpServer |
RTMP 服务器主类,管理连接和会话,提供事件回调和会话增删查功能。 |
RtmpSession.h/.cpp |
RtmpSession |
管理单个流会话(如推流 / 拉流),维护发布者和订阅者,转发媒体数据。 |
amf.h/.cpp |
AmfDecoder /AmfEncoder |
实现 AMF(Action Message Format)数据的编解码,用于处理 RTMP 命令消息。 |
2. 流程逻辑梳理
(1)服务器启动(main.cpp)
- 初始化事件循环(
EventLoop
)和 RTMP 服务器(RtmpServer
)。 - 设置块大小(
SetChunkSize
)和事件回调(如流创建 / 删除通知)。 - 绑定 IP 和端口(1935)并启动服务器,进入事件循环等待连接。
(2)连接建立与握手(RtmpConnection
+ RtmpHandshake
)
- 客户端连接到达时,
RtmpServer
创建Rtm