javascript - Node.js ffmpeg 从 2 个或更多 jpg 图像创建 mp4 视频

标签 javascript node.js ffmpeg mp4

我正在制作一个视频动画师,它首先生成 .jpg图片来自 html canvas标记,然后将图像用作视频的帧。我正在使用 ffmpeg进行视频生成。

仅使用 1 张图片时有效

const ffmpeg = require('fluent-ffmpeg');
ffmpeg.setFfmpegPath("C://Program Files/ffmpeg/bin/ffmpeg.exe");

var command = ffmpeg();

command
    .input("./test.jpg")
    .save("./test.mp4")
    .outputFPS(1)
    .on('end', () => {
        console.log("done");
    });

我用这个代码制作了一个 1 秒长的 mp4 视频,但这只是一个图像/帧。

我正在尝试做什么(2+ 图像)
const ffmpeg = require('fluent-ffmpeg');
ffmpeg.setFfmpegPath("C://Program Files/ffmpeg/bin/ffmpeg.exe");

var command = ffmpeg();

command
    .input("./test.jpg")
    .input("./another.jpg")
    .save("./test.mp4")
    .outputFPS(1)
    .frames(2)
    .on('end', () => {
        console.log("done");
    });

这不起作用,因为它生成与第一个示例相同的视频。它不是在第一秒显示一个图像,在第二秒显示另一个图像,而是生成一个只有第一个图像的一秒长视频。

有人可以展示如何解决这个问题吗?

最佳答案

好的。在查看文档后,似乎添加两个图像作为输入的唯一方法是使用图像文件模式。

我只需要以类似的模式命名图像

image0.jpg
image1.jpg
image2.jpg

或者如果我想要 10+ 或 100+ 图像,则在前面加上 0。

现在我可以做 command.input("./image%1d.jpg") .
希望这对以后遇到和我一样问题的人有所帮助。

关于javascript - Node.js ffmpeg 从 2 个或更多 jpg 图像创建 mp4 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61690101/

相关文章:

javascript - Jointjs 类型定义

node.js - 用于 nodeJS 开发的 CoffeeScript 源映射

node.js - 如何导入没有可用类型的 npm 模块?

javascript - react : passing component's state to container

javascript - 找到具有以下文本的标签的属性值

javascript - 将 jQuery Draggable 与网格和多个可拖动元素一起使用

node.js - 将 htaccess 添加到 Ghost 项目

python - 最后一个子进程调用在 FFMPEG 的串联代码中不起作用。我应该如何解决这个问题?

FFMPEG:自动消除音频编解码器延迟

ffmpeg - 使用 ffmpeg 合并视频和图像