计算机知识RTMP协议
这篇内容围绕 RTMP 协议在直播与流媒体链路中的作用展开,先说明它是 Adobe/Macromedia 设计的实时消息传输协议,运行在应用层并通常依赖 TCP 1935 端口提供可靠传输。文章把 RTMP 的使用价值放在直播场景中解释:推流端如 OBS 或推流 SDK 将音视频送入 SRS、Nginx-RTMP、Wowza 等服务器,服务器再面向观众侧转成 HTTP-FLV、HLS 或 WebRTC 等更适合播放和互动的协议。正文重点梳理了完整连接流程,从 TCP 三次握手、C0/C1/C2 与 S0/S1/S2 的 RTMP 握手,到 connect 指定 app、stream key 和认证信息,再到 createStream 获取 stream_id,最后通过 publish 或 play 进入推流、拉流阶段。数据传输部分强调 RTMP 通过 Chunk 分块与消息机制持续传递音频帧、视频帧和 metadata,并借助持久连接实现低延迟、多路复用和音视频同步。文章也补充了 RTMP URL 结构、RTMPT、RTMPS、RTMPE 等变体,以及 macOS 下可用 VLC、Live Stream Player 配合测试流地址进行验证。需要注意的是,浏览器端已不再原生适合播放 RTMP,因为 Flash 已被淘汰;同时 RTMP session 与底层 TCP 连接绑定,正常断开需经历 deleteStream、close 和 TCP 释放,异常断开或服务器踢出则会清理相关 stream。整体适合想理解直播推拉流入口协议、服务器接入流程和连接生命周期的后端、音视频与运维开发者。


