预读

  • 不懂就请参考官方地址
  • 一般要2步,下载 和 编译
  • 创建文件结构
~/code/automate/           <-- 全部脚本放到这里automate-git.py   <-- CEF build scriptchromium_git/cef/              <-- CEF source checkoutchromium/src/            <-- Chromium source checkoutupdate.[bat|sh]   <-- Bootstrap script for automate-git.pydepot_tools/        <-- Chromium build tools
  • 安装ninja,并加添到系统环境变量Clicked Me
  • 最好不要在nvme盘上clone,可能导致clone卡死

详说

下载

  1. 在automate下创建update.bat,内容为如下,执行该脚本,支持mp3 mp4~下载很快,代码可能就20来G样子,我下载速度10M/s还是很快,主要参考地址
  2. 该脚本会先下载depot_tools这个项目,再通过depot_tools下载源码,如果源码下载失败,需要重新下载源码可以不用再下载depot_tools,调用automate-git.py加一个参数,例: --depot-tools-dir=D:\code\chromium_git\depot_tools
::download
set CEF_USE_GN=1
set GN_DEFINES=is_official_build=true ffmpeg_branding=Chrome proprietary_codecs=true
set GN_ARGUMENTS=--ide=vs2017 --sln=cef --filters=//cef/*
set GYP_DEFINES=buildtype=Official
set GYP_MSVS_VERSION=2017
set CEF_ARCHIVE_FORMAT=tar.bz2
python automate-git.py --download-dir=F:\code\chromium_git --branch=3809 --minimal-distrib --client-distrib --force-clean --no-build
pause
::automate-git.py脚本下载地址和为什么选择--branch=3809 参考 https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding.md

编译过程

  • 如下的全部脚本文件放到code/automate下
  • 修改源文件准备支持mp3,mp4,针对win32的话,修改F:\code\chromium_git\chromium\src\third_party\ffmpeg\chromium\config\Chrome\win\ia32\config.h,把部分#define 由0改为1,针对此操作,我写了一个脚本修改支持
  • 这些是要改的内容,写到本地文件mp4_support.txt
#define CONFIG_FLV_DECODER 1
#define CONFIG_H263_DECODER 1
#define CONFIG_H263I_DECODER 1
#define CONFIG_MPEG4_DECODER 1
#define CONFIG_MPEGVIDEO_DECODER 1
#define CONFIG_MSMPEG4V1_DECODER 1
#define CONFIG_MSMPEG4V2_DECODER 1
#define CONFIG_MSMPEG4V3_DECODER 1
#define CONFIG_RV10_DECODER 1
#define CONFIG_RV20_DECODER 1
#define CONFIG_RV30_DECODER 1
#define CONFIG_RV40_DECODER 1
#define CONFIG_AC3_DECODER 1
#define CONFIG_AMRNB_DECODER 1
#define CONFIG_AMRWB_DECODER 1
#define CONFIG_COOK_DECODER 1
#define CONFIG_SIPR_DECODER 1
#define CONFIG_FLV_ENCODER 1
#define CONFIG_H263_ENCODER 1
#define CONFIG_MPEG4_ENCODER 1
#define CONFIG_MSMPEG4V2_ENCODER 1
#define CONFIG_MSMPEG4V3_ENCODER 1
#define CONFIG_RV10_ENCODER 1
#define CONFIG_RV20_ENCODER 1
#define CONFIG_AAC_ENCODER 1
#define CONFIG_AC3_ENCODER 1
#define CONFIG_AC3_PARSER 1
#define CONFIG_COOK_PARSER 1
#define CONFIG_H263_PARSER 1
#define CONFIG_MPEG4VIDEO_PARSER 1
#define CONFIG_MPEGVIDEO_PARSER 1
#define CONFIG_RV30_PARSER 1
#define CONFIG_RV40_PARSER 1
#define CONFIG_SIPR_PARSER 1
#define CONFIG_AC3_DEMUXER 1
#define CONFIG_AMR_DEMUXER 1
#define CONFIG_AMRNB_DEMUXER 1
#define CONFIG_AMRWB_DEMUXER 1
#define CONFIG_AVI_DEMUXER 1
#define CONFIG_AVISYNTH_DEMUXER 1
#define CONFIG_FLV_DEMUXER 1
#define CONFIG_H263_DEMUXER 1
#define CONFIG_H264_DEMUXER 1
#define CONFIG_MPEGTS_DEMUXER 1
#define CONFIG_MPEGTSRAW_DEMUXER 1
#define CONFIG_MPEGVIDEO_DEMUXER 1
#define CONFIG_RM_DEMUXER 1
#define CONFIG_AC3_MUXER 1
#define CONFIG_AMR_MUXER 1
#define CONFIG_AVI_MUXER 1
#define CONFIG_FLV_MUXER 1
#define CONFIG_H263_MUXER 1
#define CONFIG_H264_MUXER 1
#define CONFIG_MPEGTS_MUXER 1
#define CONFIG_RM_MUXER 1
  • SupportMp4.py
