0
点赞
收藏
分享

微信扫一扫

WebRTC C++ RTP over TCP配置

是她丫 2023-09-15 阅读 53

前言

RTP over TCP这种情况,一般是WebRTC P2P打洞失败,才会选择

WebRTC默认使用UDP传输,但是也可以通过TCP传输。使用TCP传输,需要服务器中转,turnserver,licode,janus之类的服务器


解决方案


搭建coTurn中转服务器

https://blog.51cto.com/fengyuzaitu/7265986


C++修改代码

url后面必须指定?transport=tcp

kRelay强制指定中转,即使在同一个网络

	webrtc::PeerConnectionInterface::RTCConfiguration config;
  config.sdp_semantics = webrtc::SdpSemantics::kUnifiedPlan;
  config.type = webrtc::PeerConnectionInterface::kRelay;
  webrtc::PeerConnectionInterface::IceServer server;
  server.uri = "turn:192.168.11.174:3478?transport=tcp";  // GetPeerConnectionString();
  server.username = "dong";
  server.password = "shenghua";
  config.servers.push_back(server);

其他语言修改

?transport=tcp

icetransportpolicy:"relay"


流程如下

p1 <--tcp--> p1turn <--udp--> p2turn <--tcp--> p2

有可能只有一个turn

p1 <--tcp--> pturn <--tcp--> p2


参考

 https://www.rfc-editor.org/rfc/rfc6544

 https://blog.vline.com/post/52644825765/tunneling-webrtc-over-tcp-and-why-it-matters

 https://blog.csdn.net/weixin_38102771/article/details/124530900?spm=1001.2014.3001.5502

https://github.com/ossrs/srs/issues/2852



举报

相关推荐

0 条评论