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

问题描述 投票:0回答:1

[我正在制作视频动画制作器,该动画制作器首先从html .jpg标签生成canvas图像,然后将这些图像用作视频的帧。我正在使用ffmpeg进行视频生成。

仅使用一张图像时有效

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");
    });

这不起作用,因为它生成的视频与第一个示例相同。代替显示第一秒的一个图像和第二秒的另一个图像,它会生成一个只有第一幅图像的一秒钟长视频。

有人可以显示如何解决此问题吗?

javascript node.js ffmpeg mp4
1个回答
0
投票

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

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

image0.jpg
image1.jpg
image2.jpg

或者如果需要10+或100+图像,则带有其他前面的0。

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

© www.soinside.com 2019 - 2024. All rights reserved.