video output protection内容输出保护技术

本文介绍了HDCP技术的基本概念及其工作原理,包括其在数字内容保护中的应用,特别是高清电影和电视节目的反盗版措施。此外还讨论了与HDCP相关的其他内容保护系统。

转自:http://www.baike.com/wiki/HDCP%E6%8A%80%E6%9C%AF

HDCP技术

HDCP的全称是High-bandwidth Digital Content Protection,也就是“高带宽数字内容保护”。简单的说,HDCP就是要将通过DVI接口传递的数字信号进行加密,多媒体内容的发出端(电脑、DVD、机顶盒等)与接受端(显示器、电视机、投影机等)之间加上一道保护。这样一层保护主要并不是用来防止通过数字信号进行不合法的复制,而是将数字信号内容进行加密,使得不合法的复制无法无法得到准确的内容、满意的效果。

编辑摘要

目录

[隐藏 ]
1 定义
2 HDCP技术工作原理
3 HDCP技术的硬件要求
4 HDCP技术应用
5 HDCP技术密钥
6 数字内容保护:HDCP兼容测试大揭秘
7 HDCP显卡
8 显卡支持HDCP需要什么条件?
9 支持HDCP技术的显卡介绍
10 HDCP数字内容保护技术的发展
11 HDMI技术与HDCP工作原理

HDCP技术 - 定义

  HDCP是High-bandwidth Digital Content Protection的缩写,中文可称作“高带宽数码内容保护”。 

  HDCP技术是由好莱坞与半导体界巨人Intel合作发开,它可以实际运用在显卡、DVD播放机等传输端,以及显示器、电视机、投影机的接收端之间。是高清电影、电视节目的重要反盗版技术,不支持HDCP协议的显示器无法正常播放有版权的高清节目。 

  DVD之后的高清电影节目采用了HDCP和AACS反盗版技术,蓝光和HD DVD都使用了这种反盗版技术,高清电视(HDTV)也会使用。使用了HDCP和AACS反盗版技术后电影节目只能在支持HDCP的设备上正常播放,否则只能看到黑屏显示或者低画质显示(清晰度大约只有正常的四分之一),也就便失去了高清的价值。其中AACS是加密技术,同时被用在HD DVD和蓝光光盘当中,保护光盘中的视频内容无法正常复制出来在其它地方播放。 

  而HDCP协议是用来防止视频内容在传输的过程被完整的复制下来。这种技术并不是让数字讯号无法被不合法的录制下来,而是将数字讯号进行加密,让不合法的录制方法,无法达到原有的高分辨率画质。例如蓝光影碟机在播放高清碟片时无法同时录下清晰的节目,在计算机上播放碟片时无法清晰的录制显示器上的节目。HDCP从始到终都保护视频信号,也就是说整套播放系统中每一个环节都必须支持HDCP协议,如果显示器不支持HDCP协议,那么就无法正常播放高清节目,只能看到黑屏或者低画质的节目。要支持HDCP协议,必须使用DVI、HDMI等数字视频接口,传统的VGA等模拟信号接口无法支持HDCP协议。当使用VGA等模拟信号接口时,画面就会下降成为低画质,或者提示无法播放,从而失去高清的意义,防止了盗版。需要说明的是,HDMI接口内嵌了HDCP协议,带有HDMI接口的显示器都支持HDCP协议。但是并不是带DVI接口的液晶显示器都支持HDCP协议,必须经过带有相应硬件芯片,通过认证的显示器才行。

