gpt4 book ai didi

ffmpeg - 如何在 Fluent FFMPEG 中运行这个复杂的过滤器?

转载 作者:行者123 更新时间:2023-12-04 22:46:17 27 4
gpt4 key购买 nike

我正在尝试将以下复杂过滤器转换为 Fluent FFMPEG 命令,但我无法弄清楚映射是如何工作的。

ffmpeg -i audio.mp3 -filter_complex "[0:a]showfreqs=s=200x100:colors=white|white,format=yuv420p[vid]"-map "[vid]"-map 0:一段视频.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]”'不匹配任何流。
要忽略它,请添加一个尾随 '?'到 map 。

如果我添加尾随 '?'在 outputOptions 中,我得到一个没有视频流的文件。

最佳答案

解决了这个问题。我的原始代码存在三处错误:

  1. complexFilter 需要是一个对象数组,我缺少数组括号。
  2. 看来您需要在 fluent-ffmpeg 中明确指定链式过滤器的输入和输出。
  3. 正如@llogan 所指出的,我在 outputOptions
  4. 中遇到了引用问题

最终的工作代码:

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)

关于ffmpeg - 如何在 Fluent FFMPEG 中运行这个复杂的过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57862495/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com