我使用this example从HTML5视频创建快照。视频托管在第三方服务器上,我无法控制。
所以我想保存图像,但toDataURL
由于安全原因而失败。
这是错误:Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.
我想有一个图像解决方案。 img.crossOrigin = "Anonymous"
类似的东西。 Here和here。
我试过了videoDomElm.crossOrigin = "Anonymous"
,但没有运气。
是否有视频解决方案?
提前致谢。
答案 0 :(得分:1)
crossOrigin='anonymous'
只是传递跨域安全要求的解决方案的一半。如果标头允许对内容进行跨源访问,它会导致浏览器读取响应标头而不会污染画布。
解决方案的另一半是服务器配置为在其响应头中发送正确的跨源权限。如果没有将服务器配置为允许跨源访问,则画布仍将受到污染。
满足跨源安全性的唯一方法是:
让视频与您的网页位于同一个域中。
将视频服务器配置为在其标头中发送适当的跨域访问权。
没有解决方法 - 您必须满足安全限制。