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

Rië*_*iël 4 ffmpeg node.js fluent-ffmpeg

我设法将单个图像添加到在特定时间开始并在特定时间结束的视频中,但我找不到对多个图像执行此操作的方法。我用的是流利的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)',
          }
      },

    ])
Run Code Online (Sandbox Code Playgroud)

我想我需要明确说明哪个过滤器应该采用哪个文件,但我不确定其语法。

Rië*_*iël 5

这是正确的语法:第一个添加输入 [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')
Run Code Online (Sandbox Code Playgroud)