如何详细改写Windows平台编译支持H264解码的CEF,使其兼容MP3和MP4格式?

2026-04-18 00:131阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1018个文字,预计阅读时间需要5分钟。

如何详细改写Windows平台编译支持H264解码的CEF,使其兼容MP3和MP4格式?

编译目标(如何确定目标版本请查看:BranchesAndBuilding)CEF Branch:4664CEF Commit:fe551e4Chromium 版本:96.0.4664.110编译环境准备:

1.安装或更新VS2019

2.查看VS版本和SDK版本:BranchesAn

编译目标(如何确定目标定版本请查看:BranchesAndBuilding)

CEF Branch:4664 CEF Commit:fe551e4 Chromium Version:96.0.4664.110 编译环境准备 1 安装或修改VS2019 VS版本和SDK版本可查看:BranchesAndBuilding

1)在“在工作负荷”勾选“使用C++的桌面开发

2)在“单个组件”勾选“Windows 10 SDK (10.0.19014.0)”

3)安装或修改完成后在“控制面板”/“程序”/“卸载程序”中找到刚才对应的SDK,“右键”/“更改”

4)找到“Debgging Tools for Windows”,然后勾选

2 网络代理工具和代理配置

1)一个稳定的代理, 比如:V2free

2)配置git 代理(v2rayN本地服务地址为127.0.0.1:10809)

::设置代理(执行一次即可) git config --global 127.0.0.1:10809 git config --global 127.0.0.1:10809 ::取消代理 git config --global --unset 127.0.0.1:10809" setx HTTPS_PROXY "127.0.0.1:10809" :: 禁止depot_tools自动更新 setx DEPOT_TOOLS_UPDATE "0" :: 使用本地安装的 Visual Studio 版本 setx DEPOT_TOOLS_WIN_TOOLCHAIN "0" :: GN 构建工具 setx CEF_USE_GN "1" :: 使用 VS2019 创建项目 setx GN_ARGUMENTS "--ide=vs2019 --sln=cef --filters=//cef/*" :: 使用官方构建并添加ffmpeg音视频解码 setx GN_DEFINES "is_official_build=true proprietary_codecs=true ffmpeg_branding=Chrome" :: 将depot_tools路径("C:\Code\depot_tools\)添加到用户环境变量Path for /f "tokens=3,*" %i in ('reg query HKCU\Environment /v Path') do setx Path "C:\Code\depot_tools\;%i%j"

执行以上命令即可在系统中创建环境变量 (记得不用的时候把这些环境变量删除了)

3 下载源码

1)下载cef

cd C:\Code :: clone源码并切换至4664分支 git clone bitbucket.org/chromiumembedded/cef.git -b 4664

2)下载chromium

cd C:\Code\chromium :: clone指定tag(96.0.4664.110)的源码, (cef 4664分支 对应chromiun tag: 96.0.4664.110) :: "--depth 1": 只下载当前版本不需要历史提交记录, 否则耗时严重且浪费储存空间或者意外中断 git clone chromium.googlesource.com/chromium/src.git -b 96.0.4664.110 --depth 1

3)下载depot_tools

cd C:\Code :: clone depot_tools工具 git clone chromium.googlesource.com/chromium/tools/depot_tools.git cd C:\Code\depot_tools :: 临时允许更新 set DEPOT_TOOLS_UPDATE=1 :: 执行update_depot_tools.bat下载内部工具 update_depot_tools.bat :; 禁止更新 set DEPOT_TOOLS_UPDATE=0 :: checkout, (cef 4664分支 对应depot_tools commit id: e023d44820) checkout e023d44820

注意: cef, chromium, depot_tools对应版本关系在"cef\CHROMIUM_BUILD_COMPATIBILITY.txt"

4 gclient 同步chromium依赖项目

1)创建.gclient文件

cd C:\Code\chromium :: 通过命令创建.gclient文件 gclient config chromium.googlesource.com/chromium/src.git --unmanaged

2)执行gclient sync

cd C:\Code\chromium gclient sync --nohooks --no-history

此命令执行过程中可能会中途暂停或失败,耐心等待或重复执行此命令直到成功为止

3)执行gclient runhooks

cd C:\Code\chromium :: 如果前面已经设置了此环境变量, 可以不用执行 set DEPOT_TOOLS_WIN_TOOLCHAIN=0 gclient runhooks

此命令执行过程中可能会中途暂停或失败,耐心等待或重复执行此命令直到成功为止

5 构建项目

1)复制 C:\Code\cef 到 C:\Code\chromium\src

xcopy "C:\Code\cef" "C:\Code\chromium\src\cef\" /e

2)构建项目

cd C:\Code\chromium\src\cef :: 如果前面已经设置了这些环境变量则可以跳过这3条命令 set CEF_USE_GN=1 set GN_ARGUMENTS=--ide=vs2019 --sln=cef --filters=//cef/* set GN_DEFINES=is_official_build=true proprietary_codecs=true ffmpeg_branding=Chrome :: 构建项目 call cef_create_projects.bat 6 编译

cd C:\Code\chromium\src ninja -C out/Release_GN_x86 cef 7 打包

cd C:\Code\chromium\src\cef\tools make_distrib.bat --ninja-build --client

在 C:\Code\chromium\src\cef\binary_distrib 目录下就可以看到打包过的文件了

8 其他

1)如果在构建或编译过程中遇到python gbk编码错误, 找到报错的代码添加 utf-8 编码即可, 比如:

如何详细改写Windows平台编译支持H264解码的CEF,使其兼容MP3和MP4格式?

if (environment_block_name != ''): env_block = _FormatAsEnvironmentBlock(env) with open(environment_block_name, 'w', encoding='utf-8') as f: f.write(env_block)

