从视频提升中创建的画布“可能无法导出受污染的画布”。保存时出错

时间:2015-04-10 21:55:46

标签: javascript html5 video canvas html5-video

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

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

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

我想有一个图像解决方案。 img.crossOrigin = "Anonymous"类似的东西。 Herehere

我试过了videoDomElm.crossOrigin = "Anonymous",但没有运气。

是否有视频解决方案?

提前致谢。

1 个答案:

答案 0 :(得分:1)

crossOrigin='anonymous'只是传递跨域安全要求的解决方案的一半。如果标头允许对内容进行跨源访问,它会导致浏览器读取响应标头而不会污染画布。

解决方案的另一半是服务器配置为在其响应头中发送正确的跨源权限。如果没有将服务器配置为允许跨源访问,则画布仍将受到污染。

满足跨源安全性的唯一方法是:

  1. 让视频与您的网页位于同一个域中。

  2. 将视频服务器配置为在其标头中发送适当的跨域访问权。

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