使用 GStreamer 和 multiudpsink 设置不同的 RTP SSRC

Setting different RTP SSRCs with GStreamer and multiudpsink

C++ 程序中,我使用 GStreamer 管道生成 RTP 流并使用 multiudpsink 同时将其发送到两个目的地元素.

这工作正常,除了两个流具有相同的 RTP SSRC。有没有办法为两个流设置不同的SSRC

没有办法

SSRCRTP 会话参与者的唯一标识符。 RTP 会话管理器 持有所有参与者的 SSRC。唯一标识符 SSRC 不能重复,不同的 SSRC 对应于会话的不同参与者。 因此SSRC不是会话或一对参与者的标识符,而是单个用户的标识符。

在您的情况下,SSRCRTP 流生成器的标识符,因此在这种情况下不可能有 2 个不同的 SSRC

进一步阅读here

我找到的解决方案是使用 tee 元素并有多个分支,每个分支都有自己的 RTP 编码器(在我的例子中是 rtpopuspay)和 multiupdsink 元素。

这样每个提要都会获得不同的 SSRC。