Добавить несколько изображений в видео 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)',
          }
      },

    ])

Я полагаю, мне нужно явно указать, какой фильтр должен принимать какой файл, но я не уверен в синтаксисе этого.


person Riël    schedule 08.01.2018    source источник


Ответы (1)


Это правильный синтаксис: первый добавляет входные данные [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')
person Riël    schedule 10.01.2018