最新版cefコンパイルを分かち合って、MP 3を支持して、MP 4

13573 ワード

転載は元の出典を説明してください、ありがとうございます~::
1.ソースコードのコンパイルをダウンロードして、先にdepot_をダウンロードしますtoolsを解凍し、環境変数pathにパスを追加します.
2.automate-git.をダウンロードpyスクリプト.
3.cefのドキュメントに従って、VS 2017とSDK 15063をデフォルトディレクトリにダウンロードしてインストールします.私のVS 2015はDディスクにインストールされています.どうせCディスクは大きいです.
インストール時にWindowsデスクトップ開発、C++MFCなどを選択します.
Current Release Branches (Supported)
Support for newer branches begins when they enter the Chromium beta channel. Support for older branches ends when they exit the Chromium stable channel. The Spotify automated builder provides CEF builds for the current Chromium stable channel and will switch to the next Chromium branch when that branch is promoted to the stable channel. Updating CEF branches is currently a manual process so there will likely be a delay between Chromium release announcements and the availability of associated CEF builds. See the Chromium release calendar for estimated Chromium release dates and versions.
Branch Date
Release Branch
Chromium Version
Windows Build Requirements
macOS Build Requirements
Linux Build Requirements
Mar 2018
3359
66
Win 7+, VS2017 15.3.2+, Win10.0.15063.468 SDK, Ninja
macOS 10.9-10.12, 10.9+ build system, 10.9+ deployment target, 10.10 base SDK, Xcode 8.3, Ninja, 64-bit only
Ubuntu 14.04+, Debian Jessie+, Ninja
Jan 2018
3325
65
Win 7+, VS2017 15.3.2+, Win10.0.15063.468 SDK, Ninja
macOS 10.9-10.12, 10.9+ build system, 10.9+ deployment target, 10.10 base SDK, Xcode 8.3, Ninja, 64-bit only
Ubuntu 14.04+, Debian Jessie+, Ninja
4.cefソースをダウンロードし、壁に気をつけてください
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\automate-git.py --download-dir=E:\buildLib\cef\source --depot-tools-dir=E:\buildLib\cef\depot_tools --branch=3359 --no-build --no-distrib --force-update

ここは3359の最新版をダウンロードして、分岐のをダウンロードする必要があって、プラスして--checkout
python ..\automate\automate-git.py --no-depot-tools-update --download-dir=E:\buildLib\cef\source --depot-tools-dir=E:\buildLib\cef\depot_tools --no-distrib --no-build --branch=3325 --checkout=6d8faa49425e1eba7c3a1527b5b2185e67cbb2cc --force-update
決定方法--checkout値
1).アクセスhttps://bitbucket.org/chromiumembedded/cef/branches/ターゲットブランチに入ります.例:3325
2).Commitsでターゲットhashを取得します.バージョン番号はhashが8ビット、commitsが7ビットです.
4).対応するcommitをクリックすると、アドレスバーでcheckout値が得られます.例:6 d 8 faa 49425 e 1 eba 7 c 3 a 1527 b 5 b 2185 e 67 cbb 2 cc
https://bitbucket.org/chromiumembedded/cef/commits/6d8faa49425e1eba7c3a1527b5b2185e67cbb2cc?at=3325
5.修復gs://ファイルのダウンロード:
すべてのクラウドに保存されているファイルはすべてhttpsでダウンロードされ、RunWgetを参照してください.batスクリプト
      
