[FFmpeg-user] 'equalizer' audio filter

darkmoon at verizon.net darkmoon at verizon.net
Fri May 9 02:08:55 CEST 2014


On Thu, 08 May 2014 11:09:13 -0700 (PDT),
Nicholas Robbins <nickrobbins at yahoo.com> wrote:

>I think you need to look at 
>http://ffmpeg.org/ffmpeg-filters.html#equalizer again. Carefully, 
>twice.

Thank you...for not stopping here. However, meditation upon the text 
turned up no more useful results than searching on the topic, and I do 
try not to plague people with my questions until I have done both. 
"RTFM" is not a solution when "TFM" is unclear, obscure, or missing 
something essential. Nb: what is clear to someone may be obscure to 
someone else. For example:

>Each equalizer filter is a single slider.

I did not get that from the Guide where it reads "In order to produce 
complex equalisation curves..." because none of the technical details 
are exposed to the user of a simple hardware or GUI software graphic 
equalizer--only the sliders are available.

I am not the only person who has been left in confusion by the 
documentation for this filter, going by the numbers of posts I managed 
to find in various help forums in my initial Google search. As usual, 
most of the responses were also of the "RTFM" variety. I have seen this 
happen far too many times, when the problem is more with the Manual 
than the user.

>and that is what the documentation says.

No way do the docs provide all that. Nevertheless, your post was very 
helpful in pointing me in the right direction for further research, and 
for that I thank you. For the archives, here is what I found:

http://en.wikipedia.org/wiki/Equalization_%28audio%29

FFmpeg 'equalize' turns out to be what is called a "parametric 
equalizer" because it allows the bandwidth and center frequency of each 
band to be set. This phrase is useful in a Google search because it 
immediately turns up relevant results.

http://www.audiocheck.net/engineertraining_bands_octave.php

..which is linked from the Wikipedia article, is even more useful. It 
turns out that equalizer bands are most commonly based on musical 
octaves, and most often on "concert pitch" (A = 440 Hz) ones. A 10-band 
equalizer that covers the standard range of human hearing (20 Hz - 20 
kHz) can be constructed by making each band an octave wide. The 
band and center frequencies, as specified by the above web page, are:

20   - 31.5 - 45
45   - 63   - 90
90   - 125  - 175
175  - 250  - 350
350  - 500  - 700
700  - 1k   - 1.4k
1.4k - 2k   - 2.8k
2.8k - 4k   - 6k
6k   - 8k   - 12k
12k  - 16k  - 20k

Since 'equalizer' accepts bandwidths expressed in octaves:

equalizer=f=31.5:width_type=o:width=1:g=g1, \
equalizer=f=63:width_type=o:width=1:g=g2, \
equalizer=f=125:width_type=o:width=1:g=g3, \
..etc.

To set adjacent bands the same:

Two bands (125 and 250 Hz, for example):

equalizer=f=175:width_type=o:width=2:g=

Three bands (say, 250, 500, and 1000 Hz):

equalizer=f=500:width_type=o:width=3:g=


I used the following filter chain to correct the audio of a lecture 
recorded in an auditorium, where the acoustics were so bad that the 
speaking voices could not be understood:

equalizer=f=31.5:width_type=o:width=1:g=-12, \
equalizer=f=63:width_type=o:width=1:g=-6, \
equalizer=f=125:width_type=o:width=1:g=-3, \
equalizer=f=250:width_type=o:width=1:g=-1.5, \
equalizer=f=500:width_type=o:width=1:g=-0.7, \
equalizer=f=1000:width_type=o:width=1:g=-0.25, \
equalizer=f=8000:width_type=o:width=3:g=1

The results were much improved (the voices were clear and easy to 
understand), with no strange audio distortion. This works.

Jeff


More information about the ffmpeg-user mailing list