RTMP协议简介

RTMP是Adobe为Flash设计的实时消息传输协议,广泛应用于直播业务。它具有多路复用、分包和应用层协议等特点。握手和连接过程包括版本号交换、ACK确认和连接参数设定。在完成握手和连接后,即可进行直播的推拉流操作。随着直播行业的繁荣和5G网络的发展,熟悉RTMP协议对程序员至关重要。
摘要由CSDN通过智能技术生成

一、背景

实时消息传输协议(Real-Time Messaging Protocol)是目前直播的主要协议,是Adobe公司为Flash播放器和服务器之间提供音视频数据传输服务而设计的应用层私有协议。RTMP协议是目前各大云厂商直线直播业务所公用的基本直播推拉流协议,随着国内直播行业的发展和5G时代的到来,对RTMP协议有基本的了解,也是我们程序员必须要掌握的基本技能。

二、RTMP协议特点

RTMP协议主要的特点有:多路复用,分包和应用层协议。

三、协议结构

  • basic header记录了该包属于哪个流以及包类型,其中拥有两个字段fmt与csid
  • message header携带了当前包中的唯一id与消息长度、消息类型、发送时间等信息
  • extended timestamp是拓展时间戳,由于message header的发送时间占3个字节,存在时间大到无法用3个字节来表示,需要借助扩展时间戳
  • chunk data里装载了真正有业务含义的数据

四、握手

  • 未初始化:客户端和服务端无任何交流阶段;
  • 发送版本号:发送了 C0 或者 S0;
  • 发送 ACK:发送了 C2 或者 S2;
  • 握手完成:接收到了 S2 或者 C2。

五、连接

  1. 客户端告诉服务端,我想要设置 chunk size 的大小为多大;
  2. 客户端告诉服务端,我想要连接什么应用;
  3. 服务端响应客户端的连接请求,确定窗口大小,带宽大小和 chunk size,以及返回 “_result” 表示响应成功。这些都是通过一个 TCP 包来完成的。

建立连接之后就可以进行推拉流了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值