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

时隔一年,再次编译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
  • 下载编译工具包,解压至工作目录。
  • 下载编译脚本至工作目录。
  • 在工作目录下创建源码目录。例如h:\ws\source
  • 添加系统环境变量
    • CEF_ARCHIVE_FORMAT=tar.bz2
    • DEPOT_TOOLS_WIN_TOOLCHAIN=0
    • GYP_DEFINES=buildtype=Official
    • GYP_MSVS_VERSION=2015
    • Path添加h:\ws\depot_tools,为避免与已安装的python或git冲突,建议写在path靠前位置
完整目录结构:
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‘,

同时可参考http://blog.csdn.net/chromium_webkit/article/details/8575629加入更多格式支持

从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

http://www.magpcss.org/ceforum/viewtopic.php?f=6&t=14473

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

时间: 2024-08-27 01:01:06

如何在windows上编译Chromium (CEF3) 并加入MP3支持(二)的相关文章

如何在Windows上编译wireshark源码

在深受了几天编译wireshark源码的痛苦后,记录下自己编译wireshark的经验,希望能给今后需要编译wireshark的人一些帮助.这个方法是能编译最新的wireshark源码,现在网上找的一些方法都是旧的一些方法,编译最新的wireshark是行不通的.我参考的是一个英文的说明文档,如果阅读此文档的人没有困难的话,可以就此英文文档说明进行编译.附上地址:https://www.wireshark.org/docs/wsdg_html_chunked/ChSetupWin32.html

如何在windows上编译Tesseract OCR

获取Tesseract源码的方式有很多.可以直接从repo获取,也可以下载压缩包.不过编译的时候往往也会出现各种奇怪的问题.这里介绍如何简单的配置和编译源码. 参考原文:How to Build Tesseract OCR Library on Windows 编译Tesseract 下载 Windows installer of tesseract-ocr 3.02.02 安装 安装过程中勾选Tesseract development files: 编译 在安装目录中找到vs2008到工程目录

Build Slic3r on Windows // 如何在Windows上编译Slic3r

下载Strawberry Perl 5.22 64bit绿色版,解压缩到某个地方,比如C盘根目录,比如 C:\strawbrry-perl-5.22.2.1-64bit-portable 下载Boost 1.59,解压缩到某处,比如 C:\boost_1_59_0 注意,下载的Strawberry Perl内有个portable.bat,可以设置好Perl运行环境,而且那个Perl附带了gcc 4.9.下面所有的命令都在这个命令行环境下执行. 在那个命令提示符内切换到Boost的解压缩目录,输入

windows下编译chromium浏览器的12个流程

编译chromium 系统为windows, 国内在windows上编译chromium的资料比较少, 我这篇文章只能作为参考, 记录我遇到的一些问题,因为chromium团队也会修改了代码,或者编译流程: 如果你用linux或者mac,就别看这篇文章, 国外的编译文档都是linux和mac, 因为差别还是比较多的: 12个编译流程: 1:chrome源码: https://chromium.googlesource.com/chromium/chromium/ 2:系统要求:win7以后的版本

[ZZ] 在windows上编译Mesa3d opengl32库

在windows上编译Mesa3d opengl32库 cheungmine http://blog.csdn.net/ubuntu64fan/article/details/8061475 Mesa3d是一套跨平台的opengl/es库, 它不提供编译好的二进制包,所以必须自己动手编译. Linux默认都带了这个软件, 因此Linux上直接用就可以了. 如果想在linux上的编译, 也比较简单, 本文不赘述.那么如何在Windows上编译这个库呢? Mesa3d官网给出了编译方法. http:

如何在 Windows 下编译 OpenSSL VS2013

OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人员而言,在http://slproweb.com/products/Win32OpenSSL.html 上下载已经编译好的OpenSSL库是省力省事的好办法.对于高级的开发用户,他们可能需要适当的修改或者裁剪OpenSSL,那么编译它就成为了一个关键问题.本篇博客就是主要讲述如何早Windows上编译Op

windows上编译 python C源码

跟随<python源码剖析>一书,了解python内部机制.今天搞定了在windows上编译python源代码. 按照书中的内容,使用VS2008编译Python2.7.9.相似的步骤见下面的链接: http://www.cnblogs.com/heshizhu/archive/2012/08/09/2630346.html 我使用的是VS2008ProEdition90天的试用版,中间遇到一些问题记录一下: 无法打开文件python27.lib 原因及解决方案:系统是win8 64位,没有安

Windows上编译PHP的MagickWand扩展

首先这是一个漫长的过程,尝试编译此插件的用户一定要有耐心.大致流程可以划分为: 编译ImageMagick 编译MagickWand 关于PHP的版本.Windows的PHP是用哪个版本的VC编译的,这个一定要先弄清楚,例如我的是VC9编译的,那么一定要下载对应的VC来编译.例如VC9对应VS2008,VC10对应VS2010. 下面切入正题: 首先下载PHP的源代码,注意你下载的源代码也要跟你Windows上的PHP可执行文件是同一个版本.例如我的是5.4.31RC1. 下载ImageMagi

如何在windows上把你的项目提交到github(转载)

(1)如何在windows上把你的项目提交到githubhttp://michaelye1988.iteye.com/blog/1637951 (2)github错误提示:fatal:remote origin already existshttp://blog.csdn.net/dengjianqiang2011/article/details/9260435 (3)使用.gitignore过滤文件 http://www.zoneself.org/2012/11/16/content_2003