firemail

标题: windows平台编译CEF支持MP3、MP4 [打印本页]

作者: Qter    时间: 2022-9-29 09:55
标题: windows平台编译CEF支持MP3、MP4
https://www.jianshu.com/p/d544fc2a2c67
CEF默认不支持mp3、mp4,需要的话得自己编译,记录在window下编译过程中遇到的各种坑
CEF基础版如果不需要mp3、mp4的支持,可以直接下载构建好的版本,下载链接戳这里
新版本是cef和chromium在一个压缩包里,老版本是分开的。



CEF-Build-On-Windows-2021-07-24-22-31-09

准备工作google的项目,都要配置好代理,想直接下是不行的。找个路径放相关的文件,比如E:\cef。
时区设置设置系统区域为英语(美国)。(控制面板-区域-管理-更改系统区域设置-英语(美国)),设置完需要重启。防止编译一些字符集的报错。
代理设置不知道是啥的话后面也不用搞了,不过就算设置了也还是慢,最好还是云服务器编译。
V2ray代理设置git clone 代理配置//加大buffergit config --global http.postBuffer 524288000//设置代理,ssr通常是1080,v2ray是10809,客户端底部有显示git config --global http.proxy http://127.0.0.1:10809 && git config --global https.proxy https://127.0.0.1:10809//取消代理(上面端口设置错了的话)git config --global --unset http.proxy && git config --global --unset https.proxy
windows设置CMD代理netshnetsh>winhttpnetsh winhttp>netsh winhttp>set proxy 127.0.0.1:10809      //设置代理netsh winhttp>show proxy                     //查看代理netsh winhttp>reset proxy                    //重置代理,下载完了不想要代理才用
设置Boto代理[Boto]proxy = 127.0.0.1proxy_port = 10809
创建.boto文件,在命令行设置环境变量,set NO_AUTH_BOTO_CONFIG=E:\cef\.boto
构建脚本构建脚本会执行下载和编译,通过指定参数达到想要的编译效果,下载链接。下载好后放到E:\cef目录下。这是个python脚本,python也需要装下,编译旧版本需要安装python2,新版本需要安装python3,在执行脚本的时候环境不对会给出提示。
参数说明automate-git.py 的参数可以手动执行 python automate-git.py --help 来查看,下面列举大部分情况都会用的。
准备好后目录如下:




CEF-Build-On-Windows-2021-07-24-22-53-01

CEF源码下载下载前需要设置下环境变量,也可以直接在命令行输入就行。
set CEF_USE_GN=1set GN_DEFINES=is_official_build=trueset GYP_DEFINES=buildtype=Officialset GYP_MSVS_VERSION=2017set CEF_ARCHIVE_FORMAT=tar.bz2@REM 第一次源码下载不加--no-depot-tools-update,会先包工具包下下来python automate-git.py --download-dir=e:\cef\source --branch=3626 --checkout=90eb8cc --no-build --no-distrib --force-clean --force-clean-deps --no-depot-tools-update
有一个注意点,depot-tools内部有一些bat和python脚本,需要把它的路径设置到环境变量的PATH里,不然下载会报错
下载错误处理python缺库


CEF-Build-On-Windows-2021-07-24-23-19-10


看到脚本自己去下了python库的.whl,但是安装没成功,我就手动装了下:
pip install numpy=1.12.1pip install opencv_python=3.2.0.7pip install psutil=5.2.2
No module named win32fileTraceback (most recent call last):
File "../../build/toolchain/win/tool_wrapper.py", line 29, in <module>
import win32file    # pylint: disable=import-error
ImportError: No module named win32file
修改方法:在错误日志里指定的目录安装pywin32,参考链接
cd E:\cef\source\depot_tools\bootstrap-2@3_8_10_chromium_20_bin\python\binpip -m install pywin32
提示subprocesss返回值非0


CEF-Build-On-Windows-2021-07-24-23-23-12

