问题标签 [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.

0 投票
1 回答
867 浏览

protocol-buffers - how to use pssh python script using Python ProtoBuf library?

I am not able to figure out how Python ProtoBuf library is related to use pssh python script in this documentation https://github.com/google/shaka-packager/tree/master/packager/tools/pssh

How can I build the pssh.py script without the proto file?

0 投票
1 回答
577 浏览

drm - Roku (Brightscript) - 播放受 DRM 保护的视频内容

这是一个自我回答的问题。

问题:无法播放受 PlayReady DRM 保护的视频。

0 投票
1 回答
11600 浏览

android - 获取 Widevine 许可证服务器密钥

要实现的目标:我需要像 Netflix 一样支持 Android 设备上的离线视频,并禁止使用 DRM 支持对其进行分发。

到目前为止我所做的:我已经使用 Shaka Packager 将示例视频转换为 m3u8 格式。使用此链接https://google.github.io/shakapackager/html/tutorials/widevine.html

面临的问题: 1. 这足以保护 DRM 吗?2. 我知道我必须使用许可的 Widevine 服务器,我无法在任何地方找到如何获得它。请帮我解决这个问题。3. 我想对于第 2 点,我必须在服务器上存储一个密钥。这个相同的密钥将在 android 设备上用于启用视频播放器。我对如何设置这个有点困惑。

提前致谢!!

0 投票
1 回答
761 浏览

chromecast - 带有 Widevine DRM 的 Chromecast CAF

我正在尝试创建一个与 DASH+WIDEVINE 兼容的 chromecast CAF 接收器。

CAF 文档:

但是,我总是收到 DASH+WDV 视频错误 HLS_MANIFEST_MASTER 411。对于非 DRM 内容,我没有问题。

有人有与 DASH+WDV 配合使用的 chromecast 接收器吗?

非常感谢,

0 投票
2 回答
1099 浏览

javascript - 如何在 Cast Receiver Player 中更新过期的 DRM 许可证?

我基于Google Cast 应用程序框架开发自定义 Cast Receiver 应用程序接收器应用程序负责播放 Widevine 加密流。我们支持的解决方案需要在许可请求的标头中添加DRM 令牌。PreAuthorization我需要执行几个授权请求来检索DRM 令牌。我假设检索 DRM 令牌的最佳位置是使用Message Interceptor

然后 CAST Player 自动调用licenseRequestHandler,我很容易将所需的 DRM 令牌添加到许可证请求的标头中:

播放工作正常,但直到许可证密钥过期为止。在我们的后端许可证上大约有 30 分钟。在那之后,接收播放器产生错误[cast.framework.media.ShakaPlayer] category: 6 code: 6014并停止播放。我发现这个错误意味着 在此处输入图像描述

所以我的问题是:

  1. Cast Receiver API 是否支持续订许可证?接收方会触发 CAST API 中的哪些回调来通知会话已过期?我没有收到任何消息,我只收到错误:(并且播放停止。
  2. 如何向播放器提供新许可证以防止其失败?
0 投票
1 回答
1142 浏览

android - Widevine DRM - 在 FireTV 上请求多个 DRM 密钥时出错

在我的应用程序中,我使用 exoplayer 播放 DASH 视频流。流受到 WIDEVINE 的 DRM 保护。我的 DashManifest 有多个键。一键标清,一键高清流。当我在 FireTV 上开始播放视频时,出现此错误:

xoPlayerImplInternal: Playback error. com.google.android.exoplayer2.ExoPlaybackException at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.shouldWaitForKeys(MediaCodecRenderer.java:896) at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.feedInputBuffer(MediaCodecRenderer.java:783) at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:606) at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:518) at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:301) at android.os.Handler.dispatchMessage(Handler.java:98) at android.os.Looper.loop(Looper.java:135) at android.os.HandlerThread.run(HandlerThread.java:61) Caused by: com.google.android.exoplayer2.drm.DrmSession$DrmSessionException: android.media.MediaDrm$MediaDrmStateException: Failed to get key request: DRM vendor-defined error: -2998 at com.google.android.exoplayer2.drm.DefaultDrmSession.onError(DefaultDrmSession.java:422) at com.google.android.exoplayer2.drm.DefaultDrmSession.onKeysError(DefaultDrmSession.java:417) at com.google.android.exoplayer2.drm.DefaultDrmSession.postKeyRequest(DefaultDrmSession.java:368) at com.google.android.exoplayer2.drm.DefaultDrmSession.doLicense(DefaultDrmSession.java:300) at com.google.android.exoplayer2.drm.DefaultDrmSession.acquire(DefaultDrmSession.java:162) at com.google.android.exoplayer2.drm.DefaultDrmSessionManager.acquireSession(DefaultDrmSessionManager.java:558) at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:935) at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:522) at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:589) at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:518) at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:301) at android.os.Handler.dispatchMessage(Handler.java:98) at android.os.Looper.loop(Looper.java:135) at android.os.HandlerThread.run(HandlerThread.java:61)

