rtmp - RTMP 可以在单个块流中多路复用消息吗?
问题描述
阅读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 |
+-----------+-------------------+-----------------+-----------------+
RTMP 客户端可以发送以下的块序列吗?
- 为 27 键入 0 消息
- 为 42 键入 0 消息
- 27 的类型 3 消息
- 27 的类型 3 消息(完全发送 Msg #1)
- 42 的类型 3 消息(完全发送消息 #2)
换句话说,块 3 是否应该使用来自 1 或来自 2 的标头(即基于消息流 id)?
解决方案
推荐阅读
- python - 在 Python 中应用函数后如何更改数据帧的索引?
- r - 预期结果的输出差异
- c# - 如何在不创建许多计时器对象的情况下创建许多事件
- arrays - jq 将字节整数数组内爆为原始字节
- ansible - Ansible使用拆分变量将行添加到文件
- javascript - NodeJs - 我如何安全地存储用户的银行账户和路由号码?
- python - 在 TemplateResponse 之后保留表单数据
- ios - 尝试在 iOS 上发起电话呼叫时如何解决错误,com.apple.telephonyutilities.callservicesdaemon.callstatecontroller
- azure - 在 azure marketplace 提交试用版应用程序
- vue.js - Vuejs 如何正确使用 $emit 函数?