chromecast - 带有 Widevine DRM 的 Chromecast CAF
问题描述
我正在尝试创建一个与 DASH+WIDEVINE 兼容的 chromecast CAF 接收器。
CAF 文档:
const context = cast.framework.CastReceiverContext.getInstance();
const playbackConfig = new cast.framework.PlaybackConfig();
// Customize the license url for playback
playbackConfig.licenseUrl = 'http://widevine/yourLicenseServer';
playbackConfig.licenseRequestHandler = requestInfo => {
requestInfo.withCredentials = true;
};
context.start({playbackConfig: playbackConfig});
// Update playback config licenseUrl according to provided value in load request.
context.getPlayerManager().setMediaPlaybackInfoHandler((loadRequest, playbackConfig) => {
if (loadRequest.media.customData && loadRequest.media.customData.licenseUrl) {
playbackConfig.licenseUrl = loadRequest.media.customData.licenseUrl;
}
return playbackConfig;
});
但是,我总是收到 DASH+WDV 视频错误 HLS_MANIFEST_MASTER 411。对于非 DRM 内容,我没有问题。
有人有与 DASH+WDV 配合使用的 chromecast 接收器吗?
非常感谢,
解决方案
HLS_MANIFEST_MASTER
建议您给它一个 HLS 流而不是 MPEG-DASH 流。因此,要么你给它一个 .m3u8 URL 而不是 .mpd URL,要么你特别强制 Cast SDK 使用 HLS 作为解析方法,而不是 MPEG-DASH。
请注意,这些是各自的 mime 类型:
- HLS:
application/x-mpegurl
或application/vnd.apple.mpegurl
- 破折号:
application/dash+xml
推荐阅读
- sql - 仅使用某些子项填充 JPA 填充子数组(一对多)
- java - 创建 jar 工件后 IntelliJ 没有 Main Mainifest 属性
- java - 获取 IllegalStateException:Session/EntityManager 在 session.evict() 上关闭
- azure - 是否可以通过 PowerShell 命令列出 extensionAttribute1 - extensionAttribute15?
- gradle - Gradle 配置集成
- math - 在计算 rust 时我有 `-inf`:什么是`-inf`?
- angular - OKTA redirect_uri 中的动态 URL
- keras - 将 hyperopt(或 hyperas)与 Keras 和 ImageDataGenerator "flow_from_directory" 一起使用
- android - 将项目迁移到 AndroidX 后,com.paymob.acceptsdk.PayActivity void androidx.appcompat.app.ActionBar 崩溃
- mysql - 如何将 2 行数据连接到 mysql 中单行的 1 列