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

时间:2018-01-08 20:41:55

标签: node.js ffmpeg 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)',
          }
      },

    ])

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

1 个答案:

答案 0 :(得分:0)

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