简体   繁体   English

受保护的媒体路径和类似系统是如何实施的?

[英]How are Protected Media Path and similar systems implemented?

Windows provides DRM functionality to applications that require it. Windows 为需要它的应用程序提供 DRM 功能。

Some of them, however, have more protection than others.然而,他们中的一些人比其他人有更多的保护。

As an example, take Edge (both Legacy and Chromium) or IE that use Protected Media Path.以使用受保护媒体路径的 Edge(Legacy 和 Chromium)或 IE 为例。 They get to display >720p Netflix content.他们可以显示 >720p 的 Netflix 内容。 Other browsers don't use PMP and are capped at 720p.其他浏览器不使用 PMP,并且上限为 720p。

The difference in the protections is noticeable when you try to capture the screen: while you have no problems on Firefox/Chrome, in Edge/IE a fixed black image takes the place of the media you are playing, but you still see media control buttons (play/pause/etc) that are normally overlaid (alpha blended) on the media content.当您尝试捕获屏幕时,保护的差异是显而易见的:虽然您在 Firefox/Chrome 上没有问题,但在 Edge/IE 中,固定的黑色图像取代了您正在播放的媒体,但您仍然看到媒体控制按钮(播放/暂停/等)通常覆盖在媒体内容上(alpha 混合)。 Example (not enough rep yet to post directly)示例(没有足够的代表直接发布)

The question here is mainly conceptual, and in fact also could apply to systems that have identical behavior, like iOS that also replaces the picutre when you screenshot or capture the screen on Netflix.这里的问题主要是概念性的,实际上也适用于具有相同行为的系统,例如 iOS 在您在 Netflix 上截屏或捕获屏幕时也会替换图片。

How does it get to display two different images on two different outputs (Capture APIs with no DRM content and attached phisical monitor screen with DRM content)?如何在两个不同的输出上显示两个不同的图像(捕获没有 DRM 内容的 API 和附加的具有 DRM 内容的物理监视器屏幕)?

I'll make a guess and I'll start by excluding HW overlays.我会做一个猜测,我将从排除硬件覆盖开始。 The reason is that play/pause buttons are still visible on the captured output.原因是在捕获的 output 上仍然可以看到播放/暂停按钮。 Since they are overlaid (alpha blended) on the media on the screen, and alpha blending on HW overlays is not possible in DirectX 9 or later nor it is using legacy DirectDraw, hardware overlays have to be discarded.由于它们在屏幕上的媒体上叠加(alpha 混合),并且在 DirectX 9 或更高版本中无法在硬件叠加上进行 alpha 混合,也无法使用旧版 DirectDraw,因此必须丢弃硬件叠加。 And by the way, neither d3d9.dll or ddraw.dll are loaded by mfpmp.exe or iexplore.exe (version 11).顺便说一句, mfpmp.exeiexplore.exe (版本 11)都不会加载d3d9.dllddraw.dll Plus, I think hardware overlays are now considered a legacy feature, while Media Foundation (which Protected Media Path is a part of) is totally alive and maintained.另外,我认为硬件覆盖现在被认为是一个遗留功能,而媒体基础(受保护的媒体路径是其中的一部分)是完全活跃和维护的。

So my guess is that DWM, that is in charge for the screen composition, is actually doing two compositions.所以我的猜测是,负责屏幕构图的 DWM 实际上是在做两个构图。 Either by forking the composition process at the point when it encounters a DRM area and feeds one output to the screen (with DRM protected content) and the other to the various screen capturing methods and APIs, or by entirely doing two different compositions in the first place.通过在遇到 DRM 区域时分叉合成过程并将一个 output 提供给屏幕(具有 DRM 保护的内容),另一个提供给各种屏幕捕获方法和 API,或者通过在第一个中完全执行两个不同的组合地方。

Is my guess correct?我的猜测正确吗? And could you please provide evidence to support your answer?您能否提供证据来支持您的回答?

My interest is understanding how composition software and DRM are implemented, primarily in Windows.我的兴趣是了解如何实现合成软件和 DRM,主要是在 Windows 中。 But how many other ways could there be to do it in different OSes?但是在不同的操作系统中还有多少其他方法可以做到这一点?

Thanks in advance.提前致谢。

According to this document , both the options are available.根据这个文件,这两个选项都是可用的。 The modern PlayReady DRM that Netflix uses for its playback in IE, Edge, and the UWP app uses the DWM method, which can be noticed by the video area showing only a black screen when DWM is forcibly killed. Netflix 用于在 IE、Edge 和 UWP 应用程序中播放的现代 PlayReady DRM 使用 DWM 方法,当 DWM 被强行杀死时,视频区域仅显示黑屏可以注意到这一点。 It seems that this is because the modern PlayReady is supported since Windows 8.1, which does not let users disable DWM easily.这似乎是因为从 Windows 8.1 开始支持现代 PlayReady,这不会让用户轻松禁用 DWM。

I think both methods were used in Windows Vista-7, but I have no samples to test it.我认为这两种方法都在 Windows Vista-7 中使用,但我没有样品可以测试它。 As HW overlays don't look that good with window previews, animations, and transparencies, they would have switched each method depending on the DWM status.由于使用 window 预览、动画和透明度的硬件覆盖看起来不太好,因此他们会根据 DWM 状态切换每种方法。

For iOS, it seems that a mechanism that is similar to the DWM method is done in the display server(SpringBoard?) level to present the protected content which is processed in the Secure Enclave Processor.对于 iOS,似乎在显示服务器(SpringBoard?)级别完成了类似于 DWM 方法的机制,以呈现在 Secure Enclave 处理器中处理的受保护内容。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何根据RestKit中的键路径分离相似的实体映射? - How to separate similar entities mapping based on their key path in RestKit? 图形上下文的概念是否与文件句柄非常相似? (在iOS和其他系统上) - Is the concept of a Graphics Context very similar to a file handle? (on iOS and other systems) 如何执行“让”? - How is 'let' implemented? 应该如何实施? 代表团 - How should this be implemented? Delegation updateInteractiveTransition:如何实现? - How is updateInteractiveTransition: implemented? 如何在iOS应用程序中绘制弯曲的路径,类似于它们在寻宝地图上显示的路径 - How do you draw curved path, similar to the ones they show on treasure hunt maps, in iOS applications 如何摆脱错误运行测试? 类SomeClass在path1和path2中都实现。将使用两者之一。 哪一个未定义 - How to get rid of error running tests? Class SomeClass is implemented in both path1 and path2 One of the two will be used. Which one is undefined SceneKit转换值,如何实现? - SceneKit transform values, how are they implemented? 如何使 zipfile 受密码保护 - How to make a zipfile as password protected 如何使用 Phonegap 创建受保护的目录 - How to create a protected directory with Phonegap
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM