如何在Fluent FFMPEG中运行此复杂过滤器?

如何在Fluent FFMPEG中运行此复杂过滤器?,ffmpeg,fluent-ffmpeg,Ffmpeg,Fluent Ffmpeg,我试图将下面的复杂过滤器转换为流畅的FFMPEG命令,但我不知道映射是如何工作的 ffmpeg-i audio.mp3-filter_complex[0:a]showfreqs=s=200x100:colors=white | white,format=yuv420p[vid]-map[vid]-map 0:a video.mp4 这是我到目前为止得到的,但是我得到了一个关于“vid”流的错误 ffmpeg() .input("audio.mp3") .audioCodec("a

我试图将下面的复杂过滤器转换为流畅的FFMPEG命令,但我不知道映射是如何工作的

ffmpeg-i audio.mp3-filter_complex[0:a]showfreqs=s=200x100:colors=white | white,format=yuv420p[vid]-map[vid]-map 0:a video.mp4

这是我到目前为止得到的,但是我得到了一个关于“vid”流的错误

ffmpeg()
    .input("audio.mp3")
    .audioCodec("aac")
    .audioBitrate("320")
    .complexFilter(
      {
        filter: "showfreqs",
        options: { s: "200x100" },
        inputs: "0:a",
      },
      {
        filter: "format",
        options: { pix_fmts: "yuv420p" },
        outputs: ["vid"],
      }
    )
    .outputOptions(['-map "[vid]"', "-map 0:a"])
    .save(spectrumTmp)
错误:ffmpeg退出,代码为1:流映射“[vid]”与任何流都不匹配。 若要忽略此项,请在映射中添加尾随“?”


如果我在输出选项中添加一个尾随的“?”,我会得到一个没有视频流的文件。

解决了这个问题。我的原始代码有三个问题:

complexFilter需要是一个对象数组,我缺少数组括号。 似乎您需要在fluent ffmpeg中明确指定链式过滤器的输入和输出。 正如@llogan所指出的,我在outputOptions中有一个引用问题 最终工作守则:

ffmpeg()
    .input("audio.mp3")
    .audioCodec("aac")
    .audioBitrate("320")
    .complexFilter([
      {
        filter: "showfreqs",
        options: { s: "200x100" },
        inputs: "0:a",
        outputs: "[freqs]",
      },
      {
        filter: "format",
        options: { pix_fmts: "yuv420p" },
        inputs: "[freqs]",
        outputs: "[vid]",
      },
    ])
    .outputOptions(["-map [vid]", "-map 0:a"])
    .save(spectrumTmp)

解决了这个问题。我的原始代码有三个问题:

complexFilter需要是一个对象数组,我缺少数组括号。 似乎您需要在fluent ffmpeg中明确指定链式过滤器的输入和输出。 正如@llogan所指出的,我在outputOptions中有一个引用问题 最终工作守则:

ffmpeg()
    .input("audio.mp3")
    .audioCodec("aac")
    .audioBitrate("320")
    .complexFilter([
      {
        filter: "showfreqs",
        options: { s: "200x100" },
        inputs: "0:a",
        outputs: "[freqs]",
      },
      {
        filter: "format",
        options: { pix_fmts: "yuv420p" },
        inputs: "[freqs]",
        outputs: "[vid]",
      },
    ])
    .outputOptions(["-map [vid]", "-map 0:a"])
    .save(spectrumTmp)
引用问题。请尝试.outputOptions[-map'[vid]'、-map 0:a]或.outputOptions[-map[vid]、-map 0:a]。引用问题。Try.outputOptions[-map'[vid]'、-map 0:a]或.outputOptions[-map[vid]、-map 0:a]。