RunWget.bat gs://chromium-gn/c0d03f78af494365ff38c663297a20fe61da29ea src/buildtools/win/gn.exe
RunWget.bat gs://chromium-clang-format/c8455d43d052eb79f65d046c6b02c169857b963b src/buildtools/win/clang-format.exe
RunWget.bat gs ://chromium-apache-win32/11ba0c1941b9c46ad279f33c2db3e3c628197ae8 src/third_party/apache-win32\bin\httpd.exe
RunWget.bat gs ://chromium-apache-win32/199cb003a5a40db260f29128ae630f298aaf7702 src/third_party/apache-win32\bin\libapriconv-1.dll
RunWget.bat gs ://chromium-apache-win32/d76ccf8a113227d63927616a45d7c8eb8df44cc7 src/third_party/apache-win32\bin\libapr-1.dll
RunWget.bat gs ://chromium-apache-win32/4e51ce1a90b99d7b08a0ed1d151eee023d43966c src/third_party/apache-win32\bin\libaprutil-1.dll
RunWget.bat gs ://chromium-apache-win32/230b1d13ba0c4c90089e5e239b2f206ce313bb1e src/third_party/apache-win32\bin\libhttpd.dll
RunWget.bat gs ://chromium-apache-win32/4dca3606f57e1ea9bde5d1e088bda0ae0d4ad3e0 src/third_party/apache-win32\bin\libeay32.dll
RunWget.bat gs ://chromium-apache-win32/2c7b52a7f6b9651a9ba19119d3d842247d541af6 src/third_party/apache-win32\bin\ApacheMonitor.exe
RunWget.bat gs ://chromium-apache-win32/02c3d37fac86cd239fe02a1842134775e40a3331 src/third_party/apache-win32\bin\ssleay32.dll
RunWget.bat gs ://chromium-apache-win32/923f8e771902c6da79ae720817cba8b389a6b275 src/third_party/apache-win32\bin\php5ts.dll
RunWget.bat gs ://chromium-apache-win32/c54ee354a2cdc075b9b4379cf58aba90ebea774b src/third_party/apache-win32\bin\zlib1.dll
RunWget.bat gs ://chromium-apache-win32/27b23f5fc9f2ace1ae53edbee3f32ef0a5d37287 src/third_party/apache-win32\bin\openssl.exe
RunWget.bat gs ://chromium-apache-win32/eb6e8b068a8db9dfa80180ea16b0927b33760298 src/third_party/apache-win32\modules\mod_asis.so
RunWget.bat gs ://chromium-apache-win32/49345ed7627a7019402c46db98bca55a6da80ace src/third_party/apache-win32\modules\mod_alias.so
RunWget.bat gs ://chromium-apache-win32/99b9959e5fbec830fd08a8d398c52f23894dd485 src/third_party/apache-win32\modules\mod_autoindex.so
RunWget.bat gs ://chromium-apache-win32/333d1d54b459797d9419fce049e7d5efe7fb0a69 src/third_party/apache-win32\modules\mod_cgi.so
RunWget.bat gs ://chromium-apache-win32/b2a72bb8447cda2800be56db3959bb8bac68e810 src/third_party/apache-win32\modules\mod_authz_host.so
RunWget.bat gs ://chromium-apache-win32/f6eebd3da324d7a4c36593677ccefcb626ac9548 src/third_party/apache-win32\modules\mod_log_config.so
RunWget.bat gs ://chromium-apache-win32/5926b9d7d4f1e3aae31c10e0498923cb2fbc19a9 src/third_party/apache-win32\modules\mod_headers.so
RunWget.bat gs ://chromium-apache-win32/b7dd1e015a88c96e03bb8845636472bb256e862b src/third_party/apache-win32\modules\mod_mime.so
RunWget.bat gs ://chromium-apache-win32/8c81e5e9fa1d6d07d5235e553b42ac02be49b996 src/third_party/apache-win32\modules\mod_ssl.so
RunWget.bat gs ://chromium-apache-win32/81c42674bc5865c3df35a9f47e3bc6910d89c4b1 src/third_party/apache-win32\modules\php5apache2_2.dll
RunWget.bat gs ://chromium-apache-win32/ee17b7f92645403edb0c3bb80ceeb49791989995 src/third_party/apache-win32\modules\mod_rewrite.so
RunWget.bat gs ://chromium-apache-win32/3158bdd7fabd47b3ff5188d3dd9cee42c97b334a src/third_party/apache-win32\modules\mod_env.so

6.MP 4を追加
  MP4  

     ,   !!! 