HDCP技术 - HDCP技术工作原理

  通俗的话来说,HDCP技术实际上就是一种加密技术,和普通的加密技术不同,HDCP可以说在纵向和横向两方面对视频进行加密,首先我们来看看纵向,那就是计算机硬件要支持HDCP技术,这就需要显示器,显卡,和光驱这三部分。蓝光和HD DVD光驱都加入了对HDCP的支持,用于保护光盘中的视频内容无法正常复制出来在其它地方播放。 

  在HDCP运作的具体过程中,发送端和接受端都存储一个可用密钥集,这些密钥都是秘密存储,发送端和接受端都根据密钥进行加密解密运算,这样的运算中还要加入一个特别的值KS(视频加密密钥)。同时HDCP的每个设备会有一个唯一的序列号:KSV,由20个“1”和20个“0”组成。发送端和接受端的密码处理单元会核对对方的KSV值,以确保连接是合法的。  

  HDCP的加密过程会对每个象素进行处理,使得画面变得毫无规律、无法识别,只有确认同步后的发送端和接受端才可能进行逆向处理,完成数据的还原。在解密过程中,HDCP系统会每2秒中进行一次连接确认,同时每128帧画面进行一次发送端和接受端同步识别码,确保连接的同步。 

  由于HDCP的理念是非完全的防止复制而是不允许复制“高清”内容。所以如果显示设备不具有此功能也不是完全无法欣赏到“蓝光”和“HD DVD”的内容,只是得不到“高清”的效果。事实上,“蓝光”和“HD DVD”允许通过模拟接口输出经过压缩了的画面,这样的画面达不到“高清”的显示效果。一代微软视窗操作系统Windows Vista也采用相似的机制,进行数字内容的版权保护。.


转自:http://baike.baidu.com/view/1764538.htm


CGMS

