精华内容
下载资源
问答
  • widevine工具

    2018-09-04 17:01:59
    1. Widevine_DRM_Getting_Started 2. Widevine_DRM_Getting_Started_Devices
  • Widevine 适用于Widevine Cloud的Golang客户端API。 安装 go get github.com/alfg/widevine 用法 生成许可证密钥 // Set Widevine options and create instance. options := widevine. Options { Key : [] byte { ...
  • HLS Widevine

    2020-12-02 23:29:43
    <p>Apart from the test stream above, the only other example of HLS/Widevine I could find is the Disney+ streams (there is a link to master/variant stream example for this in #353 ). <p>One issue ...
  • Widevine Support

    2020-12-01 19:21:15
    <div><p>No widevine content decryption module support on SPECIAL BUILD – R67-10575.B; can you please add? This would allow Netflix and Amazon Prime video usage.</p><p>该提问来源于开源项目:...
  • Widevine-DL 加密的MPD清单内容下载器+解密器(不是Widevine密钥提取器!) 要求 ffmpeg,yt-dlp,aria2,widevine-l3-decryptor $ pip install ffmpeg yt-dlp aria2p 对于Linux用户,建议使用apt安装aria2。 $ ...
  • gmp-widevine:调整Widevine CDM以在Firefox中使用
  • <p>Shaka Packager can talk to Widevine Cloud Service or any key server that implements <a href="http://bit.ly/2vTG4oo">Common Encryption API for Widevine DRM</a> to fetch encryption keys. <p>That bit...
  • Rockchip Android Widevine开发指南
  • Support Widevine CDM

    2020-11-27 23:20:49
    which shows that Castlabs implemented Widevine support in their custom Electron build <p>https://electronjs.org/docs/tutorial/testing-widevine-cdm</p><p>该提问来源于开源项目:samuelmaddock/...
  • probleme widevine

    2020-12-08 21:25:56
    Je retourne dans catch up, cette fois, il me dit que widevine necessite une mise a jour.. toujours le meme message lors de la tentative d installation. J ai essayé avec plusieurs versions de widevine...
  • Widevine extract issue

    2020-12-05 12:51:56
    It occurs at first play of a video, when Widevine needs to be installed. It fails. I am guessing it has something to do with the fact that there are profiles with Greek characters on Netflix. But ...
  • Add Widevine support

    2020-11-30 15:05:34
    <div><p>This will allow to play songs on Spotify ...ve sent an email to Google about Widevine plugin but they didn't seem to respond. #174 </p><p>该提问来源于开源项目:wexond/desktop</p></div>
  • Widevine protected content

    2020-12-01 14:30:54
    m trying to play drm protected (widevine - EZDRM) content on my player, but got an infinite blackscreen loading on Firefox/Chrome. Live example : https://jordan-player.kinow.video/api/drm (can be down...
  • Widevine CDM license

    2020-12-09 07:46:46
    s Widevine binaries as the license doesn't permit this. I was able to extract linux binaries from the Chrome installer and it works for me but I'm wondering if it would be safer to ask users ...
  • Widevine_DRM 相关资料

    2017-04-11 12:55:40
    Chrome_EME_Changes_and_Best_Practices.pdf GMSTestSuite-UserGuide1.5-?D??.pdf Official_GMS_Certification.pdf Widevine API Mapping v1.0 approved.pdf ... Widevine_DRM_Proxy_Integration.pdf
  • Add support for Widevine

    2021-01-09 18:47:33
    <div><p>Adds both Widevine CDM support and also updates to support Manifests with ContentProtection being under the Representation tag, as that is how the widevine packager defaults to packaging.</p>...
  • a message: Widevine Content Decryption Module has crashed. And the playback will stop and need to reload the Widevine Content Decryption componment. In detail: the Chrome browser popup the message: &#...
  • Android WideVine

    千次阅读 2013-01-07 14:46:52
    Android Widevine 自 Honey Comb ( 对手机是Ice Cream Sandwitch 4.0) 推出后成为CTS强制测试选项,厂商必须支持。 无论是网络传输或者是消费类电子设备,Widevine针对数字媒体提供了视频格式无关的加解密方式。...

    Android Widevine 自 Honey Comb ( 对手机是Ice Cream Sandwitch 4.0) 推出后成为CTS强制测试选项,厂商必须支持。

    无论是网络传输或者是消费类电子设备,Widevine针对数字媒体提供了视频格式无关的加解密方式。

     

    截止2012年,已经有5.39亿台设备支持 Android Widevine.

    截止2012年, Widevine 推行无软件授权费的发行方式。

     

    主要支持平台:

    • Smart Phone
    • STB
    • Blue Ray player
    • Cloud TV
    • Game console.  ( Sony PS3, Nintendo Wii )
    • Desktop ( Windows, Mac)

    Widevine Security Level:

    • Level 1     Strictest  Mandatory factory provision
    • Level 2     Intermediate requirements
    • Level 3  Field Provision

    Android Widevine DRM Framework

    • 自Honey Comb版本开始引入Android
    • 受保护的音视频媒体播放
    • 框架配置需要和DRM机制协同
    • 利用插件体系结构,设备制造商可灵活配置以支持多DRM代理和机制
    • 数字内容存储需要完成Widevine DRM软件集成
    • 支持Widevine DRM 的Honey Comb版本最早发布于2011 Q2 

    Widevine DRM Provision:

    • Factory Provision
      • 单个设备需要唯一硬件识别号码
      • 单个设备需要生成唯一的keybox并写入设备
      • keybox provision在设备制造期间生成并写入
      • 设备制造商需要提供软件支持,以存取相关设备信息
      • Google提供API定义,设备制造商实现该接口
    • Field Provision
      • keybox provision通过OTA方式写入设备
    展开全文
  • Widevine on page plugin

    2020-12-09 07:05:44
    <div><p>basic onpage plugin for widevine, please review</p><p>该提问来源于开源项目:kaltura/mwEmbed</p></div>
  • Android Widevine概论.docx

    2019-06-26 09:04:12
    widevine是google在ICS版本上推出的一种DRM数字版权管理功能,依赖这个功能,就能从google指定服务器上下载经过google加密的版本文件。 他的背景如何?他如何去集成呢?文档有详细介绍
  • widevine DRM 介绍

    千次阅读 2018-04-03 23:07:46
    Widevine DRM介绍:https://blog.csdn.net/tody_guo/article/details/38345199Widevine DRM Android流程分析:https://blog.csdn.net/beautyfuel/article/details/56277988

    Widevine DRM介绍:https://blog.csdn.net/tody_guo/article/details/38345199

    Widevine DRM Android流程分析:https://blog.csdn.net/beautyfuel/article/details/56277988

    展开全文
  • <div><p>With the upcoming mass cull of Chrome CDM versions for Widevine, we will need to notify users that their Chrome version in unsupported. <p>Would we expect requestMediaKeySystemAccess to fail ...
  • <div><p>Add <code>WidevinePermissionRequest</code> when contents needs cdm and Widevine isn't yet enabled. So, user can install Widevine and restart(only on linux) via permission bubble. Content ...
  • Widevine stream doesnt play

    2020-12-01 15:49:45
    :path:/Widevine/getlicense?CrmId=tatasky&AccountId=tatasky&ContentId=400000015&SessionId=****&Ticket=**** :scheme:https accept:*/* accept-encoding:gzip, deflate, br...
  • This document specifies the mapping from Widevine APIs to OIPFAgent APIs. The goal is to provide a standardized method for application developers and TV manufacturers to support Widevine DRM.
  • support for widevine DRM?

    2020-11-28 00:29:08
    <div><p>I check edash_packager.c, NOT found code implement about widevine part.Only found fairplay and mss. Did it mean No widevine support?</p><p>该提问来源于开源项目:kaltura/nginx-vod-module...
  • EME Error with WideVine

    2020-12-09 01:04:23
    <p>I have a dash stream with DRM enabled both widevine and playready. <p>I'm trying to implement this API with videojs-http-streaming, and "videojs-contrib-eme" producing the following ...
  • m trying to implement Widevine playback using Shaka. I had no problem with Playready I just followed the <a href="https://shaka-player-demo.appspot.com/docs/api/tutorial-drm-config.html">documentation...
  • Need help with widevine

    2020-12-29 07:53:39
    <p>How do we get Widevine working again in Chromium v84? <p>I'm hoping somebody here will see this and be willing to lend a hand. Here's the main RPi Forum thread to start you off: ...
  • Widevine DRM介绍

    千次阅读 2019-01-05 16:00:54
     Widevine DRM介绍 转载:https://blog.csdn.net/beautyfuel/article/details/56277988 感谢他的整理,我这里就是一个copy。 DRM in Android DRM,英文全称为Digital Rights Management,译为数字版权管理。...

     

                                          Widevine DRM介绍

    转载:https://blog.csdn.net/beautyfuel/article/details/56277988

    感谢他的整理,我这里就是一个copy。

    DRM in Android

    DRM,英文全称为Digital Rights Management,译为数字版权管理。它是目前业界使用非常广泛的一种数字内容版权保护技术。随着知识产权保护受重视的程度日益提高,快速攻城略地Android智能手机是如何利用DRM来有效保护数字版权的呢?本文将通过剖析Android中的DRM框架以及相关工作流程来向读者揭示DRM的神秘面纱

    一  DRM架构介绍

    严格来讲,DRM不是一项技术,而是一类技术。很多机构和联盟都提出过相应的DRM标准[1]。例如Open Mobile Alliance推出的OMA DRM、Marlin Developer Community提出的Marlin DRM,而Google则通过收购Widevine公司推出了Widevine DRM。

    从Android智能终端来看,Google的原生Android(Android Open Source Project,简称AOSP)系统仅仅集成了OMA DRM V1的一部分功能,它远未构成一个完整的DRM解决方案。在这种情况下,设备厂商只能根据情况选择合适的DRM解决方案并集成到Android平台中来。例如,手机厂商可以通过Google的授权以获取Widevine DRM对应的软件包从而将Widevine DRM集成到自己的产品中。

    为了方便设备厂商的集成,Android设计了一个通用的DRM软件框架,不同的DRM解决方案可通过Plugin的方式集成到Android系统中。图1所示为Android中的DRM软件架构

    图1  Android中DRM软件架构

    由图1可知:

    • DRM Framework API模块是Framework层暴露给App的接口。该模块中最主要的类是DrmManagerClient。
    • DRM Framework API模块通过Binder机制和位于drmserver进程(以Android 4.1为例,drmserver的代码位于framework/av/drm/drmserver)中的DRM Manager模块通信。DRM Manager加载并管理系统中所有的DRM插件。
    • DRM Plugins是真正实现权限管理、数字内容解密等工作的模块。根据DRM标准的不同,这些Plugins的实现亦不相同。另外,一个手机可能会集成多个DRM Plugin。这是因为媒体文件如果采用不同的DRM解决方案进行加密的话,手机在播放它们时,DRM Manager需找到对应的DRM Plugin以进行解密。

    图2所示为DRM架构中几个重要的类及其关系。

    图2  Android中DRM架构中重要类图

    由图2可知:

    • FileSource代表一个媒体文件。如果媒体文件中有DRM信息,它将创建一个DrmManagerClient对象。该对象用于处理媒体文件中和DRM相关的操作。DrmManagerClient内部通过DrmManagerClientImpl和位于drmserver进程中的DrmManagerService进行跨Binder通信。
    • MediaExtractor类封装了用于解析媒体文件中元数据的相关函数。对于DRM来说,系统会根据的DRM种类创建不同的MediaExtractor子类。和FileSource类似,MediaExtractor也通过DrmManagerClient和drmserver通信。
    • DrmManagerService运行于drmserver进程中,它是整个DRM框架的核心。DrmManagerService借助DrmManager管理系统中的DRM插件。
    • DRM插件必须实现IDrmEngine接口。为了方便开发者,Android提供了DrmEngineBase类,该类继承了IDrmEngine接口并实现了一些通用的接口函数。这样,DRM Plugin只需要从DrmEngineBase派生即可。
    • 如前文所述,DRM框架中真正完成DRM处理工作的是DRMPlugins,这些Plugins大都需要得到相关机构的授权后才能得到相应的专利代码包。图1中列出了三个DRM Plugin。其中FwdLockEngine(OMA-V1的Forward Lock)由AOSP提供。Marlin Plugin和WidevinePlugin则需要相关DRM机构提供专利代码包。

    下面来看看Android中DRM的工作流程。

    二  DRM工作流程介绍

    2.1  DrmManagerService的初始化

    DRM的工作流程和多媒体播放密切相关。首先来了解一下DrmManagerService的创建过程,相关流程如图3所示:

    图3  DrmManagerService启动流程

    由图3可知:

    • DrmManagerService实例对象由drmserver进程在main函数中调用instantiate创建。
    • DrmManagerService内部会创建一个DrmManager实例对象并调用loadPlugins来加载设备可能提供的DRM Plugin。DRM Plugin通过动态库的方式集成到设置中去。Android 4.1中有两个目录可存放DRM Plugin。一个是/vendor/lib/drm/,例如Widevine对应的libdrmwvmplugin.so一般放在这个目录中。另一个目录是/system/lib/drm/。每一个DRM Plugin对应为一个IDrmManager实例。所有被加载的DRM Plugin由DrmManager来统一管理。
    • DrmManagerService最后将通过addService把自己注册到Binder系统中以为广大客户端服务。

    下面来介绍DRM的工作流程。Android支持的DRM播放方式分为两种:

    • 一种是基于基本码流的(Elementary Stream Based,简称ES Based)播放方式。目前Widevine DRM、Marline DRM都属于这一种类型。
    • 另一种是基于容器的(Container Base)播放方式,目前OMA DRM支持这种方法。

    这两种不同的方式在播放流程上不尽相同。下文将以一个播放具有DRM保护的MP4文件为例,介绍DRM的工作流程。首先来看ES BasedDRM媒体播放工作流程

    2.2  ES BasedDRM播放流程

    ES Based DRM意味着每一个数据基元在播放时都需要解密。这种DRM的媒体文件或流可以使用普通方式正常读取,但读取出来的数据是经过加密的。如果不能对数据正确解密,那么该数据将无法正常播放。

    在播放媒体文件之前,播放器首先要识别该文件是否被DRM保护。如果受DRM保护的话,还行初始化对应的DRM插件。这部分工作所涉及的流程如图4所示:

    图4  ES BasedDRM插件初始化

    由图4可知:

    • MediaExtractor首先通过sniff函数检查媒体内容的类型,然后创建相应的Extractor来分析数据。在DRM检查开启的情况下,SniffDRM函数就会被用来检查文件是否有DRM控制。
    • SniffDRM将调用DataSource中的DrmInitialization函数,从而在DataSource中创建一个DrmManagerClient实例。如此,MediaExtractor就将DataSource与DrmManagerService联系起来。
    • DrmInitialization函数非常重要,其主要工作包括:

    (1)调用openDecryptSession,该函数内部会根据文件中的DRM信息来初始化正确的DRM Plugin(Widevine、OMV,还是其他DRM类型)。

    (2)创建DecryptSession,并将DRM信息封装在DecryptHandler实例中传给FileSource。

    • DrmInitialization之后,SniffDRM会通过DecryptHandler来判断该文件是否有DRM控制,并分析出该DRM是ES Based,还是Container Based。如果属于ES Based DRM,MediaExtractor会创建一个DRMExtrator,而在DRMExtrator中,会创建一个MPEG4Extractor。

    MediaExtrator创建完后,播放器即可开始播放。ES Based DRM播放相关流程如图5所示:

    图5  ES Based的DRM媒体文件播放流程

    图5所示的流程图可分为三个阶段:

    • 第一个阶段是资源初始化过程。该过程中,媒体播放器将通过getTrack以后获取一个媒体文件中代表媒体数据的DRMSource实例,DRMSource只负责DRM的控制和解密,而实际媒体数据的分析仍交给MPEG4Extractor来完成。对于播放器来说,它只和DRMExtrator和DRMSource交互。另外,在这一阶段中,initializeDecryptUnit函数将初始化解密相关的资源。
    • 第二阶段就是媒体数据读取,针对每一个数据基元,DRMExtrator都会先通过MPEG4Extractor取得未解密的原始数据,然后通过decrypt函数来请求DRM Plugin进行解密。解密后的数据会被放到另外一处缓存中供Codec使用。如果解密失败,decrypt将会返回错误,故播放器将无法解析这些数据。
    • 媒体播放完毕后将释放播放资源。和DRM相关的资源将由finalizeDecryptUnit来释放。

    回顾上述流程,对ES Based DRM的特点是,不论用户是否有权限,播放器都能读取到媒体数据。

    下面来看看Container Based DRM的播放流程。

    2.3  Container Based DRM播放流程

    和ES Based DRM截然不同的是Container Based DRM。受控于这种DRM管理的媒体文件在被读取时就会进行DRM的权限验证,如果验证失败,则无法从中读取到数据。故Container Based DRM最关键的是其pread接口,相关流程如图6所示:

    图6  ContainerBasedDRM播放流程图

    如图6可知:

    • 首先要进行的工作仍是判别数据格式和DRM类型并创建DrmManagerClient。这一过程和ES Based DRM流程相同,此处不拟赘述。
    • 接下来需创建MediaExtractor实例。与ES Based DRM不同的是,Container Based DRM在播放时无需创建DRMExtractor,而是直接创建MPEG4Extractor,并在该MediaExtractor中设定DRM的标识。
    • Container Based DRM关键在于pread函数。当MediaExtractor从FileSource中提取数据时,readAt最终通过DrmManagerClient的pread函数来访问DrmManager以从中读取数据。DrmManager将调用具体的DRMPlugin实现的pread。数据的权限检查和解密的工作都在该DRMPlugin完成。如果DRM解密失败,pread将不会得到数据。

    上文介绍了Android平台中DRM播放的大体流程。下面来看看Google主推的Widevine DRM。

    三  Widevine DRM介绍

    2010年12月,Google不惜重金将视频数字版权管理软件公司Widevine招安。现在看来,Google的这一招为Android阵营增添了一员上将,有Widevine坐阵中军,Android就有实力在数字内容这片战场上与已故乔帮主的苹果一较高下。

    在收购Widevine之前,Android没有系统的数字版权保护机制,而苹果则在iTunes、iPod时代就建立了完善的版权体系,这让很多内容提供商更愿意在iOS上发布自己的数字内容,从而使得iOS的生态系统更加丰富和成熟。Widevine的引入弥补了Android在这方面的短板,它是帮助Android成为当今移动OS霸主的功臣之一。

    Android从3.0开始就支持Widevine,这距离Google收购Widevine仅仅过去了三个月,可见Google对于数字版权保护的迫切性。现在Widevine已经成为GMS(Google Mobile Service)中必备的内容,所有想要得到GMS的手机厂商,都需要根据GMS的要求搭载Widevine。

    作为Google帐下的爱将,Google为支持Widevine也煞费苦心。目前Android平台中播放Widevine DRM媒体有两种方法:

    • 第一种方法和前文介绍的一样。Widevine DRM按照ES Based的流程进行播放。但和一般DRM不同的是,Widevine使用的Extractor是WVMExtractor,而不是DRMExtractor。
    • 第二种方法是MediaCodec模式,相关结构如图7所示。

    图7  Widevine Crypto Plugin

    由图7可知:

    • MediaCodec、MediaCrypto以Java API的形式直接暴露给应用层。这样,应用层能够控制解码、解密的过程。
    • Crypto Plugin是实际完成解密的模块,其结构和前文提到的DRM Plugin有所不同。

    需要特别指出的是,Android目前对MediaCodec模式支持还不是很完善。根据笔者的试验,一些市面上流行的高端Android 4.1手机还不支持这种播放方式。

    另外,Widevine的代码结构大体可分为三部分:

    • 第一部分是Android中的基本框架,包括WVMExtractor等。这部分代码在AOSP中都可以看到,属于Open Source的内容。这部分代码大多没有实质性内容,相关功能的实现封装在第二部分的专利代码包中。
    • 第二部分是Widevine的专利代码包。这部分代码需要得到Google授权后才能得到。该包提供了很多Widevine专用库用于完成Widevine DRM权限检查和解密。同时,它还提供了一些Sample App用于测试。
    • 第三部分是手机厂商自身的安全认证。Widevine是一个很强的版权控制体系,它甚至可在硬件层与厂商的安全机制绑定。很多知名的手机厂商都在boot等底层中加入自己的安全机制,只有通过可信赖的boot loader进行刷机才能得到具有正常权限的手机软件,并可以使用Widevine。这也是为什么很多破解的手机无法使用Widevine的原因。
    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 572
精华内容 228
关键字:

Widevine