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