将多个图像添加到视频中 fluent-ffmpeg

Add multiple images to video fluent-ffmpeg

我设法将单张图像添加到从特定时间开始到特定时间结束的视频,但我找不到对多张图像执行此操作的方法。我用的是 fluent-ffmpeg.

这是我的代码:

ffmpeg('../videos/testklein.mp4')
     .input('../src/test.png')
     .input('../src/0.png')
     .input('../src/1.png')
     .addOptions([
        "-strict -2"
     ])

     .complexFilter([
        {
          filter: 'overlay',
          options: {
            x: 200,
            y: 200,
            enable: 'between(t,1,3)',

          }}, {
          filter: 'overlay',
          options: {
            x: 200,
            y: 200,
            enable: 'between(t,3,5)',
          }},
           {
          filter: 'overlay',
          options: {
             x: 200,
            y: 200,
            enable: 'between(t,5,7)',
          }
      },

    ])

我想我需要明确说明什么过滤器应该采用什么文件,但我不确定它的语法。

这是正确的语法: 第一个添加输入 [0:v][1:v] 并输出 ['tmp'] 然后添加 ['tmp'] 作为下一个的输入。对于 2 张图片:

我可以添加任意数量的图像。 将 'tmp' 作为第二个参数传递给 complexFilter!

(您当然可以将 tmp 更改为任何字符串)

.complexFilter(
    [
      {
        "filter": "overlay",
        "options": {
          "enable": "between(t,2,4)",
          "x": "810",
          "y": "465"
        },
        "inputs": "[0:v][1:v]",
        "outputs": "tmp"
      },
      {
        "filter": "overlay",
        "options": {
          "enable": "between(t,13,14)",
          "x": "810",
          "y": "465"
        },
        "inputs": "[tmp][2:v]",
        "outputs": "tmp"
      }
    ], 'tmp')

我正在搜索在一个简单的 complexFilter 中添加多个图像,然后我发现这段代码有效,但在渲染视频后,声音被删除了。经过大量更改后,我找到了音频解决方案。

在您的代码中添加一个输出选项


.outputOptions(["-map 0:a"])


如果有人遇到音频问题,请分享此内容。