在javascript中抓取base64视频的所有帧

时间:2013-08-13 06:18:12

标签: javascript html5 html5-video

如果我有视频文件的base64,有什么方法可以抓取javascript中的所有帧而无需播放整个视频或将视频发送回服务器?

我正在制作一个视频网页,将其转换为ascii-art并播放。起初,我认为最好的方法是将视频上传到服务器,在那里解码并转换,然后用转换后的视频进行响应;但是,由于我不压缩输出“视频”(实际上只是一大块文本),因此响应非常大,需要花费大量时间进行传输。

我知道如果我在前端解析视频,我可以做这样的事情(不确定这段代码是否遗漏了一些东西,但它传达了一般的想法):

var frames = [];
var context = document.getElementById('canvas').getContext('2d');
var video = document.createElement('video');
video.src = base64Value;

function callback() {
  context.drawImage(video, 0, 0);
  frames.push(grabFrameFromCanvasContext(context));
  if (video.currentTime < video.duration) {
    setTimeout(callback, 50);
  }
}

callWhenVideoStartsPlaying(callback);

但视频解析需要很长时间。这对大多数情况都有意义,因为浏览器会从某个地方传输视频,但由于视频源是base64,有没有更好的方法呢?

0 个答案:

没有答案