CefSharp音视频编译与免费下载

注:Cefharp 音频和视频播放编译,生成相应的dll文件,从而支持项目开发。 建议编译至少 16G 的 RAM和至少 250G 的 SSD。该脚本以 E 盘为例,您需要在 E 盘上手动创建 cef 文件夹禁止在转载后通过发布其他平台向用户收取下载费用

GitHub原文:https://github.com/KamenLiefu/CefSharp/?tab=readme-ov-file

Github编译版本免费下载:https://github.com/KamenLiefu/CefSharp/releases

md E:\cef\chromium\src

目录

  • 1.版本选择
  • 2.网络选择
  • 3.环境初始化
  • 4.CEF下载
  • 5.Chromium下载
  • 6.depot_tools下载
  • 7.同步
  • 8.构建项目
  • 9.CEF编译
  • 10.打包生成
  • 11.结果展示
  • 12.致谢


1.版本选择

配置 Web 地址:
https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding.md

日期发布分支Chromium 版本CEF 版本Windows 内部版本要求
2024年6月6533127127Win 10+ 部署,Win 10+ 构建系统,带 VS2022 17.9.2,Win 10.0.22621 SDK,Ninja
2024 年 5 月6478126126Win 10+ 部署,Win 10+ 构建系统,带 VS2022 17.9.2,Win 10.0.22621 SDK,Ninja
2024年4月6422125125Win 10+ 部署、Win 10+ 构建系统,带 VS2022 17.5+、Win 10.0.22621 SDK、Ninja
2024年3月6367124124Win 10+ 部署,Win 10+ 构建系统,带 VS2022 17.5+,Win 10.0.22621 SDK,Ninja
2024年2月6312123123Win 10+ 部署、Win 10+ 构建系统,带 VS2022 17.5+、Win 10.0.22621 SDK、Ninja
2024年1月6261122122Win 10+ 部署、Win 10+ 构建系统,带 VS2022 17.5+、Win 10.0.22621 SDK、Ninja
2023年12月6167121121Win 10+ 部署,Win 10+ 构建系统,带 VS2022 17.5+,Win 10.0.22621 SDK,Ninja
2023年11月6099120120Win 10+ 部署、Win 10+ 构建系统,带 VS2022 17.5+、Win 10.0.22621 SDK、Ninja
2023年10月6045119119Win 10+ 部署,Win 10+ 构建系统,带 VS2022 17.5+,Win 10.0.22621 SDK,Ninja
2023年9月5993118118Win 10+ 部署, Win 10+ 构建系统,带 VS2022 17.5+, Win 10.0.22621 SDK, Ninja
2023年8月5938117117Win 10+ 部署, Win 10+ 构建系统,带 VS2022 17.5+, Win 10.0.22621 SDK, Ninja
2023年6月5845116116Win 10+ 部署,Win 10+ 构建系统,带 VS2022 17.5+,Win 10.0.22621 SDK,Ninja
2023 年 5 月5790115115Win 10+ 部署, Win 10+ 构建系统,带 VS2022 17.5+, Win 10.0.22621 SDK, Ninja
2023年4月5735114114Win 10+ 部署、Win 10+ 构建系统,带 VS2022 17.5+、Win 10.0.22621 SDK、Ninja
2023年3月5672113113Win 10+ 部署,Win 10+ 构建系统,带 VS2022 17.5+,Win 10.0.22621 SDK,Ninja
2023年2月5615112112Win 10+ 部署,Win 10+ 构建系统,带 VS2022 17.5+,Win 10.0.22621 SDK,Ninja
2023年1月5563111111Win 10+ 部署, Win 10+ 构建系统,带 VS2019 16.11.13+, Win 10.0.20348 SDK, Ninja
2022年12月5481110110Win 10+ 部署,Win 10+ 构建系统,带 VS2019 16.11.13+,Win 10.0.20348 SDK,Ninja
2022年11月5414109109Win 7+ 部署, Win 10+ 构建系统,带 VS2019 16.11.13+, Win 10.0.20348 SDK, Ninja

选择所需的版本并配置环境。

例如:install vs2022,选择相应的sdk,10.0.22621.2428。
VS2022 requires the selection of C++.

在这里插入图片描述

2.网络选择

选择适当的网络来访问 Internet,然后根据网络工具,可以设置代理。 例如,建议每次打开cmd时手动执行它,以实际端口号为准。

set HTTP_PROXY=http://127.0.0.1:7890
set HTTPS_PROXY=http://127.0.0.1:7890

3.环境初始化

以管理员身份运行 cmd 并进入批处理脚本所在的目录,在cmd窗口执行批处理脚本。

:: Disable automatic update of depot_tools
setx DEPOT_TOOLS_UPDATE "0"

