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

2024-04-17 07:04

本文主要是介绍windows Webrtc +VS2019 (M124)下载编译以及调通测试demo,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

下载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就跑通了

这篇关于windows Webrtc +VS2019 (M124)下载编译以及调通测试demo的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/911105

相关文章

Android开发中gradle下载缓慢的问题级解决方法

《Android开发中gradle下载缓慢的问题级解决方法》本文介绍了解决Android开发中Gradle下载缓慢问题的几种方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、网络环境优化二、Gradle版本与配置优化三、其他优化措施针对android开发中Gradle下载缓慢的问

python 3.8 的anaconda下载方法

《python3.8的anaconda下载方法》本文详细介绍了如何下载和安装带有Python3.8的Anaconda发行版,包括Anaconda简介、下载步骤、安装指南以及验证安装结果,此外,还介... 目录python3.8 版本的 Anaconda 下载与安装指南一、Anaconda 简介二、下载 An

SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程

《SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程》本文详细介绍了如何在虚拟机和宝塔面板中安装RabbitMQ,并使用Java代码实现消息的发送和接收,通过异步通讯,可以优化... 目录一、RabbitMQ安装二、启动RabbitMQ三、javascript编写Java代码1、引入

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Java下载文件中文文件名乱码的解决方案(文件名包含很多%)

《Java下载文件中文文件名乱码的解决方案(文件名包含很多%)》Java下载文件时,文件名中文乱码问题通常是由于编码不正确导致的,使用`URLEncoder.encode(filepath,UTF-8... 目录Java下载文件中文文件名乱码问题一般情况下,大家都是这样为了解决这个问题最终解决总结Java下

Windows设置nginx启动端口的方法

《Windows设置nginx启动端口的方法》在服务器配置与开发过程中,nginx作为一款高效的HTTP和反向代理服务器,被广泛应用,而在Windows系统中,合理设置nginx的启动端口,是确保其正... 目录一、为什么要设置 nginx 启动端口二、设置步骤三、常见问题及解决一、为什么要设置 nginx

在 Windows 上安装 DeepSeek 的完整指南(最新推荐)

《在Windows上安装DeepSeek的完整指南(最新推荐)》在Windows上安装DeepSeek的完整指南,包括下载和安装Ollama、下载DeepSeekRXNUMX模型、运行Deep... 目录在www.chinasem.cn Windows 上安装 DeepSeek 的完整指南步骤 1:下载并安装

Python实现文件下载、Cookie以及重定向的方法代码

《Python实现文件下载、Cookie以及重定向的方法代码》本文主要介绍了如何使用Python的requests模块进行网络请求操作,涵盖了从文件下载、Cookie处理到重定向与历史请求等多个方面,... 目录前言一、下载网络文件(一)基本步骤(二)分段下载大文件(三)常见问题二、requests模块处理

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时