• 如何在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

  • 相关阅读:
    Android 查看服务service是否正在运行 列出正在运行的服务
    应用获取root权限分析及总结
    图片高斯模糊效果
    Android的启动脚本–init.rc
    前台页面——js/jq 取/设值
    Access denied for user 'bruce'@'localhost' to database 'DBbruce'
    python基础-面向对象opp
    python基础-软件目录结构规范
    python基础-装饰器
    python基础列表生成式,迭代器
  • 原文地址:https://www.cnblogs.com/himax/p/how_to_build_cef3_on_windows_2704.html
Copyright © 2020-2023  润新知