如您所知,Netflix、Prime Video 和其他服务不允许截屏。但我很难理解为什么我们不能编写一个脚本,也许是 JavaScript(并在浏览器控制台中运行),读取屏幕和屏幕每个像素的光强度/颜色,然后将它们组合起来创建图像,即屏幕截图?
毕竟,我们在视频中看到的基本上是带有一定量光和颜色的像素。这不可能吗?
注意:我知道这样做不合法,但我只是好奇这是否可行。如果可行,为什么人们不这样做?
答案1
尝试实现这一目标所需的工作量完全超出了实际“可行性”。它还需要处理视频的硬件的配合。
您需要逐个检查超过 200 万个像素 (1080p),然后构建和格式化图像,然后暂时存储该图像,然后在 33 毫秒 (30fps) 后收集下一帧,并使用 JavaScript 一遍又一遍地重复。JavaScript 已经是一种相对低效的编程语言,并且正在浏览器中运行,该浏览器试图保护用户免受网页越界的影响。
然后,事实是视频(最有可能)使用所谓的“覆盖”在显卡硬件上播放。这意味着您的浏览器本身会绘制一个黑色、白色或绿色区域,然后简单地告诉显卡“这是一些视频数据,对其进行解码并将其显示在该空间上”。显卡完成工作,然后在将数据推送到显示器之前,作为最后一步覆盖视频。
由于视频保护,最后一步可能是浏览器甚至无法在显示点请求该像素的真实代表性副本。视频可能仅作为受加密保护的最终显示输出的一部分合并到数据流中。
因此,JavaScript 可能看到的只是覆盖该区域的单一纯色。捕获起来并不完全有用。