2024年直播推流实现RTMP协议的一些注意事项_rtmp推流会被禁吗,2024年最新全网疯传

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

   |        S0          |                     |
   |<-------------------|                     |
   |        S1          |                     |
   |<-------------------|               Version sent
   |                    |           C1        |
   |                    |-------------------->|
   |        C2          |                     |
   |------------------->|           S2        |
   |                    |<--------------------|
Ack sent                |                   Ack Sent
   |        S2          |                     |
   |<-------------------|                     |
   |                    |           C2        |
   |                    |-------------------->|

Handshake Done | Handshake Done
| | |
Pictorial Representation of Handshake


握手开始于客户端发送`C0`、`C1`块。服务器收到`C0`或`C1`后发送`S0`和`S1`。


当客户端收齐`S0`和`S1`后,开始发送`C2`。当服务器收齐`C0`和`C1`后,开始发送`S2`。


当客户端和服务器分别收到`S2`和`C2`后,握手完成。


**注意事项:** 在实际工程应用中,一般是客户端先将`C0`, `C1`块同时发出,服务器在收到`C1` 之后同时将`S0`, `S1`, `S2`发给客户端。`S2`的内容就是收到的`C1`块的内容。之后客户端收到`S1`块,并原样返回给服务器,简单握手完成。按照RTMP协议个要求,客户端需要校验`C1`块的内容和`S2`块的内容是否相同,相同的话才彻底完成握手过程,实际编写程序用一般都不去做校验。


RTMP握手的这个过程就是完成了两件事:


校验客户端和服务器端RTMP协议版本号


是发了一堆随机数据,校验网络状况。


#### **3**. RTMP 消息


RTMP消息格式:



0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+
| Message Type | Payload length |
| (1 byte) | (3 bytes) |
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+
| Timestamp |
| (4 bytes) |
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±+
| Stream ID |
| (3 bytes) |
±±±±±±±±±±±±±±±±±±±±±±±±+
Message Header


• 1字节消息类型


• 3字节负载消息长度


• 4字节时间戳


• 3字节 `Stream ID`,区分消息流


**注意事项:** 实际RTMP通信中并未按照上述格式去发送RTMP消息,而是将RTMP 消息分块发送,之后将介绍RTMP消息分块。


#### **3.1**. RTMP 消息分块(chunking)


而对于基于`TCP`的`RTMP`协议而言,协议显得特别繁琐,但是有没有更好的替代方案。同时创建`RTMP`消息分块是比较复杂的地方,涉及到了`AFM`(也是`Adobe`家的东西)格式数据的数据。


#### **RTMP消息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值