我正在尝试减少从视频中提取的音频文件中的噪音。目标是识别语音,所以我试图滤除高于 300 和低于 3000hz 的频率。我尝试通过发出命令来使用均衡器滤波器:
ffmpeg -f lavfi -i "amovie=input.wav,equalizer=f=1300:width_type=h:width=1000" output.wav
但它给了我错误:
C:\Users\Sudh\Downloads>ffmpeg -f lavfi -i "amovie=input.wav,equalizer=f=300:w
th_type=h:width=3000" output.wav >output.txt
ffmpeg version git-2012-03-03-663d727-xuggle-4.0 Copyright (c) 2000-2012 the F
peg developers
built on Mar 20 2012 16:24:58 with gcc 4.5.2
configuration: --prefix=/d/desarrollo/xuggle --extra-version=xuggle-4.0 --ex
a-cflags=-I/d/desarrollo/xuggle/xuggle_v5/xuggle-xuggler-win/build/native/x86_
-w64-mingw32/captive/stage/d/desarrollo/xuggle/include --extra-ldflags=-L/d/de
rrollo/xuggle/xuggle_v5/xuggle-xuggler-win/build/native/x86_64-w64-mingw32/cap
ve/stage/d/desarrollo/xuggle/lib --enable-shared --enable-gpl --enable-nonfree
-enable-libx264 --enable-version3 --enable-cross-compile --cross-prefix= --arc
x86_64 --target-os=mingw32 --enable-libmp3lame --enable-libvorbis --enable-lib
eora --enable-libspeex --enable-libvo-aacenc --enable-libopencore-amrnb --enab
-libopencore-amrwb --enable-librtmp --enable-openssl --enable-zlib --enable-li
px
libavutil 51. 41.100 / 51. 41.100
libavcodec 54. 4.100 / 54. 4.100
libavformat 54. 1.100 / 54. 1.100
libavdevice 53. 4.100 / 53. 4.100
libavfilter 2. 62.101 / 2. 62.101
libswscale 2. 1.100 / 2. 1.100
libswresample 0. 7.100 / 0. 7.100
libpostproc 52. 0.100 / 52. 0.100
[wav @ 00000000006DB360] max_analyze_duration 5000000 reached at 5120000
[amovie @ 00000000006D9DF0] seek_point:0 format_name:(null) file_name:input.wa
stream_index:0
[lavfi @ 00000000006D97F0] No such filter: 'equalizer'
amovie=input.wav,equalizer=f=300:width_type=h:width=3000: Invalid argument
我也尝试过使用带阻滤波器
ffmpeg -f lavfi -i "amovie=input.wav,equalizer=f=1300:width_type=h:width=1000" output.wav
但结果相同,说“没有这样的过滤器带拒绝”。
我错过了什么?有没有更好的方法使用 ffmpeg 来减少噪音?
我也正在使用最新的 64 位静态版本http://ffmpeg.zeranoe.com/builds/
答案1
我找到了解决方案,只需从http://ffmpeg.zeranoe.com/builds/。还要确保重新启动系统并更改环境变量以删除旧 ffmpeg 的痕迹。