问题标签 [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.
video-streaming - 试图保护我们的流媒体不被下载
我们为一个为会员提供流媒体视频内容的客户建立了一个网站。我们现在面临的是我们的电影正在被下载。我们知道我们无法阻止屏幕截图,但目前似乎人们正在下载而不是屏幕截图。
我们最近开始使用外部服务来防止这种情况,调用 Vzaar 提供由播放器本身解码的 AES 加密流。因此,我们自己的服务器上不再存储任何视频。
但即使是现在,他们似乎仍然能够下载电影。有没有人有有效的方法来防止这种情况?谷歌 Widevine 可能是解决方案吗?
如果 netflix 能够阻止大多数下载,它可以做到。也许 Google Widevine 是一个答案?我们已经用完了我们的想法,所以希望你能帮助我们。
问候斯蒂恩
javascript - 即使使用完整的 Widevine 插件,Electron 也无法加载 Netflix
我有一个播放 Netflix 的副项目,突然它停止工作并开始显示此错误。
我没有更新任何东西,它只是从 Netflix 这边停止工作(我猜)。
我正在使用 Electron 1.8.4,我尝试将 Electron 升级到最新的 2.0.0beta-5,但没有成功。
我也尝试过使用从 Chrome 59 到 62 的 Widevine 插件,甚至是来自 Brave 浏览器的插件,但没有成功。
我创建了一个小型存储库来轻松重现该问题。
它还允许您加载 Shaka Player 和 Bitmovin DRM 测试,因此您可以确保正确加载 Widevine 插件:
我还向Electron 提出了一个问题,以便在那里获得帮助。
我真的被困在那里,非常感谢你的帮助。
编辑:
似乎 Netflix 最近对 Widevine 浏览器 CDM 实施了新的 VMP(已验证媒体路径)支持。因此,如果没有来自 Google 的适当的、列入白名单的 Widevine CDM 安装,小型播放器/浏览器将无法播放 DRM 内容。
我已经联系了他们,看看获得一个的步骤是什么。
编辑#2 (07/24/20):
两年过去了,我还没有驾照。
我已经签署了一些文件来获得它,但从那以后,就没有消息了。
我最后一次联系是在几周前,他们终于回复了我的一封电子邮件,称他们会将所有这些过程转移给另一个第三方。我猜我现在又回到了原点。
这一定是个笑话。
万岁 DRM。
video - Widevine DRM - 正文请求有效负载
我正在集成一个播放器,该播放器必须在浏览器中播放受 Widevine DRM 保护的流。
我检查了一些知名玩家:
- DashJs - https://github.com/Dash-Industry-Forum/dash.js/wiki
- ShakaPlayer - https://github.com/google/shaka-player
幸运的是,这些播放器提供了一些使用 Widevine DRM 保护的流样本。
我的问题涉及 XHR 执行以检索 DRM 密钥。在任何 Widevine 安全流中,我可以看到(在 devtools 中)至少有 2 个针对许可证服务器的 XHR。
举个例子:https ://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p.mpd
此流可用于:
- DashJs(https://reference.dashif.org/dash.js/nightly/samples/dash-if-reference-player/index.html):“Axinom 测试内容(现代)> 1080p,带有 PlayReady 和 Widevine DRM,单键"
- ShakaPlayer(https://shaka-player-demo.appspot.com/demo/):“Axinom > Multi-DRM”
在 Chrome (65.0.3325.181) 上,当我加载流时,我可以 2 XHR(让我们省略飞行前的“OPTIONS”xhr):
- 邮政
https://drm-widevine-licensing.axtest.net/AcquireLicense
X-AxDRM-Message
特定于 Axinom 的请求标头- 要求
Content-Length: 2
- 请求有效负载等于
\x08\x04
(右键单击 XHR,然后“复制为 cURL”并将其粘贴到任何文本编辑器中) - 回复
Content-Length: 706
- 邮政
https://drm-widevine-licensing.axtest.net/AcquireLicense
X-AxDRM-Message
特定于 Axinom 的请求标头- 要求
Content-Length: 3929
- 具有一定数据量的请求有效负载
- 回复
Content-Length: 426
我不明白为什么有 2 个 XHR?\x08\x04
此外,无论选择哪种流(在 Widevine DRM 流的情况下),总是发送带有两个字符的第一个 XHR ,是否有特定含义?
exoplayer - Exoplayer dash 流与widevine drm
您好,我正在开发一个应用程序,我可以在其中播放具有widevine drm 保护的短跑流。我已经阅读了 exoplayer 的示例,但我的需求不同,我会在我的网站上,当点击破折号 url 时,它将开始在 exoplayer 中播放流。我已经成功完成了打开 exoplayer 活动的第一部分,但是我不知道如何在 exoplayer 上运行受 drm 保护的流。
我知道流和 drm 许可证网址。
我正在处理的一个简单代码附在下面。请帮助我提供 drmsessionmanager 等的附加代码。运行流
这是我的代码,它只支持没有 drm 的 mpd:
rotation - Google Widevine DRM 密钥轮换
Widevine DRM 客户端播放器能否维护已用于内容解密的密钥的日志?日志可用于获取某些统计信息,例如识别内容被查看的位置。
此外,“pssh”数据博客中收到的密钥是否也使用特定令牌或会话密钥加密?
android - 通过 ExoPlayer 播放 Widevine DRM 视频
我正在尝试通过ExoPlayer Android library播放受 DRM (Widevine) 保护的视频。目前,我们正在尝试通过该存储库的代码演示来播放它。
我们的视频请求需要添加一个令牌。但我不知道在哪里添加它。我们在drm_key_request_properties中添加了它:
但它不起作用。知道会发生什么吗?
ios - 死代码剥离导致编译错误
我们在项目中使用了 Widevine DRM 播放器。在集成时,我们必须将“Dead Code Stripping”设置为 NO。它工作正常。
现在我们必须在项目中添加其他类和 .a 文件(Unity Vuforia 文件)。为此,我们必须将“死代码剥离”恢复为“是”。在调试模式下,一切正常,widevine DRM Player 工作正常。但是在存档构建中它立即崩溃了。如果“Dead Code Stripping”设置为 No,那么我们会收到以下错误:
架构 arm64 的未定义符号:“Geo::GetiOSAppDocumentsDir()”,引用自 libiPhone-lib.a(GeoPathUtils.o) 中的:Geo::PathUtils::GetSandboxDataPath()
要让 Widevine 播放器正常工作,我们需要将“Dead Code Stripping”设置为 NO,对于统一文件,我们需要将其设置为“YES”。我们如何解决这个问题?欢迎任何建议。
react-native - 在 IOS 和 Android 上使用 Flutter/React Native 播放 DRM 内容
我在哪里搜索任何解决方案以在 IOS 和 Android 上播放 DRM 内容。我想开发一个跨平台解决方案,可以播放受 DRM 保护的内容,无论是 Widevine 还是 playready。
对于 Flutter 没有任何解决方案,所以我切换到 RN
对于 React Native,我刚刚发现 Exoplayer 能够播放 Widevine 但没有 Playready DRM 内容。
也许你们中的某个人可以帮助我找出,我怎么能在两个平台上做到这一点?
此致
amazon-web-services - 使用 AWS Lambda 的 Widevine HTTP 代理
我正在使用 AWS Lambda + Serverless 构建 Widevine 许可证代理,并通过带有标准内容的 Shaka Player 对其进行测试:https ://storage.googleapis.com/wvmedia/cenc/h264/tears/tears.mpd 。API 工作正常,ContentKey
但如果我尝试使用 Lambda 端点作为带有 CENC 编码的 DRM 内容的许可证 URL,播放失败,因为 Shaka 播放器尝试发出CONNECT
在 Lambda 中失败的请求Unsupported HTTP method
,第一个工作POST
请求SERVICE_CERTIFICATE
,第二个一个PAYLOAD
用于请求证书的失败。具体来说:
与 Charles 分析流量,失败为:Client SSL handshake failed - Remote host closed connection during handshake
并导致Unsupported HTTP method
.
编辑: 因此,Shaka 播放器请求密钥以将资产解密为 Widevine 许可证 URL,在 Lambda 上和 API Gateway 后面执行。Shaka 播放器对 service_certificate(有效负载 CAQ=)的第一个 POST 请求有效。第二个请求(来自 Shaka 播放器的许可证请求)在 CONNECT 步骤中阻塞,然后使用来自 API 网关的 Unsupported HTTP Method 响应关闭连接。
关于如何使许可证服务器工作的任何想法?
android - 如何从 Android TV 获取 PlayReady DRM 信息?
我想从 Android 中的 Nexus Player 获取 PlayReady DRM 信息。我尝试了很多方法,但都没有奏效。谁能帮我?非常感谢。
- 我查看了免费应用程序(DRM 信息)。它可以告诉我支持 PlayReady,但无法获得 PlayReady DRM 的安全级别。
- 我使用 MediaDrm 来获取 DRM 信息。如果 UUID 为 WideVine,则可以获得 WideVine DRM 的安全级别。但是如果 UUID 是 PlayReady,它就不能工作。
私有静态最终 UUID PALYREADY_UUID = 新 UUID(0x9A04F07998404286L,0xAB92E65BE0885F95L);
我用了这个方法,但是没有用。
谁能帮我?