windows Webrtc +VS2019 (M124)下载编译以及调通测试demo

news2024/10/7 18:28:31

下载depot tools

设置梯子

git config --global http.proxy =127.0.0.1:10000

git config --global https.proxy =127.0.0.1:10000

下载

$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

设置depot_tools目录为环境变量

下载webrtc

# 设置系统代理

set https_proxy= 127.0.0.1:10000

# 创建源码目录

mkdir  webrtc-checkout

cd webrtc-checkout

# 拉取 webrtc 源码

fetch --nohooks webrtc

# 同步工具

gclient sync –with_branch_heads

git fetch

git branch –a

切换到指定版本

git checkout –b m124 remotes/branch-heads/6367

生成VS工程以及编译

set DEPOT_TOOLS_WIN_TOOLCHAIN=0

set GYP_MSVS_VERSION=2019

set GYP_MSVS_OVERRIDE_PATH="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community"

set GYP_GENERATORS=msvs-ninja,ninja

gn gen out/project --ide=vs2019

# 编译 webrtc

ninja -C out/project -j 8

以后每次编译都需要去设置一下“set DEPOT_TOOLS_WIN_TOOLCHAIN=0

测试peerconnection_client/peerconnection_server

找到两台内网机器

A:开启server程序,以及开启client程序,并设置ip为127.0.0.1

B:开启client程序,并设置A的ip地址

问题:测试结果发现新版的webrtc没有去触发tcp的onconnect信号

解决方法:

1. 在peerconnection_client下 main.cc 内新增类

class CustomSocketServer:public rtc::PhysicalSocketServer {

public:

    bool Wait(webrtc::TimeDelta max_wait_duration, bool process_io) override {

        if (!process_io)

            return true;

        return rtc::PhysicalSocketServer::Wait(webrtc::TimeDelta::Zero(), process_io);

    }

};

2. 注释rtc::PhysicalSocketServer ss 使用CustomSocketServer ss:

int PASCAL wWinMain(HINSTANCE instance,

                    HINSTANCE prev_instance,

                    wchar_t* cmd_line,

                    int cmd_show) {

  rtc::WinsockInitializer winsock_init;

  //rtc::PhysicalSocketServer ss;

  CustomSocketServer ss;

  rtc::AutoSocketServerThread main_thread(&ss);

3. 在注释 //Main loop前新增:

  main_thread.Start();

  // Main loop.

  MSG msg;

  BOOL gm;

再重复之前的测试发现可以了,从此webrtc-demo就跑通了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1601027.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SCADA系统通过巨控GRM模块实现OPC协议远程监控PLC

SCADA系统和PLC不在同一个地方,需要远程监控和控制PLC,可以通过巨控GRM模块来实现,通过OPC协议转巨控服务器远程读写PLC寄存器,从而完成远程监控PLC。 要实现SCAKDA系统远程监控PLC,关键是要实现SKADA能通过互联网访问…

【静态分析】软件分析课程实验-前置准备

课程:南京大学的《软件分析》课程 平台:Tai-e(太阿)实验作业平台 1. 实验概述 Tai-e 是一个分析 Java 程序的静态程序分析框架,相比于已有的知名静态程序分析框架(如 Soot、Wala 等)&#xf…

艾体宝方案 | ITT-Profitap IOTA——铁路运输的远程网络捕获和故障排除方案

在移动互联时代,铁路运输的数字化转型已成不可逆转的趋势。然而,随之而来的是对网络连接质量和故障排查的更高要求。本文将探讨如何利用艾体宝Profitap IOTA技术,在火车上实现远程网络捕获和故障排查,助力铁路运输行业迈向智能化未…

OpenStack:开源云计算的崛起与发展

目录 一,引言 二,OpenStack的起源 三,OpenStack的版本演进 四,OpenStack跟虚拟化的区别 五,OpenStack组件介绍 1)Horizon介绍 2)KeyStone介绍 Keystone 功能概览 Keystone 架构详解 3&a…

51单片机之DS1302实时时钟

1.DS1302时钟芯片介绍 DS1302是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片。它可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能RTC(Real Time Clock):实时时钟,是一种集成电路,通常称…

基于stm32_h5的freertos编程示例

目录 基于stm32_h5的freertos编程示例实验目的添加FreeRTOS配置FreeRTOS测试工程本文中使用的测试工程 基于stm32_h5的freertos编程示例 本文目标:基于stm32_h5的freertos编程示例 按照本文的描述,应该可以在对应的硬件上通实验并举一反三。 先决条件…

类的加载,反射和注解详解