数字拷贝具有100%的保真性,而模拟电影每拷贝一次质量就下降一次。为了保护软件、电影、音乐版权者的利益,由“4C”(Intel, IBM, Matsushita, 和Toshiba)协同拷贝保护技术工作组(CPTWG)共同开发了“内容保护系统体系”(CPSA-- Content Protection System Architecture),为DVD家族产品建立了内容保护和访问控制的框架,它涵盖了加密、水印、模拟和数字输出保护等技术。DVD的拷贝保护有如下几种:
1) 模拟拷贝保护系统 (Analog CPS—Analog Copy Protection System)
Macrovision公司开发的模拟拷贝保护系统是用来防止从连续电影的数字传输或数字复制品(磁带、光盘)上进行模拟拷贝的技术。当从DVD光盘上转录视频节目到录像带时,该技术能产生图像畸变。在播放DVD光盘时,光盘上的编码的触发位会激活播放机中Macrovision数模芯片,把拷贝保护加到DVD播放机的 模拟信号输出端,使录像机输入端信号中加入macrovision激活的APS信号,录像带的影像就变得模糊或产生畸变。
2) 拷贝代次管理系统(CGMS--Copy Generation Management System)
CGMS/A是用来控制允许的合法模拟拷贝代次的技术。DVD光盘上含有CGMS信息,标明是否可以拷贝。CGMS/A信息内置在输出视频信号(NTSC的21行)中,CGMS工作时,进行拷贝的设备必须能识别CGMS。CGMS/A数据优先于Macrovision防拷贝信号。
CGMS/D是数码拷贝保护系统,在设计上是针对下一代数字电视和数码视频刻录机(DVR)的。数码节目内容将会标有“不准拷贝”或“拷贝一次”等标准CGMS标识。数码视频刻录装置将只能刻录未标有“不准拷贝”标识的节目。如果节目源有“拷贝一次”标识,刻录装置将会改变节目内含的CGMS标识成“不准拷贝”。
CGMS(continuous glucose monitoring system) 持续的血糖监测,动态血糖检测系统
对于糖尿病患者,可采用“双C 治疗”,即CGMS+CSII(continuous subcutaneous insulin infusion]胰岛素皮下持续输注)。CGMS优于传统血糖检测,其作用有:与常规血糖检测互补,补充HbA1c的盲区,发现高血糖和低血糖,评价糖耐量受损情况,了解MAGE及漂移情况,评价糖尿病并发症,联合降糖药治疗胰岛素。 [1]
3) 内容扰乱系统(CSS--Content Scrambling System)
内容扰乱系统 (CSS)是一种防止直接从盘片上复制视频文件的 数据加密和鉴定方法。每个获得许可的人都能得到一把 密钥,它从 加密光盘上的密钥组成的母集中取出来。 只要在以后的光盘上去除该密钥,许可就失效了。CSS解密算法与 驱动器单元交换密钥,以生成加密用的密钥。这一生成的密钥用来扰乱盘片密钥与影视节目密钥的交换。影视节目密钥用来解密盘片上数据。有CSS电路的DVD播放机先对数据进行解密,然后再解码和播放。如果是计算机,那么DVD解码硬件和软件必须加入一个CSS解密模块。所有DVD-ROM 驱动器都有一个附加 固件,可以与计算机中的CSS模块交换鉴定和解密钥匙。1999年10月,CSS算法被人破解,并被散布于网上,引发了无休止的法律争端。
4) 预录媒体内容保护 (CPPM-- Content Protection for Prerecorded Media)
CPPM 只用于 DVD-Audio光盘,它是在CSS技术基础上经过改进的。密钥放置在导入区,但与CSS不同,在扇区标头中没有节目密钥。在控制区存有每集56位的"唱片集标识符",类似CSS的光盘密钥。媒体密钥 数据块按行列罗辑排序,在鉴定过程中从播放机密钥的专用集中生成解密钥。如果播放机密钥撤除,则媒体密钥 数据块将导致无效钥值。媒体密钥 数据块可以更新,以删除已泄密的密钥。鉴定方案与CSS相同,因此现有设备无须任何改动.DVD音频/视频混合光盘可以同时包含 CSS 和 CPPM 内容。
5) 可录媒体内容保护 (CPRM-- Content Protection for Recordable Media)
CPRM 把可录媒体与录制相联系.所有1999年后制造的DVD刻录机都支持这一方案.每张空白的可录DVD光盘上有唯一的64位盘片ID标识符,放置在BCA上 。在光盘上刻录要保护的内容时, 它可从盘片ID得到的56位 C2密码对内容进行加密。播放时,从BCA中读取盘片ID,然后生成盘片内容解密所需要的密钥。如果该光盘的内容被复制到其他媒体,那么盘片ID将会丢失或出错,数据将无法解密.
6) 数字拷贝保护系统(DCPS-- Digital Copy Protection System)
为了让各部件之间进行数字连接,防止数字拷贝,消费电子协会得到五份数字拷贝保护系统方案.最先的方案是DTCP(数字传输内容保护),其重点在于IEEE 1394/FireWire,但也可用于其他协议。 另一项5C草案于1998年2月由 英特尔、索尼、日立、松下和东芝制订。1999年中期,索尼推出DTCP芯片。有了DTCP,以数字方式连接的设备,如DVD播放机和数字电视或数字录像机,就可以交换鉴证 密钥建立安全的通道。DVD播放机对已编码的音频/视频信号进行加密,然后发送给接收设备,由接收设备进行解密。这就防止那些未鉴证的已连接设备窃取信号。没有拷贝保护的内容则不进行加密。新的内容(如新的光盘或广播节目)以及含有更新的 密钥和撤销的列表(用来识别未经授权的或已泄密的设备)的新设备也可获得安全特性。一个很有竞争实力的建议是由Zenith和Thomson提出的XCA(扩展内容获取)与DTCP相类似。但其数字接口可单向工作(如EIA-762 RF remodulator标准),所采用的智能卡能获得安全特性。其他的建议还有由MRJ Technology, NDS, 和飞利浦制订的建议。所有五种建议中,内容中使用GMS方式的标志,如“随意拷贝”, “拷贝一次”,“不准拷贝”,也有“不准再拷贝”。只能再生音频和视频的数字设备只要能证明它只是回放设备就可以接收所有数据。 数字刻录设备所接收的数据都是那些被标识为可拷贝的,如果来源的标志是“拷贝一次”,那么该设备必须把标志改写为“不准拷贝”或“不准再拷贝”。DCPS是为下一代数字电视、数字接收机和数字视频刻录机设计的。它要求新的DVD播放机带有数字连接器(如在DV设备上的接口)。这些新产品最早也要到2003年才出现。由于加密是由播放机完成的,因而现有的盘片无须更改。
前四种拷贝保护方案可供光盘制作厂商选择。电影解密可供硬件和软件回放厂商选择: 一台无解密能力的播放机或计算机只能播放未经加密的影片。CPRM由DVD刻录机自动处理。DCPS是由DVD播放机完成的,而不是由光盘开发商完成的。
这些拷贝保护方案的设计只是用来防止一些偶尔的拷贝行为(影片厂商声称因为拷贝行为让他们丢失了几十亿美元的收入),其目的只是“让诚实的人诚实”。 即便开发拷贝保护标准的人都承认他们不会停止研究装备精良的盗版设备。
影片厂商已敦促立法让破解DVD拷贝保护成为非法行为。世界知识产权组织(WIPO)的版权条约和表演及语音条约在1996年12月通过,美国的数字千年版权行动(DMCA) 在1998年10月通过立法。 如今在美国和其他一些国家,破解拷贝保护的软件是违法的。 DVD版权保护委员会立法组主席认为,“关于视频方面, 将来的立法除了要对破解行为予以处罚外,也应该允许一些正当的家庭刻录行为”。
水印检讨小组(WaRP)是拷贝保护技术工作组(CPTWG)之下的一个 数据隐藏小组(DHSG)的接任者,使用DVD论坛对DVD-Audio建议的音频水印系统。原先7种视频水印被合并成为三种: IBM/NEC, 日立/先锋/索尼, Macrovision/Digimarc/飞利浦。1999年2月17日,前两个组合并成立了“银河小组”。后一组称他们的技术为“千年”。水印就是在每一数字音频或视频帧上加入人眼或耳察觉不到的噪声。回放和刻录设备可以识别水印标签,以防止拷贝,而不管信号是用数字或模拟来传输的,或是经过视频处理。新的播放机和其他设备要求支持水印,但是DVD论坛打算让水印光盘与现有的播放机兼容。
日本音乐著作权协会(JASRAC)与日本唱片协会(RIAJ)于2003年1月22日宣布,通过在音乐数据中嵌入电子水印的实用性试验,已经对其效果进行了确认。该试验是在2002年底进行的。试验结果显示,在下载的多数文件中都能正确地检测出嵌入的电子水印数据,并能完整地将嵌入数据取出。两家协会针对此次试验结果均得出了“电子水印可以投入实用”的结论。今后可用于掌握音乐数据在互联网上的拷贝次数与广播电台的使用频率。该项技术也有望在控制非法拷贝方面发挥重要作用。

