向视频添加多个图像 - fluent-ffmpeg

4

我成功地将单个图片添加到视频中,并从某个时间点开始,到某个时间点结束,但我无法找到一种方法来添加多个图片。我使用的是流畅的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)',
          }
      },

    ])

我想我需要明确说明哪个过滤器应该处理哪个文件,但我不确定语法是什么。

2个回答

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')

你好 @Riël:如何保留声音?我测试了你的代码,它可以运行(非常感谢),但声音被移除了。 - seikida
很奇怪,已经过了一段时间了,但是我没有遇到声音被移除的问题。 - Riël
1
你应该添加一个音频映射的输出选项,就像这样:-.outputOptions(["-map 0:a"]) - hamid saifi

0

我在寻找如何在一个简单的复杂滤镜中添加多个图像,后来发现这段代码可以工作,但在渲染视频后声音被移除了。经过多次修改,我终于找到了解决方案。

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


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


如果有人遇到音频问题,可以分享这个。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接