RTMP代理的协议规范(RtmpProxy)

7 篇文章 2 订阅

RtmpProxy

关于RTMP代理的协议规范。RTMP是字节协议,第一个包是c0,1个字节,一般是03表示是明文的RTMP。所以如果需要做RTMP代理,如果直接转发RTMP客户端的消息,是没法传递额外的信息的,譬如HTTP代理在Header中传递的X-Real-IP,即客户端的IP,就没法给RTMP的后端了。

因此,RTMP的Proxy协议必须使用私有协议,c0的意义必须改写了,譬如另外一个值表示是代理,后面跟随了一些协议信息,这个协议就是RTMP Proxy协议。

Protocol
使用网络字节序,big-endian。在C0前插入代理的包,兼容RTMP标准协议。

标准RTMP协议如下:

C0,     1B, 03表示明文RTMP。后面是C1C2以及其他消息。

RTMP代理协议如下:

F3,         1B,常量0xF3,表示RTMP代理协议。
Size,       2B, 表示代理数据的长度,即Size和C0之间的数据。
X-Real-IP,  4B, 表示客户端的真实IP。
C0,         1B,原始客户端的C0,方便代理直接转发客户端的数据。
备注:一般Size应该不超过C0C1长度,即Size<=1537

例如,标准RTMP客户端的消息:

03            // 客户端的C0包,后面是C1C2,以及其他的消息。

或者,代理客户端发送的消息:

F3            // 表示是RTMP代理
00 04         // 表示Extra有4字节
C0 A8 01 67   // 表示客户端IP,C0.A8.01.67,即192.168.1.103
03            // 客户端原始的C0数据。从这个数据(包括它本身)开始,就是客户端发送的消息了,譬如C1C2。

RTMP协议,譬如握手的C0、C1、C2、S0、S1、S2,以及数据部分,都没有变更。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RTMP(Real Time Messaging Protocol)是一种实时通信协议,常用于视频流的传输和播放。rtmp中文规范文档详细描述了RTMP协议的相关规范和细节。 rtmp中文规范文档主要包括以下内容: 1. RTMP协议介绍:介绍RTMP协议的概念、用途和特点,以及与其他协议的区别。 2. RTMP协议结构:详细解释RTMP协议的结构,包括消息头、消息体和消息事件等组成部分。这些组成部分在RTMP协议中起到不同的作用,例如消息头用于标识消息类型和长度。 3. RTMP协议通信流程:描述RTMP协议的通信过程,包括握手阶段、连接阶段和数据传输阶段。这些阶段的具体步骤和流程在rtmp中文规范文档中得到详细说明,有助于开发者了解和实现RTMP协议的通信功能。 4. RTMP协议消息和事件:介绍RTMP协议中支持的各种消息和事件类型,包括连接请求、断开连接、发送数据等。对每种消息和事件类型,rtmp中文规范文档都会提供详细的说明和示例,便于开发者理解和应用。 5. RTMP协议的使用场景:列举了RTMP协议的一些典型使用场景,如视频直播、视频点播等。对于每个场景,rtmp中文规范文档都会说明如何使用RTMP协议进行数据传输和交互。 通过阅读rtmp中文规范文档,开发者可以全面了解RTMP协议的工作原理和操作步骤,并且可以根据文档提供的示例代码和规范要求来进行实际的开发和应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值