首页 > 编程语言 >WebRTC C++ RTP over TCP配置

WebRTC C++ RTP over TCP配置

时间:2023-09-15 19:32:33浏览次数:47  
标签:over C++ server TCP https config webrtc

前言

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



标签:over,C++,server,TCP,https,config,webrtc
From: https://blog.51cto.com/fengyuzaitu/7485923

相关文章

  • APC进程注入C++示例和检测思考
    直接贴C++代码效果:apc注入到pid为39712的进程procexp可以看到注入的DLL! 好了,我们看看代码如何写:注入部分//inject3.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。#include<iostream>#include<Windows.h>#include<TlHelp32.h>usingnamespacestd;......
  • C++对一个map进行for(auto it : ....)特别慢
    使用注释掉的代码就特别慢,超级慢intfind_task=0;std::map<std::string,std::map<unsignedint,std::vector<std::string>>>::iteratorgit;git=g_m_task_files.find(task_id);//for(autoit:g_m_task_files)if(git!=g_m_task_files.end())......
  • C++11中的智能指针shared_ptr、weak_ptr源码解析
    https://www.jb51.net/article/224028.htm−目录1、前言2、源码准备3、智能指针概念4、源码解析4.1、shared_ptr解析4.1.1、shared_ptr4.1.2、__shared_ptr4.1.3、__shared_count4.1.4、_Sp_counted_base4.1.5、_Sp_counted_ptr4.1.6、shared_ptr总结4.2、weak......
  • C++之单例模式(6千字长文详解)
    单例模式什么是单例模式单例模式是设计模式的一种设计模式:设计模式(DesignPattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。为什么会产生设计模式这样的东西呢?就像人类历史发展会产生兵法。最开始部落之间打仗时都是人拼人的对砍。后来春秋战国时......
  • C++ 进阶汇总 [持续更新-建议收藏]
    1.lambda表达式```cpp#include<functional>#include<iostream>intmain(){std::function<void(void)>fun=[](){inta=1;std::cout<<a<<std::endl;};fun();}```2.using类内函数指针重命名[相同类型不同函数,放置到std::map......
  • C++ sizeof 杂谈
    原来sizeof是一个特殊的,运算优先级很高的一种运算符?之前一直都不知道。参考博客:c++中sizeof()的用法介绍C++学习杂谈:sizeof(string)到底是多少?优先级作为一个运算符,sizeof自然也是有优先级的,它在C++中优先级为\(3\),也就是除了作用域解析运算符和诸如括号的操作符,它优......
  • 设计模式 C++
    (设计模式)(李建忠C++)23种设计模式组件协作模板方法父类中定义组件(函数)的调用流程,每个组件使用虚函数进行实现,然后子类中可以重写父类中虚函数的实现。如果我们发现一个算法的组件(函数)的调用流程都是一样的,但是步骤中的各个组件的实现可能有所差异,此时会使用模板方法。【......
  • C++中STL用法汇总
    1什么是STL?STL(StandardTemplateLibrary),即标准模板库,是一个具有工业强度的,高效的C++程序库。它被容纳于C++标准程序库(C++StandardLibrary)中,是ANSI/ISOC++标准中最新的也是极具革命性的一部分。该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法。为广大C++程......
  • Qt/C++音视频开发53-本地摄像头推流/桌面推流/文件推流/监控推流等
    一、前言编写这个推流程序,最开始设计的时候是用视频文件推流,后面陆续增加了监控摄像头推流(其实就是rtsp视频流)、网络电台和视频推流(一般是rtmp或者http开头m3u8结尾的视频流)、本地摄像头推流(本地USB摄像头或者笔记本自带摄像头等)、桌面推流(将当前运行环境的系统桌面抓拍推流)。按......
  • C++完美转发为什么必须要有std::forward?
    先看一种情况,它的输出结果是什么?#include<iostream>usingnamespacestd;voidF(constint&a){cout<<"int:"<<a<<endl;}voidF(int&&a){cout<<"int&&:"<<a<<endl......