3

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

    ])

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

4

1 回答 1

4

这是正确的语法:第一个添加输入 [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')
于 2018-01-10T15:23:42.600 回答