NodeJS - 寻找更快的方法来创建 FFMPEG 缩略图
Posted
技术标签:
【中文标题】NodeJS - 寻找更快的方法来创建 FFMPEG 缩略图【英文标题】:NodeJS - Looking for faster ways to create FFMPEG thumbnails 【发布时间】:2016-07-04 04:51:58 【问题描述】:我在节点中使用 fluent-ffmpeg 和 ffmpeg:
var ffmpeg = require('fluent-ffmpeg');
var src = "http://upload.wikimedia.org/wikipedia/commons/7/79/Big_Buck_Bunny_small.ogv";
ffmpeg(src)
.on('filenames', function(filenames)
console.log('Will generate ' + filenames.join(', ') + ' into tempfiles.')
)
.on('end', function()
console.log('1 Screenshot successfully taken');
)
.on('error', function(err, stdout, stderr)
console.log("ffmpeg stdout:\n" + stdout);
console.log("ffmpeg stderr:\n" + stderr);
)
.screenshots(
filename: randomResult,
timemarks: [520.929831],
folder: '/'
);
通常,拍摄一张缩略图需要 2-3 秒。 我需要它是 0.5-1 秒进行实时开发。我的意思是,这里有什么问题 - 在我的计算机上下载单个 png 文件需要不到 2-3 秒才能完成,为什么 ffmpeg 滞后这么多?似乎有些不对劲。
【问题讨论】:
你知道 ffmpeg 是做什么来生成那个 PNG 的吗?我认为它必须找到正确的编解码器来解码该 OGV 文件,找到第一个不是黑色的帧,然后将其转换为 PNG。与下载文件不同。 是的,但我仍然相信它可以做得更快。 那么您必须找到能够更快完成此任务的软件。我不知道,但它仍然不会像下载文件那样快。 如何从输出文件夹中获取图片? 【参考方案1】:根据 fluent-ffmpeg docs “它不适用于输入流。”所以我怀疑整个文件都在尝试加载。
您可以尝试使用 -ss 开关直接将 ffmpeg 作为子进程运行,如 post 中所述。这应该会影响你的表现。
【讨论】:
框架“它不适用于输入流。”帮助我解决了 fluent-ffmpeg 的其他问题,我认为有很多地方无法使用流。谢谢!以上是关于NodeJS - 寻找更快的方法来创建 FFMPEG 缩略图的主要内容,如果未能解决你的问题,请参考以下文章