## 第一参数为上面要修改的#define 的文件路径,第二参数为 F:\code\chromium_git\chromium\src\third_party\ffmpeg\chromium\config\Chrome\win\ia32\config.h
import sys
import shutil
import re
import osdef Replace(change,content):str_array = re.findall("#define\s\w+\s",change)str_replace =str_array[0]str_replace+="0"str_dest =str_array[0]str_dest+="1"return content.replace(str_replace,str_dest)if len(sys.argv) > 2 :src_file_name =sys.argv[1]dest_file_name=sys.argv[2]
else:src_file_name =raw_input("Please input src file path name:").replace("\r","")dest_file_name =raw_input("Please input dest file path name:").replace("\r","")file_src_handle = open(src_file_name,"r")
file_src_lines = file_src_handle.readlines()
file_src_handle.close()
file_dest_handle = open(dest_file_name,"r")
dest_file_content = file_dest_handle.read()
file_dest_handle.close()for line in file_src_lines:dest_file_content = Replace(line,dest_file_content)write_file_path = os.getcwd()+"\\"+ os.path.basename(dest_file_name)
ready_copy = open(write_file_path,"w")
ready_copy.write(dest_file_content)
ready_copy.close()shutil.copy(write_file_path,dest_file_name)
os.remove(write_file_path)
print("Support mp4 Success!!!")
  • 再创建一个启动RunSupportMp4.bat 并运行
python SupportMp4.py F:/code/automate/mp4_support.txt F:/code/chromium_git/chromium/src/third_party/ffmpeg/chromium/config/Chrome/win/ia32/config.h
pause
  • 创建env.bat脚本
set path=%path%;F:\code\depot_tools;F:\code\chromium_git\chromium\src
  • 创建BuildNinga,Ninga是一个超快的编译工具,并小巧
env.bat
set CEF_USE_GN=1
set GN_DEFINES=is_official_build=true ffmpeg_branding=Chrome proprietary_codecs=true
set GYP_DEFINES=buildtype=Official
set GYP_MSVS_VERSION=2017
set CEF_ARCHIVE_FORMAT=tar.bz2set GYP_GENERATORS=ninja,msvs-ninja
set GN_ARGUMENTS=--ide=vs2017 --sln=cef --filters=//cef/*set WIN_CUSTOM_TOOLCHAIN=1
set CEF_VCVARS=none
set GYP_MSVS_OVERRIDE_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community
set SDK_ROOT=C:\Program Files (x86)\Windows Kits\10
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.13.26128\include;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.13.26128\atlmfc\include;%INCLUDE%
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.13.26128\bin\HostX64\x86;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.13.26128\bin\HostX64\x64;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Redist\MSVC\14.13.26020\x64\Microsoft.VC141.CRT;%PATH%
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.13.26128\lib\x86;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.13.26128\atlmfc\lib\x86;%LIB%
set VS_CRT_ROOT=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.13.26128\crt\src\vcruntime
::python automate-git.py --download-dir=e:\buildLib\cef\source --depot-tools-dir=e:\buildLib\cef\depot_tools --branch=3359 --no-update --no-debug-build --build-log-file --verbose-build --force-distrib --force-build
python automate-git.py --download-dir=F:\code\chromium_git --depot-tools-dir=F:\code\depot_tools --branch=3809 --no-update --no-debug-build --build-log-file --verbose-build --force-distrib --force-build
pause

如果前面全部都顺利的话,你会看到F:\code\chromium_git\chromium\src\out目录,里面有一堆准备使用ninga来编译的工程!!!
最后一步,执行如下操作,然后进行死亡等待

cd F:\code\chromium_git\chromium\src
ninja -C out\Release_GN_x86 cef

编译好后,打开地址F:\code\chromium_git\chromium\src\out\Release_GN_x86 测试有没有成功支持mp4: http://html5test.com/


出错解决方案

源码下载完毕,卡到Resolving deltas: 100% (10224481/10224481), done

这个问题,折腾了我2天,想通过设置代理的方式解决,失败告终,但我通过奇技淫巧也成功编译了,首先停止脚本运行,修改一下automate-git.py,把13**多行的,sync git clone — job 16这句注释调,再执行下载脚本,跳过下载源码的过程

python ImportError: No module named win32file

参考:点这里

解决方法:cd 到depot_tools下的bootstrap-3_8_0_chromium_8_bin,然后进入python里面,给python安装 pywin32这个库

python -m pip install pywin32