我不知道这个设备或我的配置有什么问题。有人可以解释一下Failed to get key request: DRM vendor-defined error: -2998究竟是什么意思吗?

0 投票
2 回答
1069 浏览

android - 如何在 jwplayer 中进行 DRM 配置设置?

DRM 配置设置 特定的 DRM 配置选项然后嵌套在 drm 块内。可以在特定源中配置多种形式的 DRM,这将根据特定浏览器进行选择。


有时需要将自定义 http 标头添加到许可证请求中。这些值特定于您正在使用的 DRM 提供程序。下面的示例使用名称为 customData 的标头设置等于提供的值。这些标头提供额外的安全性,没有它们,许可证请求将不会被批准。请注意,并非所有 DRM 提供程序都需要这些自定义标头对。更多信息可以在我们的开发者网站上找到。


DRM 的典型工作流程包括配置多种 DRM 技术以涵盖最常见的播放环境。这些 DRM 技术应嵌入特定源中,以允许播放器回退到正确的技术。下面显示了一个完全嵌套的 DRM 块的示例。此方法根据请求内容的浏览器/客户端选择适当的 DRM 技术。

如何将其转换为安卓?

0 投票
1 回答
1281 浏览

javascript - Widevine + Chromecast 许可证 URL

我为 chromecast 编写了一个自定义接收器来处理受 DRM 保护的内容,但对许可证服务器的调用似乎存在问题。许可证由 WideVine 管理。

演员表是从一个 Android 发件人应用程序启动的,其许可证 URL 以CustomData. 在接收器上启动播放器后,调试器会抛出错误:[cast.framework.media.ShakaPlayer] category: 6 code: 6008即 LICENSE_RESPONSE_REJECTED ( https://shaka-player-demo.appspot.com/docs/api/shaka.util.Error.html ) 并MEDIA_FINISHED触发核心事件与endedReason: "ERROR". 受 DRM 保护的视频无法播放。

查看 devtools 中的网络选项卡,我发现Content-Length来自许可证服务器的响应标头的值为零。即响应正文为空。

我用谷歌搜索了许多网址,只是为了登陆相同的“包装和解包许可证有效负载”网址:https ://shaka-player-demo.appspot.com/docs/api/tutorial-license-wrapping.html

这是唯一传递许可证 URL 的行:

我无法弄清楚这是什么原因,以及为什么受 DRM 保护的视频无法在我们的接收器上播放。任何帮助将不胜感激。

0 投票
1 回答
3086 浏览

ffmpeg - 编译具有分段时间线的 init.mp4 和 audio.mp4

我正在尝试使用 copy /b init.mp4 + audio.mp4 complie.mp4 来编译 init.mp4 及其音频文件

它正在编译,但无法在 vlc 和 ffmpeg 上播放。

当我检查 mpd 文件时,我看到它有音频

有人可以解释它是什么吗?那些 t,r,d 值是。如何将这些音频片段添加到 complie.mp4 并使其播放?

0 投票
1 回答
948 浏览

mpeg-dash - Shaka 打包程序不加密资产

即使我在播放器配置中提供了无效的解密密钥,我也无法弄清楚 shaka 播放器如何能够解密我的受 CENC 保护的内容。

这是给打包器的参数

mpd 文件看起来像