:: Using a locally installed version of Visual Studio
setx DEPOT_TOOLS_WIN_TOOLCHAIN "0"

:: GN Build Tool
set CEF_USE_GN=1
:: Creating a Project with VS2022
set GN_ARGUMENTS=--ide=vs2022 --sln=cef --filters=//cef/*
:: Use the official build and add ffmpeg audio/video decoding
set GN_DEFINES=is_official_build=true proprietary_codecs=true ffmpeg_branding=Chrome chrome_pgo_phase=0
set GYP_DEFINES=buildtype=Official

set GYP_GENERATORS=ninja,msvs-ninja
set GYP_MSVS_VERSION=2022
set CEF_ARCHIVE_FORMAT=tar.bz2
set VS_CRT_ROOT=D:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.40.33807\crt
set WIN_CUSTOM_TOOLCHAIN=1

set CEF_VCVARS=none
set GYP_MSVS_OVERRIDE_PATH=D:\Program Files\Microsoft Visual Studio\2022\Professional
set MSVC_VERSION=14.40.33807
set SDK_ROOT=D:\Program Files (x86)\Windows Kits\10
set WINDOWSSDKDIR=D:\Program Files (x86)\Windows Kits\10
set SDK_VERSION=10.0.22621.0

for /f "tokens=3,*" %i in ('reg query HKCU\Environment /v Path') do setx Path "E:\cef\depot_tools\;%i%j"

命令行执行 0.environment_init.bat

4.CEF下载

根据选择的分支执行,这里以 6422 分支为例

cd E:\cef
::Clone the source code and switch to the 6422 branch
git clone https://bitbucket.org/chromiumembedded/cef.git -b 6422

命令行执行 1.downing_cef.bat

5.Chromium下载

根据所选分支的CHROMIUM_BUILD_COMPATIBILITY.txt检查版本。

# The Chromium Embedded Framework (CEF) project is built on top of the Chromium
# project source tree. Chromium should be updated to the URL and revision listed
# below before building CEF. Chromium compatibility information for older CEF
# revisions is available by viewing this file's change history.
#
# Instructions for building CEF are available at:
# https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding

{
  'chromium_checkout': 'refs/tags/125.0.6422.142',
  'depot_tools_checkout': '3e4ab13934'
}
cd E:\cef\chromium
::  (cef 6422 branch corresponds to chromiun tag: 125.0.6422.142)
git clone https://chromium.googlesource.com/chromium/src.git -b 125.0.6422.142 --depth 1

命令行执行2.downing_chromium.bat

6.depot_tools下载

cd E:\cef
:: Download depot_tools tool
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
cd E:\cef\depot_tools
:: Temporary permission to update
set DEPOT_TOOLS_UPDATE=1
:: depot_tools batch script Update_Depot_tools.bat
update_depot_tools.bat
:: prohibit updating
set DEPOT_TOOLS_UPDATE=0
:: checkout,(CEF 6422 branch corresponds to depot_tools commit ID: 3e4ab13934)
checkout 3e4ab13934

命令行执行 3.downing_depot_tools

7.同步

cd E:\cef\chromium

:: Create the .gclient file with the command
gclient config  https://chromium.googlesource.com/chromium/src.git --unmanaged

gclient sync --nohooks --no-history

set DEPOT_TOOLS_WIN_TOOLCHAIN=0

@echo "gclient runhooks"
gclient runhooks

建议手动执行4.chromium_client剩下的命令

8.构建项目

