Qt WebEngine播放DRM音视频
Qt WebEngine播放DRM受保护视频,前提是Qt WebEngine开启音视频编码器,能够支持网页上普通视频的播放。开启音视频编码器需要自己编译源码,这里不做介绍。
什么是DRM音视频
DRM视频是指数字版权管理(Digital Rights Management)视频,它是通过技术手段对视频内容的使用和传播进行控制和限制的一种方式。通过DRM技术,视频内容提供商可以对视频文件进行加密,限制用户在特定设备上播放或复制视频内容,以保护视频内容的版权和收益。常见的DRM视频包括Netflix和HBO等在线视频平台上的付费内容。
比如Spotify、Netflix音视频都是使用DRM技术进行加密,播放时需使用谷歌提供的widevinecdm库进行解密播放。
浏览器不支持DRM播放时,AppleMusic点击播放就会报错

Qt WebEngine配置支持DRM音视频
我们直接来看官方的说明

官方提供的方法需要环境变量配置widevinecdm库路径,这样就能支持DRM受保护视频的播放。
上面的方式是启动程序的时候设置环境变量,指定widevinecdm库路径。实际使用中,win下只要把widevinecdm库和程序放在同级目录下,程序是能够找到的。
如果实在要指定,可在代码中添加,在Application前设置环境变量即可,下面的代码是Mac的,win的需要做些调整,原理就是拿到第一个启动参数,第一个启动参数是程序的启动路径,根据这个路径找到widevinecdm库路径即可。
if(argc > 0) {char *appPath = argv[0];QString appRunPath(const_cast<const char *>(appPath));auto list = appRunPath.split("/");list.removeLast();QString widevinePath = "\"--widevine-path=" + list.join("/") + "/../../../../Frameworks/libwidevinecdm.dylib\"";qDebug() << __FUNCTION__ << "song" << "widevinePath:" << widevinePath;qputenv("QTWEBENGINE_CHROMIUM_FLAGS", widevinePath.toStdString().c_str());
}
widevinecdm库获取
由于Qt WebEngine也是谷歌内核,所以我们可以直接拿谷歌浏览器的widevinecdm库,理论上widevinecdm库要和浏览器内核版本对应,但目前来看使用谷歌浏览器的最新版本没发现有什么异常。
win下widevinecdm库路径:C:\Users\admin\AppData\Local\Google\Chrome\Application\127.0.6533.89\WidevineCdm\_platform_specific\win_x64
实在找不到可通过everything工具全局搜索,找个谷歌浏览器下的widevinecdm库就行

mac下widevinecdm库路径:
在谷歌浏览器安装目录下,分为arm64和x86_64,根据需要使用

