SDP a=контрольное поле: streamID или trackID?

В RTSP SDP используется для описания доступных потоков. Если имеется несколько потоков, например аудио- и видеопоток, можно использовать a=control:<...>, чтобы отличить их друг от друга.

В примерах, найденных в Сети, используются две распространенные формы:

  • a=control:streamid=Foo
  • a=control:trackID=Bar

Я пытаюсь понять, как они работают. Моя текущая гипотеза такова:

Сервер RTSP выбирает, что использовать. Клиент должен использовать точную литеральную строку, следующую за a=control:, в качестве относительного URL-адреса для конкретного потока (относительно базового URL-адреса SDP).

Две распространенные формы — это просто условности, которые люди копируют друг у друга. Оба варианта разрешены, так как это всего лишь частные случаи действительных относительных URL-адресов. Клиент RTSP должен поддерживать оба варианта, и на самом деле a=control:A226DA96-BCC1-4563-89C0-927F1EAFE28E одинаково действителен.

Верна ли эта гипотеза формально, а также применима ли она на практике? Или есть обычные клиенты RTSP, которые имеют более узкое представление о том, что разрешено?


person MSalters    schedule 06.11.2017    source источник


Ответы (1)


Ваша гипотеза в основном верна. Все, что следует после «a=control:», должно быть относительным URI или абсолютным URI (в зависимости от того, что вы предпочитаете). Клиент должен адаптироваться в зависимости от того, находит ли он схему RTSP в начале URI (абсолютно) или нет (относительно).

Кроме того, при использовании относительного URI (как в ваших двух примерах) клиент должен иметь возможность получать что-либо после «a = control:», если он содержит только допустимые символы для URI RTSP. «streamid» и «trackID» не имеют значения для клиента. Он должен взять всю строку ("streamid=Foo" или "trackID=Bar") и добавить ее к базовому URI RTSP. «A226DA96-BCC1-4563-89C0-927F1EAFE28E» также будет действителен для любых стандартных клиентов RTSP.

Более подробную информацию можно найти в RFC RTSP: https://www.ietf.org/rfc/rfc2326.txt (раздел C.1.1)

person Dist01    schedule 27.11.2017