问题标签 [widevine]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android-tv - Exoplayer 2.0 上的 Widevine DRM 内容
我正在尝试使用 Exoplayer 在 Android TV 应用程序上播放Widevine 加密内容。我有我的视频URL,它从CDN提供并通过票证获得。我有许可证服务器的 Widevine 许可证 URL、票证和身份验证令牌。
我正在创建一个drmSessionManager,将许可证服务器所需的必要标头放置如下:
在这个 Exoplayer 处理了大部分内容之后,会遇到以下断点。
我可以观察到到目前为止一切都很好,URL 是正确的,标题设置得很好。
在下面的代码中,我可以观察到dataSpec很好,尝试使用正确的数据向许可证服务器发送请求,但是在建立连接时响应代码返回 405。
在班上 :DefaultHttpDataSource
在方法中:public long open(DataSpec dataSpec)
使用 postman 向 URL 发出请求时,GET 请求返回以下正文,响应代码为 405。
{ "Message": "请求的资源不支持 http 方法 'GET'。" }
POST 请求也返回响应代码 405,但返回一个空正文。
在这两种情况下,还会返回以下标头,我认为请求必须接受 GET 和 POST 请求。
我无权访问DRM 服务器的配置,我负责 DRM 服务器的联系人告诉我 POST 请求必须正常工作,因为有些客户端已经设法从同一个 DRM 服务器获取要播放的内容。
我现在很困惑,我想也许我错过了 exoplayer 中的某种配置,因为我对 DRM 的概念很陌生。
任何帮助将不胜感激。
cross-platform - 支持 DRM 的跨平台(Mac 和 Windows)桌面应用程序
谁能建议我开发支持 DRM 播放的跨平台桌面应用程序(MacOS 和 Windows8.1+)的选项。
我研究了ElectronJS(不支持内置DRM ),使用了 Electron 的castlabs fork 和 VMP 启用了 Widevine DRM 支持,但从 Google Widevine 获得生产就绪许可证书需要很长时间。
因此,请研究可以启用 DRM 播放(PlayReady、Widevine 和 FairPlay)的更多选项。
android - 如何修复 ExoPlayer 错误“本机窗口无法处理受保护的缓冲区”
暂停 ExoPlayer 并将我的应用程序置于后台时,我不断收到错误消息。该流包含在服务器端插入的受 Widevine 保护的内容和广告。我怀疑这种受保护和不受保护内容的混合导致了错误,但不知道从哪里开始。将应用程序置于后台并恢复它实际上在未受保护的前贴片广告期间有效一次,但在主要内容中第二次尝试时失败。
SurfaceUtils
记录以下消息:native window cannot handle protected buffers: the consumer should either be a hardware composer or support hardware protection
。
有人知道这实际上意味着什么吗?不幸的是,我对 ExoPlayer 的内部运作不太熟悉。
返回错误的代码在SurfaceUtils.cpp
这里可能会有所帮助:
master - 如何在钴中播放drm内容
我正在使用钴大师进行开发。
我想使用钴播放 drm 内容。但据我所知,由于许可,钴(开源)并未与 Widevine 或 playready 集成。
所以我必须进行广泛的整合..但我不知道该怎么做..
以下是问题列表。如果你们能回答这个问题,我将不胜感激。
我在钴源树('cobalt/src/starboard/shared/widevine')中找到了有关 Widevine 的资源,我认为它是关于 Widevine 移植的。然后我只需要放入widevine.so 或widevine 源。
这样对吗?我在“cobalt/src/third_party”中创建了一个 ce_cdm(它是 Widevine 3.5 源)目录,然后尝试了“cobalt/build/gyp_cobalt -C debug linux-x64x11”,但终端打印了以下消息。
我不懂这啥意思...
- 请让我知道您的人是否有指南或方法来做到这一点。
谢谢你。
spotify - 如何解决 Firefox 开发者版上的 Spotify 使用 WidevineCdm 插件崩溃的问题?
不是直接的编程问题,但肯定是关于开发人员生产力的问题。
像许多开发人员一样,我正在运行最新版本的 Firefox DeveloperEdition,以利用其所有各种工具集,同时尝试听 Spotify 来淹没开放式办公室。
虽然这不是第一次发生;Spotify 反复崩溃,WidevineCdm 插件被指责为罪魁祸首……这通常发生在没有任何播放的情况下,但有时会在几秒钟后发生。
通常,像往常一样摆弄插件设置的“帮助”页面提示并不是那么有帮助。
我知道它可能会在几天内自行解决,但作为一个好奇的开发人员,我想知道它为什么会持续中断?
android - MediaDrm provideKeyResponse 中断 ExoPlayer 中的音频流
我正在使用 ExoPlayer 播放由 Widevine 授权的音频 Dash 内容。在大多数设备中它工作正常,但在某些华为和小米设备中,当调用原生 MediaDrm.provideKeyResponse(byte[] scope, byte[] response) 时,音频会中断几毫秒。我怎样才能防止这种情况发生?
我正在使用 ExoPlayer 2.9.1,但即使我升级到最新版本,这个问题仍然存在。
exoplayer - 为什么在使用 exoplayer 玩 Widevine 时调用配置请求?
我正在尝试通过 ExoPlayer Android 库播放受 DRM (Widevine) 保护的视频。但我观察到在播放内容时调用了一些 google api,例如:https://www.googleapis.com/certificateprovisioning/v1/devicecertificates/create?key=AIzaSyB-5OLKTx2iU5mko18DfdwK5611JIjbUhE&signedRequest=CloKTAgAEkgAAAACAAARXQ2Uk20H84uZwd-GgomF4yknNzh91QhUZHxuThGrF5WLuZE6xUzyEWRwhnBlUVV0dmDoaIS2bF9yCUtW-awQeLkSBA-nt1QaBAgAEgASII3yfAKXhcwZhE1ft-BI3AQMe_jgIefj-QS8F9kOZtzt
.
我不知道为什么调用google api?我怎样才能避免调用它?
android - 检测 Widevine DRM HDCP 保护级别
我目前正在使用 Dash/Widevine DRM 切换到 ExoPlayer。通过测试,我遇到了很大比例的设备没有启用 HDCP 保护。由于合同协议,这是一个问题。我必须在允许播放之前检测到并记录它。
我从 App DRM Info中得到灵感,这甚至是一种可能性
我的第一个想法是使用DrmManagerClient
我取消了它,因为我没有得到结果并尝试使用MediaDrm
哪个有效!惊人的问题解决了!
...除了你可以看到它只适用于 Pie 及以上...这是不行的。DrmInfo 将适用于我尝试过的每个 Android 版本。我只是不知道如何使用DrmManagerClient
,而且文档几乎不存在。
任何信息都会被重视,谢谢。
html5-video - 带有 Video.js 的 Widevine 模块化
我正在尝试在我的网页上播放 Widevine 加密的 MPEG-DASH 视频,使用Video.js
. 我.mpd
在 S3 中有生成的文件并按照我应该的方式传递了 url,但是得到了 403 禁止错误。这不是 AWS 的权限问题,因为如果我直接指向.mp4
代理文件,则会Video.js
播放视频的加密版本。当我查看mpd
文件时,它似乎分别指定了音频和视频文件。
音频文件是否需要与 S3 中的视频文件分开?
http-live-streaming - shaka Packager 支持 TS 输出吗?
我正在尝试使用 shaka packager 加密视频,我们想使用 hls,我知道 shaka packager 支持 MP4 格式输出,但我不确定 shaka packager 是否支持 TS 格式输出。如果支持,如何在编写 shaka packager 命令时指定参数?