编译支持播放H265的cef控件

embedded/2024/9/25 13:19:53/

接着在上次编译的基础上增加h265支持
编译支持视频播放的cef控件(h264)

测试页面,直接使用cef_enhancement,里边带着的那个html即可,h265视频去这个网站下载elecard,我修改的这个版本参考了里边的修改方式,不过我的这个版本改完之后,直接video.canPlayType()函数,返回的信息也是提示支持h265播放

CefClient支持播放

测试的edge浏览器不支持播放

需要修改的文件以及内容如下

media/media_options.gni

  enable_platform_hevc =proprietary_codecs && (is_chromecast || enable_hevc_parser_and_hw_decoder)enable_platform_hevc = trueenable_hevc_demuxing = true

media/base/supported_types.cc

    case VideoCodec::kHEVC:// return IsHevcProfileSupported(type);return true;

third_party/ffmpeg/ffmpeg_generated.gni

ffmpeg_c_sources += ["libavcodec/bswapdsp.c","libavcodec/libavcodec_hevcdec.c","libavcodec/dovi_rpu.c","libavcodec/dynamic_hdr_vivid.c","libavcodec/dynamic_hdr10_plus.c","libavcodec/hevc_cabac.c","libavcodec/hevc_data.c","libavcodec/hevc_filter.c","libavcodec/hevc_mvs.c","libavcodec/hevc_parse.c","libavcodec/hevc_parser.c","libavcodec/hevc_ps.c","libavcodec/hevc_refs.c","libavcodec/hevc_sei.c","libavcodec/hevcdsp.c","libavcodec/hevcpred.c","libavcodec/x86/bswapdsp_init.c","libavcodec/x86/hevcdsp_init.c","libavformat/libavformat_hevc.c","libavformat/hevcdec.c",]ffmpeg_asm_sources += ["libavcodec/x86/bswapdsp.asm","libavcodec/x86/hevc_deblock.asm","libavcodec/x86/hevc_idct.asm","libavcodec/x86/hevc_mc.asm","libavcodec/x86/hevc_add_res.asm","libavcodec/x86/hevc_sao.asm","libavcodec/x86/hevc_sao_10bit.asm",]

third_party\ffmpeg\chromium\config\Chrome\win\ia32\libavcodec\codec_list.c

&ff_hevc_decoder,

third_party\ffmpeg\chromium\config\Chrome\win\ia32\libavcodec\parser_list.c

&ff_hevc_parser,

third_party\ffmpeg\chromium\config\Chrome\win\ia32\libavformat\demuxer_list.c

&ff_hevc_demuxer,

third_party\ffmpeg\chromium\config\Chrome\win\ia32\config.h

#define CONFIG_HEVCPARSE 1

third_party\ffmpeg\chromium\config\Chrome\win\ia32\config.asm

$#define CONFIG_HEVCPARSE 1

重新生成就能支持h265了

改完以后编译如果报一些错误,比如说提示IsHevcProfileSupported 未调用,那就直接在其他地方调用一下就可以编译过了

SDK 分享

Release 32位

cef_binary_109.0.1+gcd5e37a+chromium-109.0.5414.8_windows32_minimal.tar.gz2

Release 64位 

cef_binary_109.0.1+gcd5e37a+chromium-109.0.5414.8_windows64_minimal.tar.bz2

Debug 64位

cef-binary-109.0.1+gcd5e37a+chromium-109.0.5414.8-windows64.tar.gz2

完整源码支持一键编译

cef + chromium源码


http://www.ppmy.cn/embedded/21368.html

相关文章

计算机网络组成—物理层

一、物理层基本概念 物理层解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。 1物理层接口特性 机械特性:定义物理连接的特性,规定物理连接时所采用的规格、接口形状、引线数目、引脚数量和排列情况电气特性&…

C++—DAY2

定义一个矩形类Rec,包含私有属性length,width,有以下成员函数: void set length(int l);//设置长度 void set width(int w); //设置宽度 int get length(); //获取长度 int get_width(); //获取宽度 void show(); //输出…

关于远程桌面端口的优化措施的建议

在信息技术的世界中,远程桌面连接已成为企业、教育和个人用户之间共享信息、协作工作的重要工具。而这一切的背后,都离不开远程桌面端口(RDP,Remote Desktop Protocol Port)的支持。RDP端口不仅关乎到远程访问的顺畅性…

JSP在页面用<%=调用声明函数时出现HTTP 500错误

JSP在页面用<%调用声明函数时出现HTTP 500错误 错误描述&#xff1a; Eclipse在编写JSP页面时&#xff0c;在其中采用<%&#xff01;%>方式声明了函数&#xff0c;然后在页面中用<%函数名%>方式调用时&#xff0c;出现HTTP状态500错误&#xff0c;提示为&#…

算法设计与分析实验报告c++实现(排序算法、三壶谜题、交替放置的碟子、带锁的门)

一、实验目的 1&#xff0e;加深学生对算法设计方法的基本思想、基本步骤、基本方法的理解与掌握&#xff1b; 2&#xff0e;提高学生利用课堂所学知识解决实际问题的能力&#xff1b; 3&#xff0e;提高学生综合应用所学知识解决实际问题的能力。 二、实验任务 1、排序算法…

红外接收器的原理以及在STM32和51单片机中的应用

基本介绍&#xff1a; 红外接收器是一种用于接收红外线信号的装置&#xff0c;常见于各种电子设备中&#xff0c;如电视遥控器、空调遥控器等。它能够接收来自发射器发送的红外信号&#xff0c;并将其转换成电信号&#xff0c;以便设备进行相应的操作。红外接收器通常包含红外光…

探索大型语言模型(LLM)在人类性格个性评估(MBTI)中的前景与应用

1.概述 大型语言模型&#xff08;LLM&#xff09;如ChatGPT在各个领域的应用确实越来越广泛&#xff0c;它们利用庞大的数据集进行训练&#xff0c;以模拟人类的语言理解和生成能力。这些模型在提供信息、解答问题、辅助决策等方面表现出了强大的能力&#xff0c;但它们并不具…

UML 的工厂方法设计模式 策略设计模式 抽象工厂设计模式 观察者设计模式

UML 的工厂方法设计模式 UML 的工厂方法设计模式是一种创建型设计模式&#xff0c;它通过定义一个创建对象的接口&#xff0c;但将具体的对象创建延迟到子类中。这样可以让子类决定实例化哪个类。该模式提供了一种创建对象的灵活方式&#xff0c;同时也隐藏了对象的具体实现细…