使用 -lavfi 或 -filter_complex 时的 ffmpeg 差异

Lui*_*lak 1 video ffmpeg lavfilters

我最近开始使用ffmpeg。我一直只使用 -filter_complex 标志来应用过滤器。我偶然发现了这个问题:

FFmpeg:如何将水平视频 16:9 转换为垂直视频 9:16,顶部和底部背景模糊

ffmpeg 维护者使用 -lavfi 标志回答它:

ffmpeg -i input.mp4 -lavfi "[0:v]scale=iw:2*trunc(iw*16/18),boxblur=luma_radius=min(h\,w)/20:luma_power=1:chroma_radius=min(cw\,ch)/20:chroma_power=1[bg];[bg][0:v]overlay=(W-w)/2:(H-h)/2,setsar=1" output.mp4

我试图将 -lavfi 标志更改为 -filter_complex:

ffmpeg -i input.mp4 -filter_complex "[0:v]scale=iw:2*trunc(iw*16/18),boxblur=luma_radius=min(h\,w)/20:luma_power=1:chroma_radius=min(cw\,ch)/20:chroma_power=1[bg];[bg][0:v]overlay=(W-w)/2:(H-h)/2,setsar=1" output.mp4

结果是一样的,没有注意到性能变化。

使用任一标志时有区别吗?

Yar*_*yak 5

FFmpeg 文档

-lavfi filtergraph (global) 定义一个复杂的 filtergraph,即具有任意数量的输入和/或输出。等效于 -filter_complex。