我注意到一些网页不知何故实现了一个功能,以防止屏幕截图的一些区域的网页。通过采取截图的网页,而不是一些区域,我通常可以看到现场在浏览器(Chrome),在截图上,我只能看到一个黑色的框架。火狐似乎没有这个“功能”-截图通常是没有黑色框架。
Netflix就是一个这样的网站。在运行Windows 11的台式机上,无法通过键盘上的“print screen”键从Chrome(最后一次更新)中截取正在播放的电影的屏幕截图。视频控件(播放/暂停、视频位置栏......)是可见的,但视频本身是不可见的(黑框)。
什么样的javascript功能/API能够做到这一点?
1条答案
按热度按时间bfnvny8b1#
从供应商的Angular 来看,限制屏幕捕获被称为“数字版权管理”。从用户的Angular 来看,它更像是“最终用户设备控制”。
这是视频播放管道的作用域,而不是JavaScript。JavaScript只支持facilitates key exchange,以便您可以在本地执行decrypt the video。根据视频提供商可以确定的系统属性,视频的质量可能会受到限制。浏览器将主要支持only receive SD质量。Here's是一个JS片段,用于枚举您的浏览器所支持的CDM。
关于屏幕截图防护:如果它没有内置在操作系统中,它将是一个自定义的实现,如here(code),这将不会阻止所有的可能性,采取截图,例如使用第三方程序。对于Chrome,据说是纠缠到硬件加速,关闭它,截图是可能的。
虽然没有什么可以保护内容不被记录在analog hole中,但至少为了防止分发这样的记录,视频提供商在每个用户的基础上添加水印。
如果你想走DRM路线,请参阅here,了解一个简单的方案来设置自己,或联系authorized Widevine partners之一,以获得L1硬件级别。
为了进一步阅读,Android上的DRM有很好的文档记录,并有一些图表: