如何在windows上编译Chromium (CEF3) 并加入MP3支持(二)

时间:2022-06-01 12:56:19

时隔一年,再次编译cef3,独一无二的目的仍为加入mp3支持。新版本的编译环境和注意事项都已经发生了变化,于是再记录一下。

一、编译版本

cef版本号格式为X.YYYY.A.gHHHHHHH

X为主版本号,当前只有3

YYYY为chromium分支号

A为递增的svn提交版本号

HHHHHHH为7位git提交hash

此次编译cef版本为3.2704.1434.gec3e9ed

二、编译条件

快速稳定的VPN,下载chromium源码必需,推荐nydus

60G磁盘空间

64位操作系统,Win 7+ 

vs2015 update2或update3

Windows 10.0.10586 SDK (已包含在vs2015中,安装注意选择)

MFC库(已包含在vs2015中,安装注意选择)

其它各版本编译条件查看

三、准备工作

完整目录结构: h:/ ws/ automate-git.py depot_tools/ source/

四、开始

1. 以管理员身份运行cmd,安装python、git、svn

h: cd h:\ws\depot_tools update_depot_tools.bat

2. 运行编译脚本。

cd h:\ws #不传入参数会显示帮助 python automate-git.py --download-dir=h:\ws\source --depot-tools-dir=h:\ws\depot_tools --branch=2704 --checkout=ec3e9ed7fecc0d9f37a96951ba1bb26fd4f64dc7 --no-build --no-distrib

由于下载完源码要先修改配置,所以设置为不编译。下载大概持续4-5个小时。如何获得checkout值请查看前一篇介绍。

3. 修改配置

修改h:\ws\source\chromium\src\cef\cef.gypi,variables节下添加如下即可支持mp3。

proprietary_codecs: 1, ffmpeg_branding: Chrome,

同时可参考加入更多格式支持

从Chromium的源码third_party\ffmpeg\chromium\config\Chrome\win\ia32\config.h可以得知Chrome采用的FFmpeg的配置选项,在原有的配置选项后面添加如下选项:

--enable-decoder=‘rv10,rv20,rv30,rv40,cook,h263,h263i,mpeg4,msmpeg4v1,msmpeg4v2,msmpeg4v3,amrnb,amrwb,ac3,flv‘ --enable-demuxer=‘rm,mpegvideo,avi,avisynth,h263,aac,amr,ac3,flv,mpegts,mpegtsraw‘ --enable-parser=‘mpegvideo,rv30,rv40,h263,mpeg4video,ac3‘

4. 修改其它错误

#解决错误:无法识别的符号_ff_w64_guid_data #修改chromium/third_party/ffmpeg / ffmpeg_generated.gypi #在行libavformat/vorbiscomment.c,后加入 libavformat/w64.c,

#解决egl语法错误 #修改h:\ws\source\chromium\src\third_party\swiftshader\include\egl\eglext.h #在62行后加入 typedef EGLAttribKHR EGLAttrib;

5. 编译

python automate-git.py --download-dir=h:\ws\source --depot-tools-dir=h:\ws\depot_tools --branch=2704 --checkout=ec3e9ed7fecc0d9f37a96951ba1bb26fd4f64dc7 --no-debug-build --force-build --no-update

可加入--build-log-file参数,将日志信息输出到文件,方便查看完整信息。

但不能同时在cmd窗口观察进度,而且生成文件较大,,注意取舍。

#最终生成输出路径 H:\ws\source\chromium\src\out\Release H:\ws\source\chromium\src\cef\binary_distrib

五、结果测试

1. 版本号

2. 与官方版本对比

六、参考资料

https://bitbucket.org/chromiumembedded/cef/wiki/MasterBuildQuickStart.md

https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding.md

https://bitbucket.org/chromiumembedded/cef/wiki/AutomatedBuildSetup.md

?f=6&t=14473

https://chromium-review.googlesource.com/#/c/343398/4

如何在windows上编译Chromium (CEF3) 并加入MP3支持(二)