set GN_DEFINES=is_official_build=true proprietary_codecs=true ffmpeg_branding=Chrome
set GYP_DEFINES=branding=Chromium buildtype=Official proprietary_codecs=true ffmpeg_branding=Chrome

 source\chromium\src\third_party\ffmpeg\chromium\scripts\build_ffmpeg.py(703)
  configure_flags['Chrome'].extend([
      '--enable-decoder=aac,h264',
      '--enable-demuxer=aac',
      '--enable-parser=aac,h264',
  ])
  
 configure_flags['Chrome'].extend([  
          '--enable-decoder=aac,h264,mp3,mpeg4,amrnb,amrwb,flv',  
          '--enable-demuxer=aac,mp3,mov,avi,amr,flv',  
          '--enable-parser=aac,h264,mpegaudio,mpeg4video,h263',  
      ])

Chrome   FFmpeg     ,                :
    chromium\src\third_party\ffmpeg\chromium\config\Chrome\win\ia32\config.h 
 chromium\src\third_party\ffmpeg\chromium\config\Chrome\win\x64\config.h,      FFMPEG_CONFIGURATION     :
--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'

7.コンパイル
マイコンパイル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.bz2

set 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.15063.0\um;C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\ucrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.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.15063.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.15063.0\um\x86;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.15063.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\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

コンパイル中の問題:
a.符号化問題:提示ファイル非unicode記憶warning 4819
解決:コントロールパネル->領域と言語->Unicode以外のプログラムの言語を英語に変更(米国)
b.コンパイルchromium欠損LASTCHANGE問題エラー:error:'..././build/util/LASTCHANGE.blink', needed by 'gen/webkit_version.h', missing and no known rule to make it
解決:srcディレクトリで2つのスクリプトを実行
./build/util/lastchange.py  build/util/LASTCHANGE
./build/util/lastchange.py -s third_party/WebKit/-o build/util/LASTCHANGE.blink
c.SDKエラー
cef 3325コンパイル時FAILED:obj/third_party/anglebANGLE/Caps.obj c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\wrl\event.h(22812):error:use of undeclared identifier'DefaultDelegateCheckMode'templateSDKのエラー228行を
template
x64bat
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.bz2

set 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 PATH=C:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x64;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.15063.0\um\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.15063.0\ucrt\x64;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.13.26128\lib\x64;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.13.26128\atlmfc\lib\x64;%LIB%
set INCLUDE=C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\um;C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\ucrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.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 VS_CRT_ROOT=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.13.26128\crt\src\vcruntime
python ..\automate\automate-git.py --x64-build --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

メモ:batのオプションは次のとおりです.
--download-dirソースダウンロードディレクトリ--depot-tools-dirツールパッケージディレクトリ--branchソースブランチ(デフォルトtrunkメインブランチ)--checkout指定patchバージョン(デフォルト最近コミット)--no-buildダウンロードが完了してもコンパイルが自動的に開始されない(コンパイル構成を変更する必要がある)--no-updateソースダウンロードが完了して再コンパイルのみが完了した場合--force-build強制コンパイル(コンパイルに成功したときに再コンパイルは実行されないことがわかりました.これに加えて、no-debug-buildはreleaseバージョンのみをコンパイルすることができます.no-release-buildはdebugバージョンのみをコンパイルすることができます.
最終Dll出力パスは次のとおりです.
chromium\src\out\Release
chromium\src\cef\binary_distrib               https://download.csdn.net/download/diycom/10391250

Flash対応
コピーexeブラウザプラグインC:UsersAdministratorAppDataLocalGoogleChromeUser Data
cefclient --ppapi-flash-path=".\PepperFlash\29.0.0.140\pepflashplayer.dll"--ppapi-flash-version=29.0.0.140
参照先:
https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding
https://bitbucket.org/chromiumembedded/cef/wiki/AutomatedBuildSetup.md
WindowsでCef 3をコンパイルする.2623およびmp 3、mp 4サポート(ソースパケットおよび最終DLL付き)
http://blog.csdn.net/zhuhongshu/article/details/54193842
https://blog.csdn.net/baidu_32237719/article/details/79509819
https://blog.csdn.net/tiplip/article/details/42047815