[FFmpeg-user] Frequency response of an ffmpeg equalizer filter
Nicolas VAMBAIRGUE
nicolas2020 at nv76.info
Fri Jun 26 21:31:16 EEST 2020
Le 26/06/2020 à 19:11, Michael Koch a écrit :
> Am 26.06.2020 um 19:00 schrieb Nicolas VAMBAIRGUE:
>>
>> Le 26/06/2020 à 18:15, Paul B Mahol a écrit :
>>> On 6/26/20, Nicolas VAMBAIRGUE <nicolas2020 at nv76.info> wrote:
>>>> Hello,
>>>>
>>>>
>>>> I'm starting to use the ffmpeg filters, using the documentation. It
>>>> seems working but, I don't find the way to get the frequency
>>>> response of
>>>> a filter. For example, let's say I'm applying this filter :
>>>>
>>>> equalizer=f=7000:t=q:w=2:g=2,equalizer=f=1000:t=q:w=1:g=3,equalizer=f=80:t=q:w=2:g=-30
>>>>
>>>>
>>>> in the following command :
>>>>
>>>> ffmpeg -re -i /home/dr_click/live.wav -acodec pcm_s16be -ar 44100
>>>> -ac 2
>>>> -f rtp -af
>>>> "equalizer=f=7000:t=q:w=2:g=2,equalizer=f=1000:t=q:w=1:g=3,equalizer=f=80:t=q:w=2:g=-30"
>>>>
>>>> rtp://127.0.0.1:1234
>>>>
>>>> It works, I'm hearing a distorted sound. And what I'd like to know,
>>>> with
>>>> such a filter, is the db gain for the 2000 Hz signal or for the 150Hz
>>>> signal or any other frequency with a query like : give me your
>>>> frequency
>>>> and I'll tell you which gain is applied at this frequency with the
>>>> defined filter.
>>> Yes, with anequalizer filter.
>>
>> => Ok, so let's say I'm using this command with an anequaliwer
>>
>> =>_ffmpeg -re -i /home/dr_click/live.wav -af "anequalizer=c0
>> f=200 w=100 g=-10 t=0|c1 f=200 w=100 g=-10 t=0 curves=true" -acodec
>> pcm_s16be -ar 44100 -ac 2 -f rtp rtp://127.0.0.1:1234
>>
>> => How do I get the frequency graph of such a filter ? Is it
>> mandatory to get a video stream (and how to get / display it) ? Can't
>> I get command with the frequency as input and the gain as output ? Of
>> course, such a command would means I need to query the db output for
>> each interesting frequency.
>
> Make a test file with 2kHz sine:
> ffmpeg -f lavfi -i sine=2000 -t 5 -y test.wav
>
> Analyze the volume of this file:
> ffmpeg -i test.wav -af volumedetect -y out1.wav
> The volume is written to the log file.
>
> Then apply your filter and analyze the output again.
>
> Michael
=> Thank you again for your answer Michael but, I think I
probably didn't expressed my question with the right words. Let's forget
the file in and the file out to focus only on the filter :
"anequalizer=c0 f=200 w=100 g=-10 t=0|c1 f=200 w=100 g=-10 t=0"
=> What I want to know, before applying any input signal is the
result of this mathematical function : f(frequency) = gain. For example,
this filter is centered on 200 Hz with a bandwith of 100Hz and a gain of
-10 db. So, all the 200Hz frequencies will be attenuated by -10 db. But
what for the 250Hz frequencies in the signal ? Still -10 db ? Or -9 ? Or
-7.5 ? Same question for the 350 Hz frequencies in the signal.
=> The result given like a mathematical function, a cloud of
dots, an image or anything else that could help me to draw such a graph
:
https://s1.qwant.com/thumbr/0x380/0/5/cfb0ceac6e3b4fdd73923eaaf68e76c58991b4de8ac088f4dfad665d5b8c34/parametric.png?u=https%3A%2F%2Fcdn.tutsplus.com%2Faudio%2Fuploads%2Flegacy%2Fqt_040_eq%2Fparametric.png&q=0&b=1&p=0&a=1
=> I wish my question is more clear now.
=> And thank you again for your answers and your help :-)
>
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
More information about the ffmpeg-user
mailing list