HTML5从图像生成视频

时间:2015-02-25 10:48:50

标签: javascript jquery html5 html5-canvas html5-video

我想知道,因为HTML和javascript令人着迷,如果HTML5中有一个解决方案可以从许多图像中生成视频文件吗?

例如,您可以通过操作画布将视频加载到画布中并使其显示为灰度视频。不过,我想知道, 如果有一种方法可以从该greyscaled版本生成视频文件。如果你想通过whatsapp等发送视频,那就没有意义了。

谢谢

3 个答案:

答案 0 :(得分:5)

我们走了:

  • 文章:http://techslides.com/convert-images-to-video-with-javascript
  • 演示:http://techslides.com/demos/image-video/create.html (一次选择多张图片)
  • 代码:#!/usr/bin/env node /** * Install all plugins listed in package.json * https://raw.githubusercontent.com/diegonetto/generator-ionic/master/templates/hooks/after_platform_add/install_plugins.js */ var exec = require('child_process').exec; var path = require('path'); var sys = require('sys'); var packageJSON = null; try { packageJSON = require('../../package.json'); } catch(ex) { console.log('\nThere was an error fetching your package.json file.') console.log('\nPlease ensure a valid package.json is in the root of this project\n') return; } var cmd = process.platform === 'win32' ? 'cordova.cmd' : 'cordova'; // var script = path.resolve(__dirname, '../../node_modules/cordova/bin', cmd); packageJSON.cordovaPlugins = packageJSON.cordovaPlugins || []; packageJSON.cordovaPlugins.forEach(function (plugin) { exec('cordova plugin add ' + plugin, function (error, stdout, stderr) { sys.puts(stdout); }); });
  • 您可以下载[just view the source]视频文件

@ K3N回答提到构建编码器。幸运的是,文章中有一个 - https://github.com/antimatter15/whammy - 片段:

  

你需要一个视频编码器,今天我偶然发现了Whammy,一个实时的JavaScript WebM编码器。

答案 1 :(得分:4)

目前没有内置API可以在HTML5中进行视频编码。但是work in progress允许进行基本的视频和音频录制 - 但此时它不可用(FireFox中提供录音 - 它也仅限于

如果您对gif动画没问题,可以使用其中一个编码器将帧编码为gif(见下文)。

对于视频 - 尝试或多或少都有成功(我想到的项目似乎不再可用)但是从一个浏览器到另一个浏览器存在问题。

根据视频编码和文件格式规范,可以选择以低级风格构建编码器。它可行,但它不是一个小项目。

在任何情况下,即使对于本机编译的应用程序,编码视频也是一项非常糟糕的性能任务。在浏览器中运行这样的任务将是一个更加缓慢的过程,对许多用户来说可能不实用(移动设备会吸收这些电池)。

更好的方法IMO(至少在上述API变得可用之前)是将图像发送到服务器并在后台处理编码作业中具有服务器,然后将结果发送到客户端。这样,您可以使用多线程,卸载客户端,使用本机编译的编码器(如ffmpeg),并且可以将生成的视频流回传输。

部分资源

答案 2 :(得分:0)

嗨,我已经使用tech-slides提供的代码构建了它。 我还制作了一个模板应用程序,您可以在其中获取图像列表并将其转换为视频格式。您必须根据自己的需要编辑代码。不过,仅Chrome和YouTube支持。因此,基本上在whammy.js中,您可以将图像转换为JavaScript文件中的画布,然后使用whammy.js函数将画布转换为视频。您需要设置事件监听器,并将视频加载到视频标签中。 Whammy.js仅产生webp文件。要将其转换为mp4: 将其加载到YouTube中,然后使用YouTube作为mp4下载。希望对您有所帮助。