视频加密常见问题

更新时间:
复制 MD 格式

本文为您介绍使用视频点播HLS标准加密、阿里云视频加密(私有加密)、DRM加密过程中遇到的常见问题及解决方案。

HLS标准加密相关

播放HLS标准加密视频时,需要传入的用户令牌(MtsHlsUriToken)参数是什么?如何获取?

MtsHlsUriToken参数是用户自定义参数,常规的HLS标准加密下,加密串写到HLS流里后,会在m3u8索引文件中加入一个解密服务器的地址,当有需求需要只允许部分用户访问时,这个解密地址就需要一个验证身份的功能,MtsHlsUriToken参数就是在您的解密服务器上加一层验证逻辑,然后根据这层验证逻辑生成一个特殊的参数加入解密验证。

您需要在配置加密时,搭建令牌颁发服务生成MtsHlsUriToken,详细内容请参见播放视频步骤1。

如何使用生成的密钥?

GenerateKMSDataKey接口会返回两种密钥:一种是密文密钥(CiphertextBlob),另一种是明文密钥(Plaintext)。用户只需要将密文密钥传递给视频点播服务即可,具体参数传递请参见提交媒体转码作业中的加密配置 EncryptConfig参数。

说明
  • 推荐业务方对生成的密文密钥和明文密钥进行缓存。

  • 创建的Service Key不可删除、不可更新,只用于生成加密密钥。

生成的令牌如何传递到解密接口?

业务方必须使用域名进行加速播放,才能将令牌重写到解密接口上。在请求M3U8地址时需要将生成的令牌通过MtsHlsUriToken参数传递,域名会自动将该参数重写到解密接口上并请求解密接口。

如何快速验证加密播放?

可以通过阿里云播放器诊断平台,播放标准加密的M3U8播放地址,可以快速验证播放是否正常。拷贝M3U8播放地址(如有MtsHlsUriToken参数一并拷贝)到阿里云播放器诊断平台上进行尝试标准加密的解密播放。

其它常见问题

  • 接口提示

    调用提交媒体转码作业提示KeyNotFound相关信息,请先联系点播后台在相应的区域(例如:华北2、华东2)创建Service Key 并用于生成加密密钥。

  • 非加密文件

    生成的文件未加密,请确认转码模板是否开启视频加密并勾选了私有加密

  • 自定义密钥

    加密的明文密钥必须使用创建KMS数据密钥接口生成,不能使用自定义字符串生成加密密钥,否则加密转码失败。

  • 加密失败

    标准加密转码失败或没有任何加密文件生成,请确认创建KMS数据密钥生成的密钥类型是否为AES_128密钥,否则加密转码会失败导致不会生成任何加密文件。

  • 解密失败

    标准加密文件解密播放失败,请确认是解密接口将视频点播的DecryptKMSDataKey接口返回的明文密钥再次base64decode之后给播放器解密播放,不然解密播放会失败。

  • 重复生成

    标准加密转码触发都是由用户主动触发,如果重复生成加密文件,请确认是否重复调用提交媒体转码作业接口。

DRM加密相关

发起DRM加密转码失败,报错提示Submit transcode job failed

问题现象:发起DRM加密转码时,报错TranscodeJob.SubmitFailed,错误码为 TranscodeJob.SubmitFailed

问题原因:

视频点播暂不支持在视频上传完成后通过点播控制台 > 媒资库 > 音/视频 > 媒体处理 > 用转码模板组处理的方式触发DRM加密转码。

解决方案:

您可以将DRM加密的转码模板组添加到工作流中,以工作流方式触发转码,详情请参见工作流

上传DRM证书失败,报错提示Can not found user info

问题现象:上传DRM证书时,报错NotUserInfoExist。错误码为 NotUserInfoExist

解决方案:

请确认您上传DRM证书的对应服务地域已经存在激活的点播系统bucket,激活点播系统bucket请参见管理存储Bucket

其他加密相关问题

如何确认当前视频使用的加密方式?

可通过控制台或 API 两种方式确认。方式一(控制台):登录视频点播控制台,在左侧导航栏选择媒资库 > 音/视频。找到目标视频,单击管理。在视频详情页单击视频地址页签,查看格式列。若为 mp4 通常未加密;若为 m3u8 且播放地址含加密参数,则为 HLS 标准加密。

方式二(API):调用 GetPlayInfo 接口,查看返回参数。Encrypt 字段表示是否加密(0:未加密,1:已加密)。若 Encrypt 为 1,查看 EncryptType 字段确认加密类型:AliyunVoDEncryption 表示阿里云视频加密(私有加密),HLSEncryption 表示 HLS 标准加密。视频未加密时,EncryptType 字段为空。

视频解密报错缺少 KMS 权限怎么办?

使用 HLS 标准加密时,若解密环节报错提示缺少 KMS 权限,请为点播服务角色授予 kms:Decrypt 权限,并在 RAM 权限策略中指定对应的 KMS 密钥资源,确保密钥与业务使用的密钥一致。

License 加密视频能否跨账号迁移?

不支持直接迁移。加密密钥与账号绑定,需在新账号中重新完成 License 加密,并同步更新播放器侧的 LicenseKey 配置。

DRM License 报错 InvalidParameter.ResourceNotFound 且仅部分机器受影响如何排查?

该报错通常是因为客户端未能正确获取或配置 DRM 证书(License)。虽然 License 本身有效,但受影响的机器未完成下载和配置步骤。请检查并确保所有客户端已按照文档要求正确下载并配置了 License 文件,可对比正常机器进行排查。

同一视频资源能否同时生成 DRM 加密和私有加密两种码流?

支持。同一个 videoId 下,DRM 加密码流和私有加密(阿里云视频加密)码流可以共存,无需针对同一份视频源重复上传。播放时需明确指定加密类型以匹配对应码流:

  • App 端播放私有加密码流,需配置 encryptType: 1
  • Web 端播放 DRM 加密码流,需设置 isDrm: true

Web 端 STS 播放出现异常怎么办?

当新旧转码流共存时,调用 GetPlayInfo 接口可能因旧的加密码流变为 Invisible 状态、且播放器不支持混合返回场景,而错误回退至私有加密码流,导致播放失败。

解决方法:调用 DeleteStream 接口删除该视频的私有加密流,仅保留 DRM 加密流后重试。

警告

删除视频流后无法恢复,请谨慎操作。

播放器 SDK 版本与浏览器内核不兼容怎么办?

旧版本的阿里云播放器 SDK(如 2.20.0)与高版本 Edge 浏览器内核存在兼容性问题,可能导致 HLS 加载异常,或关闭浏览器控制台后无法播放。

解决方法:将阿里云播放器 SDK 升级至最新版本,并确保已申请免费的 License 进行授权接入。