UE4内置浏览器支持h264 mp4 视频 编译cef3 3071源码

首先甩出问题总结

95%的问题出现在网络连接和各个版本问题,我这里列出来的可能也不全或者有错误,但是你只要记住 是这两个方向的问题就行了

资源中的资源仅使用3071版本 其他版本大概率会失败

https://download.csdn.net/download/maxiaosheng521/12248968

https://download.csdn.net/download/maxiaosheng521/12249032

https://download.csdn.net/download/maxiaosheng521/12249038

1.网络问题

一种是使用sstap v2ray 搭建socks5 (不过偶尔会因为下载超过10g左右,网络偶尔就会断流)

推荐第二种是直接买个国外的win10 主机 在上面跑 这里要注意的是 硬盘要选大,如果只是现在源码那么需要80g(如果想要在上面编译,那么需要100g)

如果网络问题没搞好 下载源码的时候就会出现各种check out 失败  storage error 等等乱起八糟的问题

2.版本问题

首先你要知道官网上的wiki都是按照最新版本说明的,按照网络上的教程做,如果是编译最新的cef3 大概率没问题,但是如果你想要像我这样编译旧版本3071,大概率会遇到各种错误,原因就是版本不同,尤其是google的配置版本,最新的都是不太兼容老版本的,所以这个过程中间有可能有各种问题

这里列出需要注意的版本

automate版本 

cef版本 

chrome版本

depot_tools版本

3.下载编译

这里步骤和下面链接的方法基本一致,针对老版本只是有些资源不一样

https://www.cnblogs.com/heimao117/p/9064537.html

https://www.cnblogs.com/caibirdy1985/p/7244961.html

https://blog.csdn.net/xiezhongyuan07/article/details/84861617

4.版本问题解决

你要根据的cef版本 确定你的chromium版本 确定你的depot版本 automate

这里以我cef3071版本举例

1.

首先你要看你的cef版本需要的编译环境

https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding.md 查看cef版本要求

我的3071就是需要vs2015 update3 和win10 14393sdk

这里安装的时候最好就是默认路径,如果不在默认路径还有可能遇到各种问题

2.

确定cef版本

https://bitbucket.org/chromiumembedded/cef 切换版本  

拷贝automate-git.py, 这里网上教程都是用的最新的,我们改成用对应版本的automate-git

3.确定depot_tools的版本 ,这个我没有找到特别的方法来确定,根据使用最新的depot_tools,看看编译的时候报什么错误,根据错误倒推到旧版本

https://chromium.googlesource.com/chromium/tools/depot_tools/+log

例如,我编译3071版本用最新的depot_tools, 会报一个缺少checkcall module attribute的错误,就是gclient_util中,相应的函数发生了变化,只能从上面列表中倒推查找改文件 最好找到的commit 是c0758331ea

然后通过在depot_tools目录下执行命令倒退版本

git reset --hard c0758331ea

然后重新执行update.bat 还有build.bat

仅供参考 如果使用注意修改相对应的路径 cef版本 还有vs版本

update.bat


set CEF_USE_GN=1
set DEPOT_TOOLS_UPDATE=0
set GN_ARGUMENTS=--ide=vs2015 --sln=cef --filters=//cef/*
python ..\automate\automate-git.py --download-dir=c:\code\chromium_git --depot-tools-dir=c:\code\depot_tools --no-distrib --no-build --no-depot-tools-update --force-clean --force-update --branch=3071 --checkout=4a193051a9ce3da206290e349b4c463d35abc8e1


create.bat


set CEF_USE_GN=1
set GN_DEFINES=use_jumbo_build=true is_official_build=true ffmpeg_branding=Chrome proprietary_codecs=true
set GN_ARGUMENTS=--ide=vs2015 --sln=cef --filters=//cef/* --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'
call cef_create_projects.bat

build.bat

ninja -C out/Release_GN_x64 cef 

五.UE4集成

UnrealEngine-4.23.1-release\Engine\Binaries\ThirdParty\CEF3\Win64

UnrealEngine-4.23.1-release\Engine\Source\ThirdParty\CEF3\cef_binary_3.3071.1611.g4a19305_windows64

这两个路径替换对应的dll 等资源就可以了

总结:

首先一定要根据你的cef 版本 来找对应的automate-git.py 文件, 对于老版本不能使用最新的

然后就是尝试使用不同的depot_tools版本,其他的步骤就和网上的其他教程大同小异了

列出官网的网址

sample Test
http://opensource.spotify.com/cefbuilds/index.html 

cef版本
https://bitbucket.org/chromiumembedded/cef/commits/?search=4a193051a9ce3da206290e349b4c463d35abc8e1

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

cef编译指南
https://bitbucket.org/chromiumembedded/cef/wiki/MasterBuildQuickStart.md

chromium介绍
http://www.chromium.org/Home

chromium
https://chromium.googlesource.com/chromium/src.git/+refs

chromium 3071版本
https://chromium.googlesource.com/chromium/src.git/+/refs/tags/59.0.3071.15


Chrome编译
https://chromium.googlesource.com/chromium/src/+/master/docs/windows_build_instructions.md

发布了144 篇原创文章 · 获赞 15 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/maxiaosheng521/article/details/104643271