<think>我们正在讨论如何将DRM集成到Video.js中。根据之前的对话和引用,我们知道Video.js本身是一个开源的HTML5视频播放器框架,它支持通过插件和配置来集成DRM功能。主要涉及的技术包括使用加密媒体扩展(EME)和与DRM系统(如Widevine、FairPlay、PlayReady)的交互。 在引用中,特别提到了使用Hls.js来处理加密的HLS流(引用[3]),以及Video.js如何配合EME来处理DRM许可证获取(引用[3]中的代码片段)。同时,引用[1]提供了Video.js的基本集成方法,引用[2]则展示了Invidious项目中如何使用Video.js插件(包括质量选择器和缩略图预览)。 现在,用户明确询问“video.js集成DRM的方法”,因此我们需要详细说明如何将DRM集成到Video.js项目中。 步骤概述: 1. 准备加密的视频内容:使用DRM系统对视频进行加密(如Widevine、FairPlay等)。 2. 配置DRM许可证服务器:确保有一个可用的许可证服务器,用于向客户端发放解密密钥。 3. 在Video.js中配置DRM:通过Video.js的API指定DRM的配置(如密钥系统、许可证服务器URL等)。 具体实现方法: a) 对于MPEG-DASH内容(使用Widevine或PlayReady): - 使用`videojs-contrib-dash`插件或`videojs-http-streaming`(VHS)来支持DASH。 - 在source对象中提供`keySystems`属性。 b) 对于HLS内容(使用FairPlay): - 使用`videojs-contrib-hls`插件(旧版)或`videojs-http-streaming`(VHS,新版)来支持HLS。 - 同样在source对象中配置`keySystems`,并处理FairPlay特有的证书和许可证请求。 c) 对于多DRM系统:需要为不同的浏览器配置不同的DRM,因为不同浏览器支持不同的DRM系统。 下面是一个具体的配置示例,结合引用[3]中提到的加密事件处理和引用[1]中的基本集成步骤: 步骤1:在HTML中引入Video.js和相关插件(如Hls.js用于HLS,或dash.js用于DASH,但Video.js VHS内置了对HLS和DASH的支持)。 步骤2:在JavaScript中初始化Video.js播放器,并为加密内容提供DRM配置。 示例代码(多DRM配置): ```javascript // 创建Video.js播放器实例 var player = videojs('my-video', { html5: { vhs: { overrideNative: true, // 使用VHS代替浏览器原生播放 useDevicePixelRatio: true } } }); // 设置播放源,包括DRM配置 player.src({ src: 'https://example.com/encrypted-video.mpd', // 加密的DASH流 type: 'application/dash+xml', keySystems: { 'com.widevine.alpha': { licenseUrl: 'https://license-server.example.com/widevine' // Widevine许可证服务器URL }, 'com.apple.fps.1_0': { // FairPlay配置 licenseUrl: 'https://license-server.example.com/fairplay', certificateUrl: 'https://license-server.example.com/fairplay.cer' // FairPlay证书URL }, 'com.microsoft.playready': { licenseUrl: 'https://license-server.example.com/playready' } } }); ``` 对于HLS加密流,同样可以使用类似配置,但需要注意: - 如果使用Hls.js(在不支持原生HLS的浏览器中,如非Safari的浏览器),可以结合使用`videojs-contrib-hls`(旧版)或VHS(新版)来处理。 - 在引用[3]中,我们看到了如何用Hls.js监听`encrypted`事件,但在Video.js中,VHS会自动处理这些事件,只要在source中配置好`keySystems`。 另外,对于FairPlay,还需要处理证书请求。在Video.js中,我们可以通过`keySystems`配置项设置证书URL,VHS会自动获取证书并在需要时使用。 注意事项: - 确保服务器支持CORS(跨域资源共享),因为许可证请求和证书请求通常涉及跨域。 - 可能需要处理许可证请求中的自定义头信息(例如,传递认证令牌)。可以通过提供`getLicense`函数来实现自定义许可证获取逻辑。 更高级的配置(自定义许可证请求)示例: ```javascript player.src({ src: 'https://example.com/encrypted-video.m3u8', // HLS流 type: 'application/x-mpegURL', keySystems: { 'com.apple.fps.1_0': { getCertificate: function(emeOptions, callback) { // 自定义获取证书的逻辑 fetch('https://license-server.example.com/fairplay.cer', { method: 'GET', headers: new Headers({ 'Authorization': 'Bearer ' + authToken }) }).then(response => response.arrayBuffer()) .then(data => callback(null, data)) .catch(err => callback(err)); }, getLicense: function(emeOptions, contentId, keyMessage, callback) { // 自定义获取许可证的逻辑 fetch('https://license-server.example.com/fairplay', { method: 'POST', headers: new Headers({ 'Content-Type': 'application/octet-stream', 'Authorization': 'Bearer ' + authToken }), body: new Uint8Array(keyMessage) }).then(response => response.arrayBuffer()) .then(data => callback(null, data)) .catch(err => callback(err)); } } } }); ``` 总结: 集成DRM到Video.js主要步骤: 1. 加密视频内容并准备好许可证服务器。 2. 在Video.js播放器初始化后,通过`player.src()`方法设置源,并在source对象中配置`keySystems`属性。 3. 根据不同的DRM系统(Widevine、FairPlay、PlayReady)提供对应的配置(如许可证服务器URL、证书URL等)。 4. 如果需要自定义许可证请求(如添加认证头),则使用`getLicense`函数。 最后,生成相关问题: 1. 如何搭建一个DRM许可证服务器? 2. 如何对视频内容进行DRM加密? 3. Video.js如何检测浏览器支持的DRM系统? </think>### Video.js 集成 DRM 方法详解 Video.js 本身不提供 DRM 功能,但可通过加密媒体扩展(EME)与主流 DRM 系统集成。以下是完整实现步骤: --- #### 一、核心集成方案 ##### 1. **基础环境准备** ```html <!-- 引入Video.js基础库 --> <link href="https://vjs.zencdn.net/8.10.0/video-js.css" rel="stylesheet" /> <script src="https://vjs.zencdn.net/8.10.0/video.min.js"></script> <!-- 加密协议支持 --> <script src="https://cdn.jsdelivr.net/npm/videojs-contrib-eme@3.7.0/dist/videojs-contrib-eme.min.js"></script> <video id="drm-player" class="video-js" controls></video> ``` ##### 2. **多DRM系统配置** ```javascript const player = videojs('drm-player', { html5: { vhs: { overrideNative: true // 强制使用JavaScript解密 } } }); // DRM 密钥系统配置 player.src({ src: 'https://cdn.example.com/encrypted-video.mpd', type: 'application/dash+xml', keySystems: { 'com.widevine.alpha': { licenseUrl: 'https://drm-server.com/widevine/license', headers: { 'Authorization': 'Bearer <token>' } // 认证头 }, 'com.apple.fps.1_0': { licenseUrl: 'https://drm-server.com/fairplay/license', certificateUrl: 'https://drm-server.com/fairplay.cer', processSpc: (spc) => { // FairPlay自定义处理 return fetchLicense(spc); } } } }); ``` > **注**:浏览器会自动选择支持的DRM系统(Chrome→Widevine, Safari→FairPlay)[^3]。 ##### 3. **HLS加密流支持** ```javascript // 集成hls.js处理加密HLS流 import Hls from 'hls.js'; import 'videojs-contrib-hls'; const video = document.getElementById('drm-player'); if (Hls.isSupported()) { const hls = new Hls({ emeEnabled: true, // 启用EME widevineLicenseUrl: 'https://drm-server.com/widevine/license' }); video.addEventListener('encrypted', (e) => { console.log('加密事件触发:', e.initDataType); }); hls.loadSource('https://cdn.example.com/encrypted.m3u8'); hls.attachMedia(video); } ``` --- #### 二、关键实现细节 1. **DRM服务交互流程** ```mermaid sequenceDiagram 浏览器->>DRM代理模块: 请求加密媒体 DRM代理模块->>许可证服务器: 转发密钥请求 许可证服务器->>权利管理系统: 验证用户权限 权利管理系统-->>许可证服务器: 返回解密密钥 许可证服务器-->>浏览器: 传输许可证 浏览器->>解密模块: 解密媒体流 ``` 2. **跨平台兼容处理** - **检测DRM支持**: ```javascript navigator.requestMediaKeySystemAccess('com.widevine.alpha', [{ initDataTypes: ['cenc'], videoCapabilities: [{ contentType: 'video/mp4;codecs="avc1.42E01E"' }] }]).then(access => { console.log('Widevine支持:', !!access); }); ``` 3. **认证与安全加固** - JWT令牌验证: ```javascript // DRM请求拦截器 player.tech().on('keyrequest', (event) => { event.request.headers['X-DRM-Token'] = generateJWT(userId); }); ``` --- #### 三、常见问题解决方案 | **问题现象** | **解决方法** | |---------------------------|------------------------------------------| | Safari播放黑屏 | 检查FairPlay证书格式(必须是.der/.cer) | | Chrome报错"LICENSE_REQUEST_FAILED" | 验证许可证服务器的CORS配置 | | 移动端加载超时 | 优化分片大小(推荐2-4秒/分片) | | 多DRM切换失败 | 确保manifest文件包含多套密钥系统声明 | > **最佳实践**:使用 [Shaka Packager](https://github.com/google/shaka-packager) 加密视频: > ```bash > packager input=video.mp4,stream=video,output=enc_video.mp4 \ > --enable_widevine_encryption \ > --key_id=<key_id> --key=<key> \ > --protection_scheme cbcs # FairPlay必须 > ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值