引言
- 通过js提取视频帧,主要通过canvas.toDataURL()处理,本地mp4文件可行,网络mp4文件报错
Failed to execute 'toDataURL' on 'HTMLCanvasElement' Tainted canvases may not be exported.
- img文件同理
解决
这是由于跨域造成的,当前网站访问非同源文件。
场景1:video标签上添加属性 crossOrigin="anonymous"
<video width="640" controls autoplay muted crossOrigin="anonymous">
场景2:img标签上添加属性 crossOrigin="anonymous"
<img src="" alt="" crossOrigin="anonymous" />
场景3:如果是通过js创建Image对象
var img = new Image();
img.crossOrigin = "Anonymous";
img.setAttribute('crossOrigin', 'anonymous') // 二选一
img.src = url + '?time=' + new Date().valueOf(); // 添加时间防止从缓冲中取