使用 GStreamer 和 multiudpsink 设置不同的 RTP SSRC
Setting different RTP SSRCs with GStreamer and multiudpsink
在 C++
程序中,我使用 GStreamer
管道生成 RTP
流并使用 multiudpsink
同时将其发送到两个目的地元素.
这工作正常,除了两个流具有相同的 RTP SSRC
。有没有办法为两个流设置不同的SSRC
?
没有办法
SSRC
是 RTP
会话参与者的唯一标识符。
RTP
会话管理器 持有所有参与者的 SSRC
。唯一标识符 SSRC
不能重复,不同的 SSRC
对应于会话的不同参与者。
因此SSRC
不是会话或一对参与者的标识符,而是单个用户的标识符。
在您的情况下,SSRC
是 RTP
流生成器的标识符,因此在这种情况下不可能有 2 个不同的 SSRC
。
进一步阅读here
我找到的解决方案是使用 tee
元素并有多个分支,每个分支都有自己的 RTP 编码器(在我的例子中是 rtpopuspay
)和 multiupdsink
元素。
这样每个提要都会获得不同的 SSRC。
在 C++
程序中,我使用 GStreamer
管道生成 RTP
流并使用 multiudpsink
同时将其发送到两个目的地元素.
这工作正常,除了两个流具有相同的 RTP SSRC
。有没有办法为两个流设置不同的SSRC
?
没有办法
SSRC
是 RTP
会话参与者的唯一标识符。
RTP
会话管理器 持有所有参与者的 SSRC
。唯一标识符 SSRC
不能重复,不同的 SSRC
对应于会话的不同参与者。
因此SSRC
不是会话或一对参与者的标识符,而是单个用户的标识符。
在您的情况下,SSRC
是 RTP
流生成器的标识符,因此在这种情况下不可能有 2 个不同的 SSRC
。
进一步阅读here
我找到的解决方案是使用 tee
元素并有多个分支,每个分支都有自己的 RTP 编码器(在我的例子中是 rtpopuspay
)和 multiupdsink
元素。
这样每个提要都会获得不同的 SSRC。