调用GStreamer webrtcbin的add-turn-server信号报错:信号名称无效
问题原因与解决方案
错误原因
你使用的GStreamer 1.14.5版本不支持add-turn-server动作信号——这个信号是在GStreamer 1.16.0版本才正式引入的。你参考的官方文档对应最新版本的API,但旧版本的GstWebRTCBin并没有这个信号定义,所以调用时会触发"signal name invalid"的错误。
解决方案
方案1:升级GStreamer版本(推荐)
将GStreamer升级到1.16.0或更高版本,之后就能直接使用add-turn-server信号,你的现有代码无需大幅修改。
升级完成后,可以用以下命令验证webrtcbin是否包含该信号:
gst-inspect-1.0 webrtcbin | grep "add-turn-server"
方案2:在1.14.5版本中手动配置TURN服务器
如果无法升级版本,需要通过旧版本的API方式添加TURN服务器:
- 直接在
webrtcbin的stun-server属性中设置TURN服务器地址(1.14.5中该属性同时支持STUN和TURN,格式为turn://user:pass@host:port) - 或者在生成SDP Offer/Answer时,手动将TURN服务器信息添加到SDP的
a=ice-server字段中
示例代码(设置stun-server属性):
g_object_set(webrtc1, "stun-server", turn_str, NULL);
内容的提问来源于stack exchange,提问作者Sagi Mann
相关产品推荐
相关产品推荐

