UE4內置瀏覽器支持h264 mp4 視頻 編譯cef3 3071源碼

 

難點在cef的編譯上

首先甩出問題總結

95%的問題出現在網絡連接和各個版本問題,我這裏列出來的可能也不全或者有錯誤,但是你只要記住 是這兩個方向的問題就行了

資源中的資源僅使用3071版本 其他版本大概率會失敗

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

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

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

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

1.網絡問題

 

如果網絡問題沒搞好 下載源碼的時候就會出現各種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只替換libcef.lib

 

總結:

首先一定要根據你的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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章