cd E:\cef\chromium\src\cef
set CEF_USE_GN=1
set GN_ARGUMENTS=--ide=vs2022 --sln=cef --filters=//cef/*
set GN_DEFINES=is_official_build=true proprietary_codecs=true ffmpeg_branding=Chrome chrome_pgo_phase=0
set GYP_DEFINES=buildtype=Official
set GYP_GENERATORS=ninja,msvs-ninja
set GYP_MSVS_VERSION=2022
set CEF_ARCHIVE_FORMAT=tar.bz2
set VS_CRT_ROOT=D:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.40.33807\crt
set WIN_CUSTOM_TOOLCHAIN=1
::set CEF_VCVARS=none
set GYP_MSVS_OVERRIDE_PATH=D:\Program Files\Microsoft Visual Studio\2022\Professional
set MSVC_VERSION=14.40.33807
set SDK_ROOT=D:\Program Files (x86)\Windows Kits\10
set WINDOWSSDKDIR=D:\Program Files (x86)\Windows Kits\10
set SDK_VERSION=10.0.22621.0
@REM compiling 64-bit call VS script has problems, the following change to set the path manually
@REM call "D:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build\vcvarsall.bat" x64
set INCLUDE=%SDK_ROOT%\Include\%SDK_VERSION%\um;%SDK_ROOT%\Include\%SDK_VERSION%\ucrt;%SDK_ROOT%\Include\%SDK_VERSION%\shared;%GYP_MSVS_OVERRIDE_PATH%\VC\Tools\MSVC\%MSVC_VERSION%\include;%GYP_MSVS_OVERRIDE_PATH%\VC\Tools\MSVC\%MSVC_VERSION%\atlmfc\include;%INCLUDE%
set LIB=%SDK_ROOT%\Lib\%SDK_VERSION%\um\x64;%SDK_ROOT%\10\Lib\%SDK_VERSION%\ucrt\x64;%GYP_MSVS_OVERRIDE_PATH%\VC\Tools\MSVC\%MSVC_VERSION%\lib\x64;%GYP_MSVS_OVERRIDE_PATH%\VC\Tools\MSVC\%MSVC_VERSION%\atlmfc\lib\x64;%LIB%
set PATH=%SDK_ROOT%\bin\%SDK_VERSION%\x64;%GYP_MSVS_OVERRIDE_PATH%\VC\Tools\MSVC\%MSVC_VERSION%\bin\HostX64\x64;%GYP_MSVS_OVERRIDE_PATH%\VC\Tools\MSVC\%MSVC_VERSION%\bin\HostX64\x64;%GYP_MSVS_OVERRIDE_PATH%\VC\Redist\MSVC\14.40.33807\x64\Microsoft.VC143.CRT;%PATH%
:: create project
call cef_create_projects.bat

cef需要移动到chromium/src目录下,手动执行5.build_project

9.CEF编译

根据计算机配置,相对编译时间更长,8~10小时,甚至更长。

cd E:\cef\chromium\src
ninja -C out\Release_GN_x64_sandbox cef_sandbox
ninja -C out/Release_GN_x64 cef

命令行手动执行6.cef_compile

10.打包生成

cd E:\cef\chromium\src\cef\tools
set CEF_VCVARS=none
set CEF_ARCHIVE_FORMAT=tar.bz2
::  --minimal(可选择stable版本等等)
make_distrib.bat --ninja-build --no-docs --x64-build --no-symbols --minimal

11.结果展示

使用生成的 dll 测试站点
在这里插入图片描述
测试 h264 是否打开,即音频/视频播放。
在这里插入图片描述

12.致谢

1.非常感谢博客园zgliubo博主提供的解决方案,致以诚挚的感谢。博主博客原文链接如下:博客原文
2.非常感谢博客园rmb_999博主chromium浏览器定制的解决方案,为编译过程中出现的问题提供了解决思路和方案。博主博客原文链接如下:博客原文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/870198.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Qt 】JSON 数据格式详解

文章目录 1. JSON 有什么作用?2. JSON 的特点3. JSON 的两种数据格式3.1 JSON 数组3.2 JSON 对象 4. Qt 中如何使用 JSON 呢?4.1 QJsonObject4.2 QJsonArray4.3 QJsonValue4.4 QJsonDocument 5. 构建 JSON 字符串6. 解析 JSON 字符串 1. JSON 有什么作用? &#x…

VIN解析汽车详情|阿里云实现调用API接口

介绍: 本次解析通过阿里云云市场的云服务来实现通过17位车架号来自动识别车型的详细信息,首先需要准备选择一家可以提供查询的商品。 https://market.aliyun.com/apimarket/detail/cmapi00065864#skuyuncode5986400001 步骤1: 选择商品 如图点击免费…

鸿蒙界面开发

界面开发 //构建 → 界面 build() {//行Row(){//列Column(){//文本 函数名(参数) 对象.方法名(参数) 枚举名.变量名Text(this.message).fontSize(40)//设置文本大小.fontWeight(FontWeight.Bold)//设置文本粗细.fontColor(#ff2152)//设置文本颜色}.widt…

四、GD32 MCU 常见外设介绍 (5) TIMER 模块介绍

