文章目录RTMP 核心高频面试题1. 什么是 RTMP?有什么特点?2. RTMP 协议栈分层?3.RTMP 握手过程(Handshake)?4. RTMP Chunk(块)的作用和格式?5. Chunk Stream ID(CSID)和 Message Stream ID 的区别?6. RTMP 消息头的 4 种格式(fmt=0/1/2/3)?7. RTMP 常见消息类型?8. AMF 是什么?AMF0 和 AMF3 的区别?9. RTMP 推流(Publish)完整流程?10. RTMP 拉流(Play)完整流程?11. RTMP 的 AAC/AVC 序列头是什么?12. RTMP 视频数据的关键帧和非关键帧标识?13. RTMP 的时间戳(Timestamp)机制?14. RTMP 的流量控制机制?15. RTMP vs RTSP vs HLS 对比?16. RTMP 的变种协议?17. RTMP 延迟由哪些因素构成?如何优化?18. RTMP 推流为什么首帧慢?怎么优化?19. RTMP 如何实现多路流复用?20. RTMP 连接失败常见原因?21. RTMP 的 Chunk Size 对性能有什么影响?默认值是多少?如何调整?22. RTMP 协议中的 User Control Message 有哪些常见事件?分别在什么场景触发?23. RTMP 播放时如何实现 Seek(跳转)和暂停?24. RTMP 中的 Shared Object 是什么?有什么用途?25. RTMP 连接中,connect 命令通常携带哪些参数?各有什么含义?26. 请描述 RTMP 协议中音频 Tag 的详细结构?27. RTMP 视频 Tag 的详细结构?AVCPacketType 有哪两种?28. RTMP 协议是如何保证可靠性的?TCP 拥塞控制会对 RTMP 直播产生什么影响?29. RTMP 推流过程中,如果网络抖动导致数据积压,常见的处理策略有哪些?30. RTMP、RTSP、WebRTC 三种协议在实时互动直播场景下如何选型?RTMP 核心高频面试题1. 什么是 RTMP?有什么特点?RTMP(Real-Time Messaging Protocol)是 Adobe 开发的基于 TCP 的实时消息传输协议特点:低延迟(通常 1-3 秒)、基于长连接、支持音视频和数据消息、有状态协议默认端口:19352. RTMP 协议栈分层?物理层/传输层:TCP(保证可靠传输)RTMP 块层(Chunk Layer):将消息拆分为 Chunk 进行传输,多路复用RTMP 消息层(Message Layer):定义各种消息类型(音视频、命令、数据等)3.RTMP 握手过程(Handshake)?简单握手:C0(1字节,版本号)+ C1(1536字节,时间戳+随机数据)S0 + S1 + S2(回应 C1 的时间戳等)C2(回应 S2)共 3 个来回,C0/C1 → S0/S1/S2 → C2复杂握手/
阅读完成 · 觉得有帮助?