1. 问题:
比较新的webrtc默认是clang编译器,编译出来的静态库在vs下不能用。这给开发带了了极大的不方便。
解决方案:
- 把你的代码放到webrtc里面去都用clang编译。(缺点:懂gn且项目复杂了)
- 把webrtc编译成动态库给应用层使用。(缺点:很多的class没export无法使用)
- 关掉默认的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 举报,一经查实,本站将立刻删除。