diff --git a/2024-6-7.-.md b/2024-6-7.-.md index 949e985..1a5de2b 100644 --- a/2024-6-7.-.md +++ b/2024-6-7.-.md @@ -3,8 +3,19 @@ 2. 把OTA升级中的size通过head获取,然后重构了部分代码。 #学习内容 -1. 观看了SDK文章中的架构设计,使我知道这块代码是做什么的,例如,系统架构主要分为三部分,平台、赛达SDK、设备厂商主程序。通过平台调用Grpc,将命令传递到SDK模块,SDK模块将命令下发到厂厂商,厂商将结果返回SDK,SDK将消息内容通过Grpc协议传递给平台(回调函数) +1. 观看了SDK文章中的架构设计,使我知道这块代码是做什么的,例如,系统架构主要分为三部分,平台、赛达SDK、设备厂商主程序。通过平台调用Grpc,将命令传递到SDK模块,SDK模块将命令下发到厂厂商,厂商将结果返回SDK,SDK将消息内容通过Grpc协议传递给平台(回调函数)。 2. RTMP: +RTMP是基于TCP协议的实时消息传输协议(应用层协议)初步目的是为了解决FLash播放器中实时音视频传输问题,虽然目前Flash被逐渐淘汰,RTMP备受挑战,但是在很多的应用场景中RTMP依然是首选,例如实时互动场景等,即视频直播、视频会议、网络广播等。具体的流程为:在通过TCP建立链接后,RTMP协议也要客户端和服务端通过“HandShake”(握手)来建立基于传输层链接之上的RTMP Connection链接,在建立连接之后可以传输一些控制信息,例如SetChunkSize,SetACKWindowSize等。其中的CreateStream命令会创建一个Steam链接,用于具体音视频数据和控制命令。在进行数据传输时会进行格式化(RTMP Message),在传输的过程中为了更好的实现多路复用,分包和信息的公平性,发送端会将Message消息划分为带有Message ID的Chunk,每个Chunk可以是单独的一个Message,也可以是Message中的一部分。在接收端会根据Chunk中包含的Data的长度、id把chunk还原成完成的Message,从而实现消息的发送和接受,最后关闭链接释放内存。下面是RTMP的优势和特点。 +- 低延时 +RTMP提供了稳定的连接和较低的延迟,RTMP基于TCP协议,TCP能保证数据包的顺序和错误校正,即RTMP传输的音视频能够保持高质量不被丢包、 + +- 支持多种媒体类型 +RTMP不仅支持音视频数据的传输,还可以传输其他类型的数据,包括文本,图像脚本数据等。 + +- 可扩展性和灵活性 +RTMP可以在本身的基础上添加自定义的消息类型和控制命令来实现多种命令场景,它也有很强的灵活性,例如RTMP提供了一系列的控制命令,例如开始、停止流,发布、订阅流等,使得RTMP具有亏扩展性和灵活性。 + +2.1