WebRTC的windows静态库,普通的vc和qt项目不能用?

1. 问题:

比较新的webrtc默认是clang编译器,编译出来的静态库在vs下不能用。这给开发带了了极大的不方便。

解决方案:

  1. 把你的代码放到webrtc里面去都用clang编译。(缺点:懂gn且项目复杂了)
  2. 把webrtc编译成动态库给应用层使用。(缺点:很多的class没export无法使用)
  3. 关掉默认的clang编译器,用vs默认的cl编译器。(推荐使用)

方案 3 关闭 clang 具体实施:

gn gen out --ide=vs2019 --args="use_lld=false is_clang=false"

2. 遇到问题:

如果开启h264支持,ffmpeg编译不过。

gn gen out --ide=vs2019 --args="use_lld=false is_clang=false rtc_use_h264=true"

解决办法:用自己的ffmpeg替换webrtc的ffmpeg库

参考:https://newrtc.blog.csdn.net/article/details/119212566


rtc_library("webrtc_h264") {
  visibility = [ "*" ]
  sources = [
    "codecs/h264/h264.cc",
    "codecs/h264/h264_color_space.cc",
    "codecs/h264/h264_color_space.h",
    "codecs/h264/h264_decoder_impl.cc",
    "codecs/h264/h264_decoder_impl.h",
    "codecs/h264/h264_encoder_impl.cc",
    "codecs/h264/h264_encoder_impl.h",
    "codecs/h264/include/h264.h",
  ]
  if (!is_clang) {
  #设置头文件路径
    include_dirs = [ "//third_party/ffmpeg_msvc/include" ]
    libs = [
   # 设置引用库
       "//third_party/ffmpeg_msvc/lib/x86/ffmpeg.lib",
    ]
  }

  defines = []

set DEPOT_TOOLS_UPDATE=0
set DEPOT_TOOLS_WIN_TOOLCHAIN=0
set GYP_MSVS_VERSION=2019
set GYP_MSVS_OVERRIDE_PATH =C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise
set GYP_GENERATORS=msvs-ninja,ninja

gn gen out\x86_debug0 --ide=vs2019 --args="use_rtti=true is_debug=true target_cpu=\"x86\" is_component_ffmpeg=true ffmpeg_branding=\"Chrome\" proprietary_codecs=true  rtc_use_h264=true  gtest_enable_absl_printers=false libyuv_include_tests=false  rtc_enable_protobuf=false use_custom_libcxx=false use_custom_libcxx_for_host=false use_lld=false is_clang=false"

webrtc开启h264的意义是什么?

1. pc,ios,嵌入式的硬件编解码一般只支持h264。

2. h264数据更方便转发录制保存,不然录制mp4文件。

来源:MoMing工作室
原文:https://mp.weixin.qq.com/s/Z8jD4NhQp1MiPizoUayONg

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论