我正在使用highpass音频过滤器,然后尝试对生成的音频流使用showfreqs,但它不起作用。showfreqs过滤器使用原始音频流而不是过滤的音频流。
命令:
ffmpeg -i audio.mp3 -filter_complex highpass,showfreqs,format=yuv420p highpass.mp4
我试着命名highpass输出,但没有产生任何区别:
ffmpeg -i audio.mp3 -filter_complex highpass[hi],[hi]showfreqs,format=yuv420p highpass.mp4
如何构造我的命令以便showfreqs使用来自highpass的输出
更新
我使用的是安装在Mac上的FFMPEG 4.1.4。
来源音频:https://dsc.cloud/weavermedia/audio.mp3
命令和结果文件:
在highpass上运行audio.mp3:
ffmpeg -i audio.mp3 -filter_complex highpass highpass.mp3在showfreqs上运行audio.mp3:
ffmpeg -i audio.mp3 -filter_complex showfreqs,format=yuv420p showfreqs.mp4在showfreqs上运行highpass.mp3:
ffmpeg -i highpass.mp3 -filter_complex showfreqs,format=yuv420p showfreqs.mp4在highpass和showfreqs上串联运行audio.mp3:
ffmpeg -i audio.mp3 -filter_complex highpass,showfreqs,format=yuv420p highpass.mp4我尝试了几个不同的源文件,并且总是得到相同的结果。
我尝试了两种不同的Mac,尽管都是通过Homebrew安装的FFMPEG 4.1.4。
我尝试了不同的高通设置,并得到了相同的结果(默认的高通设置足以听到不同之处)。
更新2
在QuickTime中并排查看生成的视频,我发现showfreqs确实使用了来自highpass的音频流,但是最终的视频包含了原始的未经过滤的音频。
所以我的问题实际上是如何让最终的视频使用过滤后的音频流而不是原始的音频流。
发布于 2019-09-15 18:31:52
showfreqs将其音频输入转换为视频输出,因此ffmpeg将返回原始音频以获得音频输出。为了避免这种情况,将高通结果分割,并将一个副本传递给显示频率,而另一个则留给音频输出。
ffmpeg -i audio.mp3 -filter_complex highpass,asplit=2[sf][aud];[sf]showfreqs,format=yuv420p;[aud]anull highpass.mp4https://stackoverflow.com/questions/57940426
复制相似问题