0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

DRM Kit数字版权保护服务介绍

HarmonyOS开发者 来源:HarmonyOS开发者 2025-10-15 13:58 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、概述

DRM Kit (Digital Rights Management Kit,数字版权保护服务)提供了DRM加密节目授权解密的功能,包括DRM插件管理、DRM证书管理、DRM许可证管理、DRM节目授权、DRM节目解密等功能,可实现DRM解决方案的集成、DRM解决方案的证书下载、节目的授权及解密。

95fb1ece-a4ef-11f0-8c8f-92fbcf53809c.png

核心功能

96576256-a4ef-11f0-8c8f-92fbcf53809c.png

二、DRM Kit 的核心亮点

支持许可证及解密会话管理

占用系统资源少(线程、内存),支持 pipeline 拼装、插件化扩展(source/demuxer/codec)。

支持安全视频通路

支持安全视频通路,实现安全解密、安全解码、安全渲染、安全输出等。

三、DRM 工作流程

96b49778-a4ef-11f0-8c8f-92fbcf53809c.png

工作流程主要包括:

1. 生成获取mediaKeySystem设备证书的请求。

2. 处理获得的设备证书请求的响应。

3. 生成媒体密钥请求。

4. 处理媒体密钥响应。

5.将MediaKeySession设置到Media Kit或AVCodec Kit,用于支持DRM节目解密。

6. 采用AVCodec Kit时,可以设置视音频数据帧的cencinfo,并设置到AVBuffer中,在调用PushInputBuffer的时候实现视音频数据帧的解密、解码。

四、开发示例

1. 创建MediaKeySystem实例

MediaKeySystem *mediaKeySystem =nullptr;
ret =OH_MediaKeySystem_Create("com.wiseplay.drm", &mediaKeySystem);
if(ret != DRM_ERR_OK || mediaKeySystem ==nullptr) {
 printf("OH_MediaKeySystem_Create failed.");
}

2. 创建MediaKeySession实例

MediaKeySystem *mediaKeySystem =nullptr;
ret =OH_MediaKeySystem_Create("com.wiseplay.drm", &mediaKeySystem);
if(ret != DRM_ERR_OK || mediaKeySystem ==nullptr) {
 printf("OH_MediaKeySystem_Create failed.");
}

3. 生成媒体密钥请求与处理媒体密钥响应

#defineMAX_DRM_MEDIA_KEY_RESPONSE_BUF_SIZE 24576// 24576: (2 * 12 * 1024)
DRM_MediaKeyRequest mediaKeyRequest;
DRM_MediaKeyRequestInfo info;
// initData对应码流中的pssh数据,请按实际数据填入。
unsignedcharinitData[512] = {0x00};
memset(&info,0,sizeof(DRM_MediaKeyRequestInfo));
info.initDataLen =sizeof(initData);
info.type = MEDIA_KEY_TYPE_ONLINE;// MEDIA_KEY_TYPE_ONLINE: 在线媒体密钥请求类型; MEDIA_KEY_TYPE_OFFLINE: 离线媒体密钥请求类型。
if(sizeof("video/mp4") <= sizeof(info.mimeType)) {
    memcpy(info.mimeType, "video/mp4", sizeof("video/mp4"));
}
if (info.initDataLen <= sizeof(info.initData)) {
    memcpy(info.initData, initData, info.initDataLen);
}
if (sizeof("optionalDataName") <= sizeof(info.optionName[0])) {
    memcpy(info.optionName[0], "optionalDataName", sizeof("optionalDataName"));
}
if (sizeof("optionalDataValue") <= sizeof(info.optionData[0])) {
    memcpy(info.optionData[0], "optionalDataValue", sizeof("optionalDataValue"));
}
info.optionsCount = 1;
ret = OH_MediaKeySession_GenerateMediaKeyRequest(mediaKeySession, &info, &mediaKeyRequest);
if (ret != DRM_ERR_OK) {
    printf("OH_MediaKeySession_GenerateMediaKeyRequest failed.");
}
/*
  应用通过网络请求DRM服务,获取媒体密钥响应mediaKeyResponse,将响应传到OH_MediaKeySession_ProcessMediaKeyResponse,
  若是离线媒体密钥响应处理,则返回离线媒体密钥标识mediaKeyId,请根据实际的数据和长度传入。
*/
unsigned char mediaKeyId[128] = {0x00};
int32_t mediaKeyIdLen = 128;
// 媒体密钥响应长度最大为MAX_DRM_MEDIA_KEY_RESPONSE_BUF_SIZE,请按实际数据输入。
unsigned char mediaKeyResponse[MAX_DRM_MEDIA_KEY_RESPONSE_BUF_SIZE] = {0x00};
int32_t mediaKeyResponseLen = MAX_DRM_MEDIA_KEY_RESPONSE_BUF_SIZE;
ret = OH_MediaKeySession_ProcessMediaKeyResponse(mediaKeySession, mediaKeyResponse,
    mediaKeyResponseLen, mediaKeyId, &mediaKeyIdLen);
if (ret != DRM_ERR_OK) {
    printf("OH_MediaKeySession_ProcessMediaKeyResponse failed.");
}

4. 销毁MediaKeySession实例

ret = OH_MediaKeySession_Destroy(mediaKeySession);
if(ret != DRM_ERR_OK) {
 printf("OH_MediaKeySession_Destroy failed.");
}

5. 销毁MediaKeySystem实例

