CSRC и SSRC в RTP
Я очень плохо знаком с RTP, может кто-нибудь объяснить о CSRC и SSRC в целом?
От http://www.rfc-editor.org/rfc/rfc3550.txt, что это говорит: Поле SSRC идентифицирует источник синхронизации. Означает ли это, что в сети может быть много отправителей, которые участвуют в RTP (многоадресной сети) и определяют, из какого источника поступает пакет?
CSRC: вносящий источник (CSRC): источник потока пакетов RTP, который внес вклад в объединенный поток, создаваемый микшером RTP (см. Ниже). Не понимаю.
кто-нибудь может объяснить с примером, пожалуйста? Спасибо
3 ответа
Взяты из ссылки:
SSRC Идентифицирует источник синхронизации. Значение выбирается случайным образом с намерением, чтобы никакие два источника синхронизации в одном и том же сеансе RTP не имели одинакового SSRC. Хотя вероятность того, что несколько источников выберут один и тот же идентификатор, мала, все реализации RTP должны быть готовы обнаруживать и разрешать коллизии. Если источник изменяет свой транспортный адрес источника, он также должен выбрать новый SSRC, чтобы избежать его интерпретации как зацикленного источника.
CSRC Массив от 0 до 15 элементов CSRC, идентифицирующих способствующие источники для полезной нагрузки, содержащейся в этом пакете. Количество идентификаторов задается полем CC. Если существует более 15 способствующих источников, можно определить только 15. Идентификаторы CSRC вставляются микшерами с использованием идентификаторов SSRC участвующих источников. Например, для аудиопакетов перечислены идентификаторы SSRC всех источников, которые были смешаны вместе для создания пакета, что позволяет правильно указывать собеседника на приемнике.
Честно говоря, я никогда не видел, чтобы кто-либо действительно использовал SSRC или CSRC каким-либо осмысленным образом. Во всем коде, с которым я имел дело, мы просто генерируем случайное число в SSRC и никогда не заполняем CSRC.
Я предполагаю, что SSRC может быть полезен для отслеживания и / или обнаружения зацикливания звуковых путей.
Я полагаю, что CSRC может быть полезен для конечной точки SIP, получающей аудио от серверов конференций, где несколько источников звука смешаны вместе, как указано в приведенной выше цитате. Как я уже сказал, в коде сервера конференций, с которым я имел дело, мы не беспокоимся.
Относительно вашего вопроса "Означает ли это, что в сети может быть много отправителей, которые вносят свой вклад в RTP (многоадресная сеть) и определяют, из какого источника поступает пакет?"
Это не совсем так, потому что, когда имеется много источников, видео / аудио микшируется микшером RTP, и в этом случае SSRC является SSRC микшера RTP, который не является источником отправителя RTP-пакета, чтобы узнать нужные вам источники Чтобы посмотреть массив CSRC, в котором эти источники идентифицированы уникальным SSRC, размер массива также определяется полем заголовка CC: count CSRC.
Если аудио / видео не объединены (одноадресные), то SSRC является отправителем этого видео / аудио, а CSRC не заполнен.
Полезная презентация: http://voip.netlab.uky.edu/~fei/teaching/cs671/slides/rtp.pdf
Согласно разделу 4RFC 8108, вот спецификации:
если используются микшеры RTP, некоторые SSRC могут быть видны только в списке дополнительных источников (CSRC) пакета RTP и в RTCP и могут не отображаться непосредственно как SSRC пакета данных RTP.
- SSRC:
Идентификатор источника синхронизации (32 бита) четко отличает источник потока данных. Источники синхронизации в том же сеансе RTP будут уникальными.
2.CSRC:
Внесение идентификаторов источников (32 бита каждый) суммирует внесение источников в поток, который был сгенерирован из нескольких источников.
- Соответствующее расположение: заголовок пакета RTP