相关文章:
Qt WebEngine播放DRM音视频
Qt WebEngine播放DRM受保护视频,前提是Qt WebEngine开启音视频编码器,能够支持网页上普通视频的播放。开启音视频编码器需要自己编译源码,这里不做介绍。 什么是DRM音视频 DRM视频是指数字版权管理(Digital Rights Management&a…...
渗透小游戏,各个关卡的渗透实例
Less-1 首先,可以看见该界面,该关卡主要是SQL注入,由于对用户的输入没有做过滤,使查询语句进入到了数据库中,查询到了本不应该查询到的数据 首先,如果想要进入内部,就要绕过,首先是用…...
SpringBoot集成阿里百炼大模型(初始demo) 原子的学习日记Day01
文章目录 概要下一章SpringBoot集成阿里百炼大模型(多轮对话) 原子的学习日记Day02 整体架构流程技术名词解释集成步骤1,选择大模型以及获取自己的api-key(前面还有一步开通服务就没有展示啦!)2,…...
高级java每日一道面试题-2024年8月06日-web篇-cookie,session,token有什么区别?
如果有遗漏,评论区告诉我进行补充 面试官: cookie,session,token有什么区别? 我回答: 在Web开发中,cookie、session和token是三种常见的用于用户身份验证和会话管理的技术。它们各自有不同的用途和优缺点,下面将详细解释: 1. Cookie 定…...
Python 图文:小白也能轻松生成精美 PDF 报告!
摘要: 还在为枯燥的数据报表发愁吗?想让你的 Python 项目报告瞬间高大上?本文将带你学习如何使用 Python 生成图文并茂的 PDF 文件,从此告别单调,让你的数据“活”起来! 一、 引言 想象一下,你正在为公司…...
AQS的ReentrantLock源码
什么是AQS(全称AbstractQueuedSynchronizer) 代表:重入锁、独占锁/共享锁、公平锁/非公平锁 是JUC包中线程阻塞、阻塞队列、唤醒、尝试获取锁的一个框架 AbstractQueuedSynchronizer是全称,是一个模板模式,一些线程…...
CSP-J 模拟题2
如果x大于45,则输出-1 设定一个整数now,他的初始值为9; 当x>now,就x-now,并且now--; 根据解析写代码1: #include <bits/stdc.h> using namespace std; int a[101010]; int main(){int x;cin>…...
途牛养车省养车平台源码 买卖新车租车二手车维修装潢共享O2O程序源码
源码采用FastAdmin框架开发,功能成熟完善,已有成功案例。 业务涵盖保险、二手车、接送、拖车、租车、保养、维修、入驻等连接线上等基础和深度服务。 采用的是“线上 车主直控社区加盟店” 模式,其主要考虑是布局门店有助于让目标消费用户…...
开发中遇到的gzuncompress,DomDocument等几个小问题以及一次Php上线碰到的502问题及php异常追踪
一、开发中遇到的gzuncompress,DomDocument等几个小问题记在此 1,昨天在命令行模式行运行一个很复杂的程序,一开始执行php,刚刚连接数据库,都没怎么查几条记录,(publish:October 27, 2017 -Fridayÿ…...
【Material-UI】Button 组件中的基本按钮详解
文章目录 一、基本按钮变体1. 文本按钮(Text Button)2. 实心按钮(Contained Button)3. 轮廓按钮(Outlined Button) 二、应用场景与注意事项1. 使用场景2. 注意事项 三、总结 Material-UI 的 Button 组件是前…...
人工智能自动驾驶三维车道线检测—PersFormer模型代码详解
文章目录 1. 背景介绍2. 数据加载和预处理3. 模型结构4. Loss计算5. 总结和讨论 1. 背景介绍 梳理了PersFormer 3D Lane这篇论文对应的开源代码。 2. 数据加载和预处理 数据组织方式参考:自动驾驶三维车道线检测系列—OpenLane数据集介绍。 坐标系参考ÿ…...
LangChain +Streamlit+ Llama :将对话式人工智能引入您的本地设备成为可能(上篇)
🦜️ LangChain Streamlit🔥 Llama 🦙:将对话式人工智能引入您的本地设备🤯 将开源LLMs和LangChain集成以进行免费生成式问答(不需要API密钥) 在过去的几个月中,大型语言模型(LLMs)得…...
sql注入部分总结和复现
一个端口对应一个服务 联合查询注入 所有的程序中,单双引号必须成对出现 需要从这个引号里面逃出来 在后面查询内容 ?id1 要查库名,表名,列名。但是联合查询要知道有多少列,所以通过order by 去查询 order by # 通过二分法…...
开源企业级后台管理的快速启动引擎:Ballcat
Ballcat:快速搭建,高效管理,Ballcat让企业后台开发更简单。 - 精选真开源,释放新价值。 概览 Ballcat,一个专为企业级后台管理而设计的快速开发框架,以其高效的开发模式和全面的安全特性,为开发…...
FashionAI比赛-服饰属性标签识别比赛赛后总结(来自 Top14 Team)
关联比赛: FashionAI全球挑战赛—服饰属性标签识别 推荐大家看本篇博客之前,看一下数据集制作的方法,如何做一个实用的图像数据集 PS:我是参加完比赛之后才看的,看完之后,万马奔腾.....,因为发现比赛中还…...
C语言 | Leetcode C语言题解之第319题灯泡开关
题目: 题解: int bulbSwitch(int n) {return sqrt(n 0.5); }...
【第十届泰迪杯数据挖掘挑战赛A题害虫识别】-农田害虫检测识别-高精度完整更新
农田害虫检测识别项目-高精度完整版 一、说明: 该版本为基于泰迪杯完整害虫数据重新制作数据集、优化增强数据集、重新进行模型训练,达到高精度、高召回率的最优模型代码。包含论文、最优模型文件以及相关文件、原始数据集、训练数据集XML版、增强扩充…...
【Linux】—— Linux进程状态(R、S、D、T、Z、X)
🌏博客主页:PH_modest的博客主页 🚩当前专栏:Linux跬步积累 💌其他专栏: 🔴 每日一题 🟡 C跬步积累 🟢 C语言跬步积累 🌈座右铭:广积粮࿰…...
重生之我在NestJS中使用EventStream
有一个需求是需要长连接等待后台的返回,我们使用的EventStream,在NestJS中使用很简单,框架基本上已经封装好了 0. 如果没有创建项目的,可以先创建一个项目,创建项目的直接跳转到下一个步骤去 全局安装 nest: npm inst…...
自动化工具Selenium IDE基本使用——脚本录制
1 简介 Selenium相信大家都知道,在做自动化操作时,要使用浏览器驱动直接控制浏览器操作的时候,大多会结合Selenium框架使用。 但在对网页操作自动化的时候,实际上有一种更轻量的做法,那就是直接使用Selenium IDE&…...
Win10家庭版别再卡了!保姆级教程:手动修复gpedit.msc路径,彻底关闭Antimalware Service
Win10家庭版性能优化实战:精准修复组策略路径与系统服务调优每次游戏激战正酣时突然卡顿,或是视频渲染到关键时刻系统响应迟缓,很多Win10家庭版用户都遭遇过这类困扰。任务管理器里那个名为"Antimalware Service Executable"的进程…...
高性能Windows流媒体服务器部署:5大核心技术与3种实战架构深度解析
高性能Windows流媒体服务器部署:5大核心技术与3种实战架构深度解析 【免费下载链接】srs-windows 项目地址: https://gitcode.com/gh_mirrors/sr/srs-windows 在Windows平台上构建专业级流媒体服务系统,需要综合考虑协议兼容性、性能优化和部署架…...
Redis沙盒体验:在浏览器中零门槛掌握NoSQL核心技能
Redis沙盒体验:在浏览器中零门槛掌握NoSQL核心技能 【免费下载链接】try.redis A demonstration of the Redis database. 项目地址: https://gitcode.com/gh_mirrors/tr/try.redis 当你第一次听说Redis时,是否被那些晦涩的技术术语吓退࿱…...
CANN-昇腾NPU-RAG推理-检索增强生成怎么部署
RAG(Retrieval-Augmented Generation)是 LLM 知识库的组合:先检索相关文档,再让 LLM 基于文档回答。昇腾NPU 上部署 RAG 需要两个组件:Embedding 模型(做向量检索)和 LLM(做生成&am…...
上线前最后一道防线,DeepSeek代码审查如何帮你拦截87%的CVE类缺陷?
更多请点击: https://intelliparadigm.com 第一章:上线前最后一道防线,DeepSeek代码审查如何帮你拦截87%的CVE类缺陷? 在软件交付生命周期末期,传统人工代码审计与通用SAST工具常因误报率高、上下文理解弱而漏检高危漏…...
WarcraftHelper:魔兽争霸III现代兼容性问题的终极解决方案指南
WarcraftHelper:魔兽争霸III现代兼容性问题的终极解决方案指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 魔兽争霸III作为经典即时战…...
2026年一键生成论文工具对比实测:5款神器从选题到格式全流程护航
写论文的焦虑,是每个科研人和学生都心照不宣的“隐形压力”。选题无从下手,文献检索耗时费力,逻辑框架反复推翻,格式排版让人抓狂,查重降重更是像在和系统玩“猫鼠游戏”。2026年的AI工具早已不是过去那种“打字机”&a…...
Windows Cleaner:终极免费系统清理工具,彻底解决C盘空间不足问题
Windows Cleaner:终极免费系统清理工具,彻底解决C盘空间不足问题 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你是否经常遇到C盘爆红、…...
【DeepSeek漏洞扫描辅助实战指南】:20年安全专家亲授3大避坑法则与5步提效流程
更多请点击: https://intelliparadigm.com 第一章:DeepSeek漏洞扫描辅助的核心价值与适用边界 DeepSeek漏洞扫描辅助并非通用型渗透测试引擎,而是一个聚焦于大语言模型(LLM)应用层安全的轻量级分析工具。其核心价值在…...
基于PGA2311的树莓派Hi-Fi模拟音量控制器设计与实现
1. 项目概述:为树莓派DAC打造的高品质模拟音量控制器玩过树莓派音频播放器的朋友都知道,用上像PCM1794A这类高性能DAC芯片后,音质确实能上一个台阶,但有个不大不小的麻烦:这类芯片本身不带音量控制。软件调音量&#x…...
