Настройка разных RTP SSRC с помощью GStreamer и multiudpsink

#c #gstreamer #rtp #gstreamer-1.0

#c #gstreamer #rtp #gstreamer-1.0

Вопрос:

В C программе я использую GStreamer конвейер для генерации RTP потока и отправки его в два пункта назначения одновременно с multiudpsink элементом.

Это работает нормально, за исключением того, что оба потока имеют одинаковое RTP SSRC значение. Есть ли способ установить разные SSRC s для двух потоков?

Ответ №1:

Способа нет.

Это SSRC уникальный идентификатор участника RTP сеанса. RTP Диспетчер сеансов хранит SSRC имена всех участников. Уникальный идентификатор SSRC не может быть продублирован, и разные SSRC идентификаторы соответствуют разным участникам сеанса. So SSRC не является идентификатором сеанса или пары участников, это идентификатор одного пользователя.

В вашем случае SSRC это идентификатор генератора RTP потока, поэтому SSRC в этом случае невозможно иметь 2 разных.

Далее читайте здесь

Ответ №2:

Решение, которое я нашел, состояло в том, чтобы использовать tee элемент и иметь несколько ветвей, каждый из которых имеет свой собственный кодировщик RTP (в моем случае rtpopuspay ) и multiupdsink элемент.

Таким образом, каждый канал получает свой SSRC.