我想知道,因为HTML和javascript令人着迷,如果HTML5中有一个解决方案可以从许多图像中生成视频文件吗?
例如,您可以通过操作画布将视频加载到画布中并使其显示为灰度视频。不过,我想知道, 如果有一种方法可以从该greyscaled版本生成视频文件。如果你想通过whatsapp等发送视频,那就没有意义了。
谢谢
答案 0 :(得分:5)
我们走了:
#!/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下载。希望对您有所帮助。