有什么方法可以从画布中获取图像数据,从远程视频中获取?

时间:2015-03-10 09:33:47

标签: javascript html5 video canvas youtube

我使用html5视频标签播放视频。 然后我用canvas元素绘制视频帧。 视频来自远程来源。 绘制框架没有问题。但是从画布获取图像数据存在问题。我想获取图像数据来制作img元素或将数据发送到服务器以创建图像,但这是不可能的,因为使用画布的操作是不安全的。 当我使用来自同一域的视频时,没有问题。 只有一种方法,我发现 - 是在服务器上制作脚本,获取远程视频并输出它,我们这个脚本就像视频元素源。但这不是一个好主意,因为它会给服务器带来额外的过载。 我不确定我是否理解了有关使用“跨性别”的文章?我认为远程视频所在的服务器必须发送如下标题:“Access-Control-Allow-Origin:*”,但如果我无权访问该服务器,例如我想使用youtube视频,那里没有执行的能力吗?

1 个答案:

答案 0 :(得分:1)

简单的答案是,不,不幸的是。

如果您无法访问远程服务器以允许跨域使用,则无法执行此操作,或者可以询问该站点的管理员(这种情况很可能发生在像YouTube这样的网站上)。

通常,您可以尝试通过提供crossOrigin属性来请求跨域使用:

<video ... crossOrigin="anonymous">...</video>

如果允许,您将在获取图像数据时看到数据。

解决方案

一种方法是将视频复制到您自己的服务器并从那里流式传输。

两个,使用您已经尝试过服务器的代理服务器或脚本。

是的,这两种情况都会影响您服务器上的流量(关于版权等,这可能存在法律方面的问题。)

抱歉,没办法解决。