问题标签 [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.
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?
drm - Roku (Brightscript) - 播放受 DRM 保护的视频内容
这是一个自我回答的问题。
问题:无法播放受 PlayReady DRM 保护的视频。
android - 获取 Widevine 许可证服务器密钥
要实现的目标:我需要像 Netflix 一样支持 Android 设备上的离线视频,并禁止使用 DRM 支持对其进行分发。
到目前为止我所做的:我已经使用 Shaka Packager 将示例视频转换为 m3u8 格式。使用此链接https://google.github.io/shakapackager/html/tutorials/widevine.html
面临的问题: 1. 这足以保护 DRM 吗?2. 我知道我必须使用许可的 Widevine 服务器,我无法在任何地方找到如何获得它。请帮我解决这个问题。3. 我想对于第 2 点,我必须在服务器上存储一个密钥。这个相同的密钥将在 android 设备上用于启用视频播放器。我对如何设置这个有点困惑。
提前致谢!!
chromecast - 带有 Widevine DRM 的 Chromecast CAF
我正在尝试创建一个与 DASH+WIDEVINE 兼容的 chromecast CAF 接收器。
CAF 文档:
但是,我总是收到 DASH+WDV 视频错误 HLS_MANIFEST_MASTER 411。对于非 DRM 内容,我没有问题。
有人有与 DASH+WDV 配合使用的 chromecast 接收器吗?
非常感谢,
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
并停止播放。我发现这个错误意味着
所以我的问题是:
- Cast Receiver API 是否支持续订许可证?接收方会触发 CAST API 中的哪些回调来通知会话已过期?我没有收到任何消息,我只收到错误:(并且播放停止。
- 如何向播放器提供新许可证以防止其失败?
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
究竟是什么意思吗?
android - 如何在 jwplayer 中进行 DRM 配置设置?
DRM 配置设置 特定的 DRM 配置选项然后嵌套在 drm 块内。可以在特定源中配置多种形式的 DRM,这将根据特定浏览器进行选择。
有时需要将自定义 http 标头添加到许可证请求中。这些值特定于您正在使用的 DRM 提供程序。下面的示例使用名称为 customData 的标头设置等于提供的值。这些标头提供额外的安全性,没有它们,许可证请求将不会被批准。请注意,并非所有 DRM 提供程序都需要这些自定义标头对。更多信息可以在我们的开发者网站上找到。
DRM 的典型工作流程包括配置多种 DRM 技术以涵盖最常见的播放环境。这些 DRM 技术应嵌入特定源中,以允许播放器回退到正确的技术。下面显示了一个完全嵌套的 DRM 块的示例。此方法根据请求内容的浏览器/客户端选择适当的 DRM 技术。
如何将其转换为安卓?
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 保护的视频无法在我们的接收器上播放。任何帮助将不胜感激。
ffmpeg - 编译具有分段时间线的 init.mp4 和 audio.mp4
我正在尝试使用 copy /b init.mp4 + audio.mp4 complie.mp4 来编译 init.mp4 及其音频文件
它正在编译,但无法在 vlc 和 ffmpeg 上播放。
当我检查 mpd 文件时,我看到它有音频
有人可以解释它是什么吗?那些 t,r,d 值是。如何将这些音频片段添加到 complie.mp4 并使其播放?
mpeg-dash - Shaka 打包程序不加密资产
即使我在播放器配置中提供了无效的解密密钥,我也无法弄清楚 shaka 播放器如何能够解密我的受 CENC 保护的内容。
这是给打包器的参数
mpd 文件看起来像