zoukankan      html  css  js  c++  java
  • webrtc完整编译记录

    有关Webrtc后续,可关注公众号:音频探险记

    概述

    webrtc可以说是音视频领域的百科全书了,集音视频采集、音频处理、编解码、传输、渲染于一体。之前一直想完整的编译它来着,但因为各种各样的原因没有编译成功,(没有梯子代码下不完整;编译环境搭建不完全)。上次偶尔在知乎上看到了一种下载webrtc代码的方法,故抱着尝试的心态又整了一把,没想到编译成功了。所以写下此文记录一下编译过程。本文主要包括以下几个部分: |

    • webrtc代码获取
    • 编译环境配置
    • 生成vs工程

    代码获取

    有关webrtc的源代码获取方式可以借鉴下列知乎链接上的方法,首先在阿里云上申请一台国外的主机,下载完代码后再上传至百度云,然后再下载到本地进行编译,具体方法如下。

    https://zhuanlan.zhihu.com/p/357634816

    也可以直接从下面的百度云上下载代码,代码的版本应该是2021.3.15的更新版本。

    链接:https://pan.baidu.com/s/1eaaZOmkTXZ4BI6wCoFu0nw
    提取码:webr
    复制这段内容后打开百度网盘手机App,操作更方便哦

    编译环境配置

    在代码下载的过程中可以着手进行编译环境的配置了,主要的工具包括如下:

    • visual studio 2019 community
    • depot_tools - git

    git的安装方式就不再赘述了,官网上下载个安装文件一路next就可以了。接下来重点介绍depot_tools和vs2019的配置。

    depot_tools

    直接使用如下命令下载depot_tools(所提供的webrtc代码中包含了该depot_tools,下载步骤可以跳过,直接进行depot_tools的配置)

    git clone https://webrtc.bj2.agoralab.co/webrtc-mirror/depot_tools.git
    

    下载完成后进行两个步骤:(1)将其路径添加到环境变量中,(2)新建环境变量depot_tools,并设置其路径。

    以及path中的新建,并将其移动到最前面。

    这样depot_tools的配置就结束了。接下来是vs2019的配置.

    vs2019

    安装时选择如下,重点勾选使用C++的桌面开发,.Net桌面开发可以不用点(我这里是误点了)。

    安装完成后(记住vs的安装路径)还需要安装SDK调试工具。首先进入到软件卸载的那个界面,右键点击Windows Software Development Kit并选择更改,然后选择 Change-->Debugging Tools for Windows,选择应用更改即可完成SDK调试工具的安装。注意该调试工具的安装路径,一般会是在C:Program Files (x86)Windows Kits,我pc上是安装在D:Windows Kits上。 |

    上述步骤完成后开始进行环境变量的设置,主要变量如下:

    变量名 变量值
    DEPOT_TOOLS_WIN_TOOLCHAIN 0
    GYP_GENERATORS msvs-ninja,ninja
    GYP_MSVS_OVERRIDE_PATH C:Program Files (x86)Microsoft Visual Studio2019Community
    GYP_MSVS_VERSION 2019
    WINDOWSSDKDIR D:Windows Kits10

    编译环境的配置基本上就完成了(具体的路径需要自己修改),接下来就可以开始编译webrtc代码了。

    生成vs工程

    解压下载的webrtc源代码,得到如下三个文件夹

    进入到webrtc_checkoutsrc目录下右键git bash。Webrtc默认使用Ninja作为编译系统,Ninja工程文件通过GN生成,由于需要生成vs2019工程文件,所以使用GN生成Ninja工程时需要配置--ide=vs生成vs文件。首先使用如下命令生成all.sln文件。

    gn gen --ide=vs out/Default
    

    将会默认在out/Default下生成all.sln工程文件。提示如下信息表示vs工程生成成功。

    vs工程生成成功后,接着就可以进行编译了,执行如下命令:

    ninja -C out/Default
    

    总共有5251个文件需要处理,编译的时长看电脑配置,我的amd3600 cpu占用率直接拉满,飙到了4.06GHz,大概十几分钟后编译完成。用vs2019打开outDefault下的vs工程文件all.sln, 并重新生成解决方案,静待一首歌的时间。

    可以看到解决方案下的多个工程,以及生成解决方案无报错产生,至此可以大声的宣布,老子终于把webrtc编译成功了。不过还需要做最后一步,将sink_filter_ds.cc中第724行的代码注释掉。不然运行peerconnection_client.exe和peerconnection_server.exe时会出现闪退。

    RTC_DCHECK_RUN_ON(&capture_checker_);--> //RTC_DCHECK_RUN_ON(&capture_checker_);
    

    可以看到左图的客户端和右图的服务端都能正常运行,至此大功告成。webrtc里面的干货太多了,编译成功只是第一步,接下来就是抽丝剥茧的过程了。
    参考链接

    【1】https://blog.jianchihu.net/windows-webrtc-build.html

    【2】https://www.cnblogs.com/Johness/p/webrtc-compile-on-windows.html

    【3】https://zhuanlan.zhihu.com/p/357634816

  • 相关阅读:
    C#中的一些访问修饰符
    Win7下各种Oracle服务的作用
    MySql创建视图
    Sql Server SQL语句创建数据库
    C语言函数指针:获得任意类型数组的最大
    SQLHelper帮助类
    .Net有哪些大型项目、大型网站的案例
    复习一些小知识
    Js作用域与作用域链
    路飞-自定义User表和Media配置
  • 原文地址:https://www.cnblogs.com/tingweichen/p/14881639.html
Copyright © 2011-2022 走看看