把depot-tools的路径设置到环境变量的PATH里:
set PATH=E:\cef\source\depot_tools;%PATH%;
AttributeError: 'module' object has no attribute 'CheckCallAndFilterAndHeader'老版本编译才有的问题,需要修改代码,E:\cef\source\cef\tools\gclient_util.py,参考链接
命令行出问题的话,脚本就给个提示返回值非0,没把错误打印出来就很坑...把显示的命令行在终端直接敲一下就能看到具体错误了。
踩完这一路的坑,就可以开始编译了...
CEF源码编译编译需要设置的参数最重要的就是添加MP3、MP4支持 使用此条指令,不加白折腾了。还有就是指定VS的路径,编译报错了提示少什么路径可以再加。
set CEF_USE_GN=1set GN_DEFINES=is_official_build=trueset GYP_DEFINES=buildtype=Officialset GYP_MSVS_VERSION=2017set CEF_ARCHIVE_FORMAT=tar.bz2@REM 添加MP3、MP4支持 使用此条指令set GN_DEFINES=is_official_build=true proprietary_codecs=true ffmpeg_branding=Chrome set GYP_GENERATORS=ninja,msvs-ninjaset GN_ARGUMENTS=--ide=vs2017 --sln=cef --filters=//cef/*@REM VS2017安装在默认目录,但任然需要下面设置,可能是由于VS2015和VS2017同时安装,路径根据自己的安装目录和版本确定set WIN_CUSTOM_TOOLCHAIN=1set CEF_VCVARS=noneset GYP_MSVS_OVERRIDE_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2017\Communityset SDK_ROOT=C:\Program Files (x86)\Windows Kits\10@REM 编译64位调用VS的脚本有问题,环境变量还是去找的32位路径,下面改手动设置路径@REM call "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Auxiliary/Build/vcvarsall.bat" x64@REM set INCLUDE=C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\um;C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\ucrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\shared;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\atlmfc\include;%INCLUDE%@REM set PATH=C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX64\x86;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Redist\MSVC\14.16.27012\x64\Microsoft.VC141.CRT;%PATH%@REM set LIB=C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\um\x86;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\ucrt\x86;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\lib\x86;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\atlmfc\lib\x86;%LIB%@REM set VS_CRT_ROOT=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\crtset INCLUDE=C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\um;C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\ucrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\shared;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\atlmfc\include;%INCLUDE%set LIB=C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\um\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\ucrt\x64;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\lib\x64;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\atlmfc\lib\x64;%LIB%set VS_CRT_ROOT=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\crtset PATH=C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Redist\MSVC\14.16.27012\x64\Microsoft.VC141.CRT;%PATH%python automate-git.py --download-dir=e:\cef\source --branch=3626 --checkout=90eb8cc --no-update --no-debug-build --build-log-file --verbose-build --force-distrib --force-build --x64-build
输出文件在目录E:\cef\source\chromium\src\cef\binary_distrib下,还把压缩包也生成了。
生成的文件里没有libcef_dll_wrapper.lib,需要的话拿cmake生成一个vs工程再编译就行,什么配置都不用改,就略过了。



CEF-Build-On-Windows-2021-07-25-00-22-37

编后感下载和编译环节一定要把参数都搞好,下载搞了2天,编译也搞了2天,心累...一开始直接编译了一个32位的,后面才反应过来要编译一个64位的,编译的时候CPU直接100%,其他活都不用干了。
等搞完发现指定分支提交和项目中使用的版本还不一样,又要重新checkout再编译Orz
最后发现还是搞个windows云服务器省事,环境直接选美国,代理也不用设置,我本地代理也只能3M/S,服务器下载30M/S,服务器编译还不影响本地工作( ̄▽ ̄)"



作者:玖零儛
链接:https://www.jianshu.com/p/d544fc2a2c67
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。






欢迎光临 firemail (http://firemail.wang:8088/) Powered by Discuz! X3