RTMP协议 (三):RTMP设计思想

本文详细介绍了RTMP协议的设计思想,包括大而化小(消息拆分为Chunk)、复用技术、消息优先级管理以及Chunk大小的动态调整,揭示了RTMP实现低延迟直播的秘密。
摘要由CSDN通过智能技术生成

1、RTMP传输基本流程

RTMP 视音频数据流程

发送端

  • Step 1: 把数据封装成消息(Message)。

  • Step 2: 把消息分割成消息块(Chunk, 网络中实际传输的内容)。

  • Step 3: 将分割后的消息块(Chunk)通过TCP协议发送出去。

接收端:

  • Step 1: 在通过TCP协议收到数据后, 先将消息块重新组合成消息(Message)。

  • Step 2: 通过对消息进行解封装处理就可以恢复出数据。

RTMP的突出优点是: 延时低,正常延时1~3秒,理想的话直播可控制在1秒之内。 它是怎么做到的? 有什么好的设计思想?

2、RTMP设计思想

RTMP设计思想

2.1 大而化小 轻车简行

RTMP协议中基本的数据单元称为消息(Message)。 在互联网中传输数据时, 消息(Message)会被拆分成更小的单元, 称为消息块(Chunk). 大的Message被切割成利于在网络上传输的小Chunk,个人认为这是RTMP之所以延时低的核心原因

Message被拆分成Chunk

切成小块, 还可防止大的数据块(如视频数据)阻塞小的数据块(如音频数据或控制信息)

2.2 本是天涯同路人 你方唱罢我登场

RTMP基于TCP协议,包括控制信息、视频数据、音频数据都共用同一个TCP Connection。 也就是说路只有一条。而且同一时间只允许一辆车通过。 生成好的视频Chunk和音频Chunk,依次上路

Video Chunk和Audio Chunk在网络上的传输顺序 示意图

这就涉及到RTMP中一个非常重要的概念: 复用。 RTMP协议开篇是这么介绍的:

Abstract This memo describes Adobe’s Real Time Messaging Protocol (RTMP), an application-level protocol designed for multiplexing and packetizing multimedia transport streams (such as audio, video, and interactive content) over a suitable transport protocol (such as TCP).

其中multiplexing就是复用的意思,指的就是将独立的音视频数据整合到一个数据流,让音视频流可以同步传输的过程。 RTMP直播中,实时生成视频Chunk和音频Chunk&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值