如何在FFMPEG的复滤波器中使用滤波音频?

如何在FFMPEG的复滤波器中使用滤波音频?,ffmpeg,Ffmpeg,我正在使用高通音频过滤器,然后尝试对生成的音频流使用showfreqs,但它不起作用。showfreqs过滤器使用原始音频流,而不是过滤后的音频流 命令: ffmpeg-i audio.mp3-filter\u复数高通,showfreqs,format=yuv420p高通.mp4 我尝试为高通输出命名,但没有任何区别: ffmpeg-i audio.mp3-filter\u复数高通[hi],[hi]showfreqs,格式=yuv420p高通.mp4 如何构造我的命令,以便showfreqs使用

我正在使用高通音频过滤器,然后尝试对生成的音频流使用
showfreqs
,但它不起作用。
showfreqs
过滤器使用原始音频流,而不是过滤后的音频流

命令:

ffmpeg-i audio.mp3-filter\u复数高通,showfreqs,format=yuv420p高通.mp4

我尝试为
高通
输出命名,但没有任何区别:

ffmpeg-i audio.mp3-filter\u复数高通[hi],[hi]showfreqs,格式=yuv420p高通.mp4

如何构造我的命令,以便
showfreqs
使用高通的输出

更新

我使用的是通过自制在Mac上安装的FFMPEG 4.1.4

源音频:

命令和生成的文件:

在audio.mp3上运行高通:

  • ffmpeg-i audio.mp3-filter\u complex highpass highpass.mp3

  • 结果:正确

在audio.mp3上运行
showfreks

  • ffmpeg-i audio.mp3-filter\u complex showfreqs,format=yuv420p showfreqs.mp4

  • 结果:正确

在highpass.mp3上运行
showfreqs

  • ffmpeg-i highpass.mp3-filter\u complex showfreqs,format=yuv420p showfreqs.mp4

  • 结果:正确

在audio.mp3上依次运行高通和showfreqs

  • ffmpeg-i audio.mp3-filter\u复数高通,showfreqs,format=yuv420p高通.mp4

  • 结果:不正确

我尝试了几个不同的源音频文件,总是得到相同的结果

我在两台不同的Mac电脑上进行了尝试,不过都是通过自制安装了FFMPEG 4.1.4

我尝试了不同的高通设置,得到了相同的结果(默认高通设置足以听到不同的声音)

更新2

在QuickTime中并排查看生成的视频,我发现
showfreqs
实际上似乎在使用来自
highpass
的音频流,但最终的视频包含原始的未过滤音频


因此,我的问题实际上是如何使生成的视频使用经过过滤的音频流而不是原始音频流。

showfreqs
将其音频输入转换为视频输出,因此ffmpeg将依靠原始音频进行音频输出。为了避免这种情况,请分割高通结果并将一个副本传递给showfreqs,同时将另一个副本留给音频输出

ffmpeg -i audio.mp3 -filter_complex highpass,asplit=2[sf][aud];[sf]showfreqs,format=yuv420p;[aud]anull highpass.mp4

您最初的命令应该可以工作,而且在这里确实可以工作。尝试在高通中使用不同的音频或攻击性设置。@Gyan使用命令和指向生成的音频和视频文件的链接更新了文章。您能确认该命令是否适用于我的源文件吗?@Gyan再次更新,似乎
showfreqs
实际上使用的是
highpass
音频流,但生成的视频使用的是原始视频。这是预期的吗?如何将过滤后的音频输入到生成的视频文件中?在Mac上,我不得不将整个过滤字符串用引号括起来,我想是因为分号的缘故,但在那之后,它工作得很好。谢谢