ret = OH_MediaKeySystem_Destroy(mediaKeySystem);
if(ret != DRM_ERR_OK) {
 printf("OH_MediaKeySystem_Destroy failed.");
}

5、参考资料

DRM Kit 官方文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/drm-kit

基于AVPlayer播放DRM节目(ArkTS):

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/drm-avplayer-arkts-integration

基于AVCodec播放DRM节目(C/C++)

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/drm-avcodec-integration

6、结语

DRM Kit 提供了DRM加密节目授权解密的功能,保护版权所有者的权利,防止未经授权的复制和传播。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 视频
    +关注

    关注

    6

    文章

    1999

    浏览量

    74638
  • 加密
    +关注

    关注

    0

    文章

    319

    浏览量

    24618
  • DRM
    DRM
    +关注

    关注

    0

    文章

    48

    浏览量

    15566

原文标题:【HarmonyOS-媒体技术-DRM Kit】数字版权保护开发指南

文章出处:【微信号:HarmonyOS_Dev,微信公众号:HarmonyOS开发者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RK3399 DRM使用方法介绍

    1、rk3399drm使用介绍  DRM是一个内核级的设备驱动,既可以编译到内核中也可以作为标准模块进行加载。DRM最初是在FreeBSD中出现的,后来被移植到Linux系统中,并成为
    发表于 11-08 17:49

    基于DRM 技术的IPTV版权保护模型研究

    随着网络的迅猛发展, IPTV 通过网际协议( IP) 来提供包括数字电视节目在内的多种数字多媒体服务及增值业务。由于IPTV 的核心是内容传播,所以内容的版权管理是IPTV的一个关键
    发表于 06-25 14:48 0次下载

    音频数字水印在版权保护中的应用

    本文将数字水印技术应用于数字产品的版权保护中,可以在MP3、CD 等作品中嵌入水印,在人耳不能察觉的情况下达到版权
    发表于 08-10 11:10 0次下载

    基于移动Agent的DRM系统的研究

    随着互联网和多媒体技术的飞速发展,DRM数字版权管理)日渐引起人们的重视。传统的DRM系统更多的是考虑如何保护
    发表于 09-08 15:52 28次下载

    基于可信计算平台的DRM应用研究

    数字版权保护技术DRM已经成为数字网络环境下数字内容交易和传播的重要技术,用于
    发表于 03-01 15:16 13次下载

    HDCP版权保护技术解析

    HDCP版权保护技术解析 HDMI技术另一大特点,就是具备完善的版权保护机制,因此受到了以好莱坞为代表的影视娱乐产业的广泛欢迎。例如美
    发表于 10-20 14:52 2385次阅读

    数字版权管理面面观

    数字版权管理面面观 引言 DRM编码的CD 在2005年,索尼向消费者售出了数百万张“特殊”音乐
    发表于 07-31 16:57 1148次阅读

    基于数字指纹的数字版权标识技术

    针对互联网领域版权保护面临的挑战,介绍了一种新的版权公共服务新模式:数字
    发表于 09-24 15:26 0次下载
    基于<b class='flag-5'>数字</b>指纹的<b class='flag-5'>数字</b><b class='flag-5'>版权</b>标识技术

    版权保护专业加密芯片方案

    版权保护专业加密芯片方案
    发表于 10-18 12:59 0次下载
    <b class='flag-5'>版权</b>的<b class='flag-5'>保护</b>专业加密芯片方案

    结合可视密码和数字水印的图片版权保护方案

    数字作品的拷贝较为容易,倘若多方拥有版权数字作品在多用户合作之间,若其版权问题处理不当,势必会引起各种矛盾和商业纠纷等问题。设计一种结合可视密码、
    发表于 12-11 17:04 0次下载
    结合可视密码和<b class='flag-5'>数字</b>水印的图片<b class='flag-5'>版权</b><b class='flag-5'>保护</b>方案

    区块链技术:版权保护最佳“武器”

    “过去十多年我投资音乐产业可谓‘不亏不赚’,盗版倒是赚得盆满钵满。版权问题不解决,音乐行业难以壮大。”IDG资本全球董事长熊晓鸽在2018中国网络版权保护大会上谈起版权
    发表于 04-28 16:25 638次阅读

    如何在Android下实现DRM以及与其适配的Secure Video Path的要点

    DRM(Digital Rights Management)是一个成熟的操作系统中必须实现的功能。DRM提供的功能正如其字面的意思,可以帮助保护数字
    的头像 发表于 05-09 11:34 1.6w次阅读
    如何在Android下实现<b class='flag-5'>DRM</b>以及与其适配的Secure Video Path的要点

    净化网络环境!可信数字内容版权服务解决方案发布

    ,构建可信数字内容服务阿里云可信数字内容版权服务,是区块链与媒体DNA进行融合连接而成的一体化版权
    发表于 12-21 16:44 418次阅读

    什么是DRM广播?DRM接收器解决方案分享

    什么是DRM广播?DRM(Digital Radio Mondiale)是一种全球通用的开放式数字广播标准,DRM标准适用于所有广播频段,长波、中波、短波、调频等。
    的头像 发表于 09-15 10:29 1.3w次阅读

    DRM技术的工作原理

    数字版权管理(DRM)是一种用于控制数字内容(包括音乐、电影、电子书和软件)的使用和分发的技术。DRM的主要目的是确保
    的头像 发表于 06-13 09:21 5279次阅读