VS2017编译Chromium和CEF支持播放MP4

一、准备工作
1、安装VS2017(自行安装)
2、准备一个稳定的VPN(很重要)
3、准备一个剩余容量至少为100G的盘符
4、配置git代理
设置代理(执行一次即可)
git config --global http.proxy http://127.0.0.1:10809
git config --global https.proxy http://127.0.0.1:10809
取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy
二、CEF 源码编译流程
1、创建工作目录
D:\cef\cef
D:\cef\chromium\src
D:\cef\depot_tools
VS2017编译Chromium和CEF支持播放MP4_第1张图片
2、添加环境变量
(1)代理
setx HTTP_PROXY “http://127.0.0.1:10809”
setx HTTPS_PROXY “http://127.0.0.1:10809”
(2)禁止depot_tools自动更新
setx DEPOT_TOOLS_UPDATE “0”
(3)使用本地安装的 Visual Studio 版本
setx DEPOT_TOOLS_WIN_TOOLCHAIN “0”
(4)GN 构建工具
setx CEF_USE_GN “1”
(5)使用 VS2017 创建项目
setx GN_ARGUMENTS “–ide=vs2017 --sln=cef --filters=//cef/*”
(6)使用官方构建并添加ffmpeg音视频解码
setx GN_DEFINES “is_official_build=true proprietary_codecs=true ffmpeg_branding=Chrome”
(7)将depot_tools路径("D:\cef\depot_tools)添加到用户环境变量Path
3、下载源码
1、下载CEF
cd D:\cef
clone源码并切换至4389分支
git clone https://bitbucket.org/chromiumembedded/cef.git -b 4389
2、下载chromium
cd D:\cef\chromium
clone指定tag(89.0.4389.114)的源码, (cef 4389分支 对应chromiun tag: 89.0.4389.114)
“–depth 1”: 只下载当前版本不需要历史提交记录, 否则耗时严重且浪费储存空间或者意外中断
vs2017支持最新的chromium源码版本是89.0.4389.114
git clone https://chromium.googlesource.com/chromium/src.git -b 89.0.4389.114 --depth 1
3、下载depot_tools
cd D:\cef
:: clone depot_tools工具
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
cd D:\cef\depot_tools
:: 临时允许更新
set DEPOT_TOOLS_UPDATE=1
:: 执行update_depot_tools.bat下载内部工具
update_depot_tools.bat
:: 禁止更新
set DEPOT_TOOLS_UPDATE=0
:: checkout, (cef 4389分支 对应depot_tools commit id: 1f976d6f30)
checkout 1f976d6f30
注意: cef与chromium和depot_tools对应版本关系在 “cef\CHROMIUM_BUILD_COMPATIBILITY.txt”
VS2017编译Chromium和CEF支持播放MP4_第2张图片

4、gclient 同步chromium依赖项目
(1)、创建.gclient文件
cd D:\cef\chromium
:: 通过命令创建.gclient文件
gclient config https://chromium.googlesource.com/chromium/src.git --unmanaged
(2)、执行gclient sync
cd D:\cef\chromium
gclient sync --nohooks --no-history
此命令执行过程中可能会中途暂停或失败,耐心等待或重复执行此命令直到成功为止
(3)、执行gclient runhooks
cd D:\cef\chromium
:: 如果前面已经设置了此环境变量, 可以不用执行set DEPOT_TOOLS_WIN_TOOLCHAIN=0
gclient runhooks
此命令执行过程中可能会中途暂停或失败,耐心等待或重复执行此命令直到成功为止
5、构建项目
(1)、复制 D:\cef\cef 到 D:\cef\chromium\src
xcopy “D:\cef\cef” “D:\cef\chromium\src\cef” /e
(2)、构建项目
cd D:\cef\chromium\src\cef
如果前面已经设置了这些环境变量则可以跳过这3条命令set CEF_USE_GN=1
set GN_ARGUMENTS=–ide=vs2017 --sln=cef --filters=//cef/*
set GN_DEFINES=is_official_build=true proprietary_codecs=true ffmpeg_branding=Chrome
构建项目call cef_create_projects.bat
(3)、编译
cd D:\cef\chromium\src
ninja -D out/Release_GN_x86 cef
(4)、打包
cd D:\cef\chromium\src\cef\tools
make_distrib.bat --ninja-build --client
在 D:\cef\chromium\src\cef\binary_distrib 目录下就可以看到打包过的文件了
5、其他
(1)如果在构建或编译过程中遇到python gbk编码错误, 找到报错的代码添加 utf-8 编码即可, 比如:
if (environment_block_name != ‘’):
env_block = _FormatAsEnvironmentBlock(env)
with open(environment_block_name, ‘w’, encoding=‘utf-8’) as f:
f.write(env_block)
(2)参考文档
https://chromium.googlesource.com/chromium/src/+/master/docs/windows_build_instructions.md
https://www.yangdx.com/2022/07/215.html

你可能感兴趣的:(压力测试,windows)