5.1.TIMER 基础知识 TIMER分高级定时器,通用定时器L0,L1,L2和基本定时器。 5.2.硬件连接说明 TIMER 属于片内外设,对于外部硬件设计,只需要单独IO口外接信号线即可。 5.3.GD32 TIMER 外设原理简介(以 G…

Mysql或MariaDB数据库的用户与授权操作——实操保姆级教程

一、问题描述 在日常的工作中,我们需要给不同角色的人员创建不同的账号,他们各自可访问的数据库或权限不一样,这时就需要创建用户和赋予不同的权限内容了。 二、问题分析 1、创建不同的角色账号; 2、给这些账号授予各自可访问数据库的权限。 三、实现方法 Centos8安装…

(7) cmake 编译C++程序(二)

文章目录 概要整体代码结构整体代码小结 概要 在ubuntu下,通过cmake编译一个稍微复杂的管理程序 整体代码结构 整体代码 boss.cpp #include "boss.h"Boss::Boss(int id, string name, int dId) {this->Id id;this->Name name;this->DeptId …

最简单的typora+gitee+picgo配置图床

typoragiteepicgo图床 你是否因为管理图片而感到头大?是时候了解一下 Typora、Gitee 和 PicGo 这个超级三剑客了,它们可以帮你轻松打造自己的图床,让你的博客图片管理变得简单又有趣。让我们开始这场神奇的图床之旅吧! Typora …

Elasticsearch概念及ELK安装

1、Elasticsearch是什么 它是elastic技术栈中的一部分。完整的技术栈包括: Elasticsearch:用于数据存储、计算和搜索 Logstash/Beats:用于数据收集 Kibana:用于数据可视化 整套技术栈被称为ELK,经常用来做日志收集…

大语言模型-GPT-Generative Pre-Training

一、背景信息: GPT是2018 年 6 月由OpenAI 提出的预训练语言模型。 GPT可以应用于复杂的NLP任务中,例如文章生成,代码生成,机器翻译,问答对话等。 GPT也采用两阶段的训练过程,第一阶段是无监督的方式来预训…

HarmonyOS 请求相应HTTPS概览

1.HTTP概述 请求和响应 2.HTTP请求开发步骤 2.1.module.json5中添加 ohos.permission.INTERNET 2.2.导入http模块 2.3.创建htppt请求 2.4.发起请求 2.5.处理响应 2.6.销毁http对象 3.几个基本概念: 3.1.Webview:提供We…

git 版本回退-idea

1、选中项目,右键,打开 git历史提交记录 2、选中想要回退的版本,选择 hard(不保留版本记录) 3、最终选择强制提交(必须强制) OK,搞定

被问到MQ消息已丢失,该如何处理?

在分布式系统中,消息中间件(如 RabbitMQ、RocketMQ、Kafka、Pulsar 等)扮演着关键角色,用于解耦生产者和消费者,并确保数据传输的可靠性和顺序性。尽管我们通常会采取多种措施来防止消息丢失,如消息持久化、…

【Docker】CentOS7环境下的安装

环境展示 安装 配置仓库 sudo yum install -y yum-utils # docker官方key文件下载 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 建议使用阿里云key文件下载 sudo yum-config-manager --add-repo https://mirrors.aliyun.…

Jacoco 单元测试配置

前言 编写单元测试是开发健壮程序的有效途径,单元测试写的好不好可以从多个指标考量,其中一个就是单元测试的覆盖率。单元测试覆盖率可以看到我们的单元测试覆盖了多少代码行、类、分支等。查看单元测试覆盖率可以使用一些工具帮助我们计算,…

ElMessage自动引入,样式缺失和ts esline 报错问题解决

一. 环境 "unplugin-auto-import": "^0.17.6", "vue": "^3.3.8", "vite": "^5.0.0", "typescript": "^5.2.2",二. ElMessage样式缺失问题. 以下有两种解决方法 方法一: 配置了自动引用后…

Chrome谷歌浏览器Console(控制台)显示文件名及行数

有没有这样的困扰?Chrome谷歌浏览器console(控制台)不显示编译文件名及行数? 设置(Settings)- > 忽略列表(lgnore List)-> 自定义排除规则(Custom exclusion rules) 将自定义排除规则…

3.1、数据结构-线性表

数据结构 数据结构线性结构线性表顺序存储和链式存储区别单链表的插入和删除练习题 栈和队列练习题 串(了解) 数据结构 数据结构该章节非常重要,上午每年都会考10-12分选择题下午一个大题 什么叫数据结构?我们首先来理解一下什…

算法与算法分析

目录 一.前言 二.算法的特性和要求 三.分析算法--时间效率 四. 分析算法--空间效率 一.前言 算法就是对特定问题求解方法和步骤的一种描述,它是指令的有限序列。其中,每个指令表示一个或多个操作。总而言之,我们数据结构就是通过算法实现操…

记录|C# winform布局学习

目录 前言一、自适应布局Step1. 添加AutoAdaptWindowsSize类Step2. Form中引用Step3. 创建SizeChanged事件函数Step4. 在Fram.Disiger中添加 更新时间 前言 参考视频: C#5分钟winform快速自适应布局 参考文章: 其他参考: 写这篇文章&#xff…

Elasticsearch:Java ECS 日志记录 - log4j2

ECS 记录器是你最喜欢的日志库的格式化程序/编码器插件。它们可让你轻松将日志格式化为与 ECS 兼容的 JSON。ECS 兼容的 JSON 日志记录可以帮我们简化很多分析,可视化及解析的工作。在今天的文章里,我来详述如何在 Java 应用里生成 ECS 相兼容的日志。 …