卡到下载depot_tool位置

修改脚本 automate-git.py 188行,使用下载支持proxy请求

  proxies = {'http': 'http://127.0.0.1:61422'}opener = FancyURLopener(proxies)

windows下编译cef最新版本并支持mp3/mp4相关推荐

  1. 在Windows下编译多种VS版本的Skia

    转载请说明原出处,谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/51272050 这几天刚改了改Duilib,之前为了让Duilib更好的支 ...

  2. windows下编译支持https的curl

    先编译好openssl,过程详见:<windows下编译openssl> 编译好zlib,过程详见<windows下编译zlib> 1. 下载curl 官网:https://c ...

  3. 在windows下编译FFMPEG-最新2009版本

    转]在windows下编译FFMPEG-最新2009版本 2010-11-17 18:50 大家可以看到,此篇之前有很多个版本的"在windows下编译FFMPEG",那些都是我在 ...

  4. ubuntu安装python_ubuntu18.04下源码编译安装最新版本Python3

    原文链接:ubuntu18.04下源码编译安装最新版本Python3 截止到2019年4月9日,Python3最新的版本是3.7.3. 在ubuntu18.04中已经安装的Python3版本是3.6. ...

  5. TensorFlow工作笔记001---Centos7.3下安装TensorFlow最新版本,基于python2.7.5的,没有编译TensorFlow的源码

    技术交流QQ群[JAVA,.NET,BigData,AI]:170933152 Centos7.3下安装TensorFlow最新版本,基于python2.7.5的,没有编译TensorFlow的源码, ...

  6. Windows下一键搭建MBP系统,支持多种版本任意选择,免费永久使用,多系统使用新方案

    Windows下一键搭建MBP系统,支持多种版本任意选择,免费永久使用,多系统使用新方案. 安装起来相当的简单,简单到只需要执行一行命令即可完成.使得游戏和开发可以兼顾,并且不用花费数万米的可以使用M ...

  7. Windows下编译Airsim 1.3.1版本一些问题的解决办法

    做研究需要个仿真,从0写OpenGL即浪费时间又不好看,就想使用Airsim做仿真,编译过程中遇到了好多问题,花了很多时间解决,最终终于解决了. 这些问题存在的主要原因就是存在多个版本的VS和多个版本 ...

  8. cef3 源码编译 2018-12 添加支持mp3 , mp4 的编译分支3282与最新的3578版

    编译好的结果下载地址在最后 ========================================================================= 工 作中需要使用cef3 ...

  9. Windows下编译tensorflow-gpu教程

    这两个也要看: https://zhuanlan.zhihu.com/p/29029860 https://zhuanlan.zhihu.com/p/34942873 Windows下编译tensor ...

最新文章

  1. openGL第四讲——像素格式管理
  2. vue源码解析之选项合并(二)
  3. 解决windows10 wireshark无法抓取发出去的包只能抓取接受数据包
  4. Boost:bimap双图的range范围的测试程序
  5. 常用 SQL Server 规范集锦
  6. Golang 网络爬虫框架gocolly/colly
  7. 百度地图集成Plist文件需要增加的字段
  8. nodejs导出excel
  9. 遗传算法python实例_Python遗传算法框架使用实例(一)使用Geatpy实现句子匹配
  10. jmeter请求grpc接口
  11. Macbook鼠标调节外接显示器亮度 - Shades for Mac(屏幕亮度调节软件) V1.2 苹果电脑版
  12. Aria2 YAAW 使用说明
  13. 洛谷 [樱花] 题解
  14. 手机怎么伪原创火山小视频 本地短视频去水印在线
  15. SSD固态硬盘特性术语bit位设置
  16. 电话号码正则表达式手机固话分机
  17. 人脸识别技术的简单认识(含原理)
  18. Beginning Auto Layout Tutorial in iOS 7: Part 2
  19. 海盗分金c语言算法,[经典算法]海盗分金问题sql求解(贪心算法)
  20. 点击iPhone/iPad上的加密相册或保险箱提示“无法安装加密相册或保险箱,App Store已不提供此应用”解决方案

热门文章

  1. 高通与苹果和解,英特尔退出5G手机基带业务 | 广东省智能创新协会
  2. 杨元原博士国密课堂 · 第一期 | 商用密码应用安全性评估:Part1. 密码算法概述
  3. matplotlib画图plot线型设置
  4. Python三大神器和csv文件操作
  5. MATLAB算法实战应用案例精讲-【智能优化算法】基于Spark的分布式蜻蜓算法在文本分类中的应用研究
  6. 复印一本200页的数学题多少钱
  7. unity 皮肤材质效果实现分析
  8. visualvm安装并且讲解说明
  9. java解析xml的4种方式
  10. FTP服务器搭建--超简单