本文共计1018个文字,预计阅读时间需要5分钟。

如何详细改写Windows平台编译支持H264解码的CEF,使其兼容MP3和MP4格式?

编译目标(如何确定目标版本请查看:BranchesAndBuilding)CEF Branch:4664CEF Commit:fe551e4Chromium 版本:96.0.4664.110编译环境准备:

1.安装或更新VS2019

2.查看VS版本和SDK版本:BranchesAn

编译目标(如何确定目标定版本请查看:BranchesAndBuilding)

CEF Branch:4664 CEF Commit:fe551e4 Chromium Version:96.0.4664.110 编译环境准备 1 安装或修改VS2019 VS版本和SDK版本可查看:BranchesAndBuilding

1)在“在工作负荷”勾选“使用C++的桌面开发

2)在“单个组件”勾选“Windows 10 SDK (10.0.19014.0)”

3)安装或修改完成后在“控制面板”/“程序”/“卸载程序”中找到刚才对应的SDK,“右键”/“更改”

4)找到“Debgging Tools for Windows”,然后勾选

2 网络代理工具和代理配置

1)一个稳定的代理, 比如:V2free

2)配置git 代理(v2rayN本地服务地址为127.0.0.1:10809)

::设置代理(执行一次即可) git config --global 127.0.0.1:10809 git config --global 127.0.0.1:10809 ::取消代理 git config --global --unset 127.0.0.1:10809" setx HTTPS_PROXY "127.0.0.1:10809" :: 禁止depot_tools自动更新 setx DEPOT_TOOLS_UPDATE "0" :: 使用本地安装的 Visual Studio 版本 setx DEPOT_TOOLS_WIN_TOOLCHAIN "0" :: GN 构建工具 setx CEF_USE_GN "1" :: 使用 VS2019 创建项目 setx GN_ARGUMENTS "--ide=vs2019 --sln=cef --filters=//cef/*" :: 使用官方构建并添加ffmpeg音视频解码 setx GN_DEFINES "is_official_build=true proprietary_codecs=true ffmpeg_branding=Chrome" :: 将depot_tools路径("C:\Code\depot_tools\)添加到用户环境变量Path for /f "tokens=3,*" %i in ('reg query HKCU\Environment /v Path') do setx Path "C:\Code\depot_tools\;%i%j"

执行以上命令即可在系统中创建环境变量 (记得不用的时候把这些环境变量删除了)

3 下载源码

1)下载cef

cd C:\Code :: clone源码并切换至4664分支 git clone bitbucket.org/chromiumembedded/cef.git -b 4664

2)下载chromium

cd C:\Code\chromium :: clone指定tag(96.0.4664.110)的源码, (cef 4664分支 对应chromiun tag: 96.0.4664.110) :: "--depth 1": 只下载当前版本不需要历史提交记录, 否则耗时严重且浪费储存空间或者意外中断 git clone chromium.googlesource.com/chromium/src.git -b 96.0.4664.110 --depth 1

3)下载depot_tools

cd C:\Code :: clone depot_tools工具 git clone chromium.googlesource.com/chromium/tools/depot_tools.git cd C:\Code\depot_tools :: 临时允许更新 set DEPOT_TOOLS_UPDATE=1 :: 执行update_depot_tools.bat下载内部工具 update_depot_tools.bat :; 禁止更新 set DEPOT_TOOLS_UPDATE=0 :: checkout, (cef 4664分支 对应depot_tools commit id: e023d44820) checkout e023d44820

注意: cef, chromium, depot_tools对应版本关系在"cef\CHROMIUM_BUILD_COMPATIBILITY.txt"

4 gclient 同步chromium依赖项目

1)创建.gclient文件

cd C:\Code\chromium :: 通过命令创建.gclient文件 gclient config chromium.googlesource.com/chromium/src.git --unmanaged

2)执行gclient sync

cd C:\Code\chromium gclient sync --nohooks --no-history

此命令执行过程中可能会中途暂停或失败,耐心等待或重复执行此命令直到成功为止

3)执行gclient runhooks

cd C:\Code\chromium :: 如果前面已经设置了此环境变量, 可以不用执行 set DEPOT_TOOLS_WIN_TOOLCHAIN=0 gclient runhooks

此命令执行过程中可能会中途暂停或失败,耐心等待或重复执行此命令直到成功为止

5 构建项目

1)复制 C:\Code\cef 到 C:\Code\chromium\src

xcopy "C:\Code\cef" "C:\Code\chromium\src\cef\" /e

2)构建项目

cd C:\Code\chromium\src\cef :: 如果前面已经设置了这些环境变量则可以跳过这3条命令 set CEF_USE_GN=1 set GN_ARGUMENTS=--ide=vs2019 --sln=cef --filters=//cef/* set GN_DEFINES=is_official_build=true proprietary_codecs=true ffmpeg_branding=Chrome :: 构建项目 call cef_create_projects.bat 6 编译

cd C:\Code\chromium\src ninja -C out/Release_GN_x86 cef 7 打包

cd C:\Code\chromium\src\cef\tools make_distrib.bat --ninja-build --client

在 C:\Code\chromium\src\cef\binary_distrib 目录下就可以看到打包过的文件了

8 其他

1)如果在构建或编译过程中遇到python gbk编码错误, 找到报错的代码添加 utf-8 编码即可, 比如:

如何详细改写Windows平台编译支持H264解码的CEF,使其兼容MP3和MP4格式?

if (environment_block_name != ''): env_block = _FormatAsEnvironmentBlock(env) with open(environment_block_name, 'w', encoding='utf-8') as f: f.write(env_block)