Canvas 从视频创建的视频在保存时引发 "Tainted canvases may not be exported." 错误

Canvas that created from video raising "Tainted canvases may not be exported." error when saving

我正在使用 this example 从 HTML5 视频创建快照。视频托管在第三方服务器上,我无法控制。

所以我想保存图像,但是 toDataURL 由于安全原因失败了。

这是错误:Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.

我想图像有解决方案。 img.crossOrigin = "Anonymous" 类似的东西。 Here and here.

我尝试了 videoDomElm.crossOrigin = "Anonymous",但没有成功。

视频有解决办法吗?

提前致谢。

crossOrigin='anonymous' 只是通过 cross-domain 安全要求的一半解决方案。如果 headers 允许 cross-origin 访问内容,它会导致浏览器读取响应 headers 而不会污染 canvas。

解决方案的另一半是将服务器配置为在其响应 headers 中发送正确的 cross-origin 权限。如果服务器没有被配置为允许 cross-origin 访问,canvas 仍然会被污染。

满足 cross-origin 安全性的唯一方法是:

  1. 让视频源自与您的网页相同的域。

  2. 将视频服务器配置为在其 headers 中发送适当的 cross-origin 访问权限。

没有解决方法 -- 您必须满足安全限制。