在 Chromecast 上播放 Widevine DRM

Posted

技术标签:

【中文标题】在 Chromecast 上播放 Widevine DRM【英文标题】:Widevine DRM playback on Chromecast 【发布时间】:2014-10-21 17:46:23 【问题描述】:

我一直在阅读有关在设备连接到 chromecast 后在 chromecast 上进行 Widevine 播放的内容。我已经在 androidios 中为电影标题工作,我不确定从哪里开始,我应该将我的自定义数据作为我的自定义数据传递给播放器。我在

上简要查看了示例

https://github.com/googlecast/CastMediaPlayerStreamingDRM

但我还没有尝试实现它,因为我不想旋转我的***试图将随机密钥和东西传递到接收器。由于我已经在设备上进行了所有必要的身份验证,因此我需要向接收者发送什么。

【问题讨论】:

示例项目也支持 Widevine,所以你应该看看那个项目。 @AliNaddaf 感谢您对我的问题发表评论。如果我暂时将它托管在谷歌驱动器上,是否可以让 drm 接收器用于开发目的? 在 Google Drive 上托管很好;我们只是不建议将其用于生产,否则没有技术理由阻止您使用它。说明在这里:support.google.com/drive/answer/2881970?hl=en @AliNaddaf - 我正在尝试使用此接收器播放 WV 内容:github.com/googlecast/CastReferencePlayer .. 它适用于我的 Player Ready 流,但不适用于 WV 流.. 我正在尝试了解我需要向接收器发送哪些参数才能播放..例如:主机中需要 licenseCustomData 和 licenseUrl 吗?我只需要发送 mediaElement 和 url 吗?现在,当我尝试这样做时,CC 正在下载 1 个块并在 30000 毫秒后失败,然后尝试再次下载相同的块。 【参考方案1】:

我知道这已经晚了,但是对于需要帮助的其他人,您真正需要做的就是在自定义数据中传递许可证 url。

    JSONObject jsonObject = new JSONObject();
    try
        jsonObject.put("licenseUrl", licenseUrl);
     catch (JSONException e)
        Utils.log("Failed to add license to Json object.");
    

    MediaInfo mediaInfo =
            new MediaInfo.Builder(videoUrl)
                    .setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
                    .setContentType("video/mp4")
                    .setMetadata(movieMetadata)
                    .setStreamDuration(currentPosition)
                    .setCustomData(jsonObject)
                    .build();
    return new MediaQueueItem.Builder(mediaInfo).build();

对于接收器,请务必创建一个 CAF(不是 Receiver v2)并参考此guide 了解 Widevine 设置。服务器将需要读取许可证并允许它在接收端使用 javascript 进行 Widevine 播放。

【讨论】:

以上是关于在 Chromecast 上播放 Widevine DRM的主要内容,如果未能解决你的问题,请参考以下文章

iOS 和 AirPlay 上的 Widevine 视频流

如何在android webview中播放widevine drm内容

在 iOS 上玩 Widevine DRM?

使用 Azure 媒体服务中的令牌播放 Widevine

在 Styled Media Receiver Chromecast 上播放 M3U8

html 播放器的 Widevine DRM 保护内容中的用户授权。