Может ли RTMP мультиплексировать сообщения в одном потоке чанка? - PullRequest
5 голосов
/ 07 мая 2019

При чтении спецификации RTMP , пытаясь написать элементарный RTMP-сервер, я не могу сказать, можно ли отправить несколько сообщений (идентификатор потока сообщений) по одному и тому же потоку фрагментов (идентификатор потока фрагментов) .

В разделе 5.3.2 приведены два примера: один, где несколько сообщений с одинаковым идентификатором потока отправляются последовательно по нескольким чанкам для одного идентификатора потока чанков, и один, где одно сообщение отправляется по нескольким чанкам для один идентификатор потока чанка.

Но нет примера, демонстрирующего, что несколько сообщений с различными идентификаторами потока отправляются одновременно через несколько фрагментов для одного идентификатора потока фрагмента. Я не могу найти ничего, что могло бы помешать этому, но мне нужно подтверждение.

Например, скажем, у вас есть два сообщения, как в примере 2

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

Может ли клиент RTMP отправить следующую последовательность кусков?

  1. Введите 0 сообщения для 27
  2. Введите 0 сообщения для 42
  3. сообщение типа 3 для 27
  4. Сообщение типа 3 для 27 (полностью отправлено сообщение № 1)
  5. Сообщение типа 3 для 42 (полностью отправлено сообщение №2)

Другими словами, ожидается ли в блоке 3 заголовок от 1 или от 2 (т. Е. На основе идентификатора потока сообщений)?

...