文章目录 类的加载概述类加载器作用分类获取类加载器的方式 双亲委派机制3种加载器的关系工作机制 类加载器的应用 反射概述关键获取类对象获取构造器对象获取方法对象获取成员变量对象作用 注解概述作用自定义注解格式属性类型 元注解常见的元注解 注解解析概述方法技巧 类的加…

LabVIEW仪器信息管理系统

LabVIEW仪器信息管理系统 在计量检测实验室的日常工作中,仪器检定校准是一项基础而重要的任务。随着科技的进步和实验室工作量的增加,传统的人工管理方式已经难以满足现代实验室对效率和准确性的要求。开发一套基于LabVIEW的仪器信息管理系统显得尤为必…

还有同学开题报告没写吗?

引言 作为一名在软件技术领域深耕多年的专业人士,我不仅在软件开发和项目部署方面积累了丰富的实践经验,更以卓越的技术实力获得了🏅30项软件著作权证书的殊荣。这些成就不仅是对我的技术专长的肯定,也是对我的创新精神和专业承诺…

Jmeter 场景测试:登录--上传--下载--登出

为了练习Jmeter的使用,今天我要测试的场景是“登录--上传--下载--登出”这样一个过程. 测试的目标是我曾经练手写的一个文件分享系统,它要求用户只有登录后才可以下载想要的文件。 Jmeter总体结构: 第一步:添加HTTP Cookie管理器…

聊聊最近两星期的学习吧!

今天是4月14号。 自从我3月份回到学校之后,我每天都有记录自己的学习时长。今天晚上,我在复盘我自己学习时长的时候,我发现,在整个四月份,我平均每天的有效学习时长只有6h,而且到今天为止,整个四…

Java报表是什么?盘点2023最实用的四款Java报表

从字面义就可以推知,Java报表指的是在Java环境下开发或使用的报表工具。Java语言因其功能强大和简单易用的特点,是静态面向对象编程语言的代表,在Java环境开发使用的这些报表工具,可以通过提供可视化操作界面制作报表,…

最新的网易星球GEC挖矿系统修复版 章鱼星球挖矿系统源码 区块链虚拟币交易源码 基于ThinkPHP5开发

区块链系统介绍 2018.12.10更新增加聚合数据短信接口 2018.11.19更新增加短信宝接口 2018.08.17修复Linux系统搭建验证码不显示问题 2018.08.09修复后台某处溢出数据库账号密码BUG 2018.08.06修复票卷BUG 源码介绍: 区块链系统中用户共九个等级,依…

LabVIEW光学探测器板级检测系统

LabVIEW光学探测器板级检测系统 特种车辆乘员舱的灭火抑爆系统广泛采用光学探测技术来探测火情。光学探测器作为系统的关键部件,其探测灵敏度、响应速度和准确性直接关系到整个系统的运行效率和安全性。然而,光学探测器在长期使用过程中可能会因为灰尘污…

怎么用手机远程控制电脑 远程控制怎么用

怎么用手机远程控制电脑:远程控制怎么用 在这个科技日新月异的时代,远程控制电脑已经成为了很多人的需求。有时,我们可能在外出时突然需要访问家中的电脑,或者在工作中需要远程操控办公室的电脑。这时,如果能用手机远…

力扣:141. 环形链表

力扣:141. 环形链表 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾…

解决Linux根分区空间不足的方法:利用Home分区进行扩容

前言 在进行系统安装时,一个常见的困扰是默认分区设置可能导致home分区拥有过多的空间,而root分区却显得十分紧缺。这种情况下,用户往往会陷入无法继续安装软件或存储文件的困境。本文将向您展示如何通过合理的调整,将home分区中多…

贪吃蛇(C语言版--1)

在我们学完C语言之后 我们准备写一个贪吃蛇的代码 但在我们写贪吃蛇代码之前 我们需要铺垫一些数据结构的知识 顺序表基于顺序表实现通讯录项目单链表双向链表 顺序表(底层是数组) 顺序表其实是线性表(具有相同特性的数据结构的集合&…

【网络编程】UDP实现回显服务器

一.网络编程的基本术语. 客户端 客户端是为用户提供本地服务的程序,通常位于用户设备上。也称为用户端,是相对于服务器而言的。它主要指安装在用户设备上的程序,这些程序能够与服务器进行通信,从而获取服务或者执行特定功能。在…

window轻松使用k8s

Docker Desktop安装篇 1、win安装 1、下载安装包 https://www.docker.com/products/docker-desktop/ 官网下载安装包 2、配置win支持虚拟化 不勾选Hyper-V,它和Windows Subsystem for Linux (WSL) 是两套功能,这里不选他 3、安装WSL配置window支持lin…