webrtc demo编译笔记

一、简介

实际版本开发时,需要将webrtc的lib合入自己特定的工程库,这里记录一下合入过程,便于后续版本升级webrtc版本新建工程时参考。

二、环境配置

PC机:windows 10

VS版本:Microsoft Visual Studio Enterprise 2019

三、预置条件

  • windows环境上编译webrtc

编译OKwebrtc库,使用编译命令行为

gn gen out/Release --args="target_os=\"win\" target_cpu=\"x64\" is_debug=false rtc_use_h264=true is_component_ffmpeg=true ffmpeg_branding=\"Chrome\" enable_libaom=false gtest_enable_absl_printers=false libyuv_include_tests=false rtc_include_tests=false is_component_build=false rtc_enable_protobuf=true use_custom_libcxx=false use_custom_libcxx_for_host=false" --ide=vs2019

若是版本不支持Clang,可以使用如下命令行

gn gen out/Release --args="target_os=\"win\" target_cpu=\"x64\" is_debug=false is_clang=false use_lld=false enable_libaom=false gtest_enable_absl_printers=false libyuv_include_tests=false rtc_include_tests=false is_component_build=false rtc_enable_protobuf=true" --ide=vs2019

  • VS配置安装Clang

webrtc默认编译器是Clang,所以使用VS进行编译时,需要在VS中增加Clang工具。

若不想在VS下使用Clang,可以在webrtc编译命令行中增加is_clang=false use_lld=false。

但是使用is_clang=false use_lld=false命令参数,webrtc不能使用H264功能,因为H264的解码调用的是ffmpeg的264解码器,编ffmpeg必须使用clang编译器。谷歌也在尝试ffmpeg使用Clang编译,其他程序使用CL编译,但是现在这个问题单还是Open状态,目前还没有解决。

https://bugs.chromium.org/p/webrtc/issues/detail?id=9213

  • 编译配置使用Clang平台工具集

        由于VS中自带的Clang有可能与webrtc工程的Clang版本不匹配,最好在VS中使用webrtc的Clang编译器。配置方法如下:

       1、在平台工具集里面,选择LLVM

     2、配置LLVM执行文件路径。

四、makefile配置 

  • 修改webrtc编译配置lib库类型为MD

修改..\src\build\config\win路径下BUILD.gn配置文件与VS保持一致

 

备注:选择MT不用拷贝系统运行期库,但是生成文件会比较大。MD,生成文件比较小,但是需要拷贝一些系统文件。

  • 配置VS工程参数

根据webrtc编译输出文件..\src\out\Release\obj\examples路径下的peerconnection_client.ninja配置VS工程参数。

1、按照配置文件的-I参数,配置VS的include路径

备注:这里gen是webrtc编译生成的文件。在..\src\out\Release\gen路径下。

2、按照配置文件的-D参数,配置VS的预处理器定义

 

3、修改webrtc/BUILD.gn文件,让webrtc.lib包含必须模块,保证我们只连接webrtc.lib就可以编译通过。

备注:

1、需配置webrtc编译参数is_component_build=false,保证仅仅引用lib静态库。

子系统配置:

 

四、附录:

https://chromium.googlesource.com/chromium/src/+/master/docs/clang.md

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WebRTC Demo是一种在线应用程序,它基于WebRTC技术,能够通过网络实时传输音频、视频和数据。WebRTC是一种开放性的标准,旨在使浏览器成为实时通信的平台,而不需要安装额外的插件或软件。 通过WebRTC Demo,用户可以利用网络直接进行语音和视频通话,而无需使用传统的电话线路。此外,它还提供了实时数据传输的功能,使用户能够共享文件、屏幕或其他类型的数据。 WebRTC Demo的工作原理是基于P2P(点对点)连接。它使用STUN(Session Traversal Utilities for NAT)和TURN(Traversal Using Relays around NAT)协议来处理网络的穿透和转发。这样,用户可以建立直接的连接,实现快速稳定的通信。 WebRTC Demo可以应用于多种场景,如在线会议、远程教育、客户服务等。它为用户提供了方便快捷的实时通信方式,无论是个人用户还是企业用户,都可以从中受益。 WebRTC Demo还具有跨平台的特性,可以在不同的设备上运行,包括桌面、移动端和嵌入式设备。用户可以在智能手机、平板电脑或计算机上使用WebRTC Demo,随时随地与其他人进行通信。 总之,WebRTC Demo是一种能够实现在线实时通信的应用程序,它利用WebRTC技术提供了音频、视频和数据传输的能力,为用户提供了方便快捷的通信方式。无论是个人用户还是企业用户,都可以通过WebRTC Demo实现在线的语音、视频通话和数据共享。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值