Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中捕获base64视频的所有帧_Javascript_Html_Html5 Video - Fatal编程技术网

在javascript中捕获base64视频的所有帧

在javascript中捕获base64视频的所有帧,javascript,html,html5-video,Javascript,Html,Html5 Video,如果我有一个视频文件的base64,是否有任何方法可以捕获javascript中的所有帧,而不必播放整个视频或将视频发送回服务器 我正在制作一个网页,可以拍摄视频,将其转换为ascii艺术,然后播放。起初,我认为最好的方法是将视频上传到服务器,在那里解码和转换,然后用转换后的视频进行响应;但是,由于我不压缩输出的“视频”(实际上只是一个巨大的文本块),因此响应非常大,传输需要花费大量时间 我知道,如果我在前端解析视频,我可以做类似的事情(不确定此代码是否缺少某些内容,但它传达了总体思路): va

如果我有一个视频文件的base64,是否有任何方法可以捕获javascript中的所有帧,而不必播放整个视频或将视频发送回服务器

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

我知道,如果我在前端解析视频,我可以做类似的事情(不确定此代码是否缺少某些内容,但它传达了总体思路):

var frames=[];
var context=document.getElementById('canvas').getContext('2d');
var video=document.createElement('video');
video.src=base64Value;
函数回调(){
drawImage(视频,0,0);
frames.push(grabFrameFromCanvasContext(context));
if(video.currentTime
但解析视频需要多长时间。这在大多数情况下是有意义的,因为浏览器将从某处流式传输视频,但由于视频源是base64,有没有更好的方法

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);