RTMP可以在单个块流中多路复用消息吗?

Sav*_*ior 5 rtmp live-streaming

在阅读RTMP规范后,为了编写一个基本的RTMP服务器,我无法确定是否可以通过同一块流(块流ID)发送多个消息(消息流ID)。

第5.3.2节分享了两个示例:一个示例,其中具有相同流ID的多个消息通过多个块依次发送给单个块流ID,另一个示例是通过多个块按单个块流ID发送单个消息。

但是,没有示例说明针对单个块流ID在多个块上同时发送具有不同流ID的多条消息。我找不到能阻止这种情况的任何东西,但我想确认一下。

例如,假设您有两条消息,如示例2所示

 +-----------+-------------------+-----------------+-----------------+
 |           | Message Stream ID | Message TYpe ID |  Time  | Length |
 +-----------+-------------------+-----------------+-----------------+
 | Msg # 1   |         27        |    9 (video)    | 1000   |  307   |
 +-----------+-------------------+-----------------+-----------------+
 | Msg # 2   |         42        |    9 (video)    | 1000   |  197   |
 +-----------+-------------------+-----------------+-----------------+
Run Code Online (Sandbox Code Playgroud)

RTMP客户端可以发送以下块顺序吗?

  1. 输入27的0条消息
  2. 键入0消息为42
  3. 键入27的3条消息
  4. 键入27的3消息(已完全发送Msg#1)
  5. 类型3消息为42(完全发送的消息#2)

换句话说,是否希望块3使用1或2中的标头(即基于消息流ID)?