[FFmpeg-user] Dynaudnorm & earwax filters

Paul B Mahol onemda at gmail.com
Wed Dec 12 20:42:16 EET 2018


On 12/12/18, Ronak <ronak2121-at-yahoo.com at ffmpeg.org> wrote:
>
>
>> On Dec 12, 2018, at 12:10 PM, Paul B Mahol <onemda at gmail.com> wrote:
>>
>> On 12/12/18, Ronak <ronak2121-at-yahoo.com at ffmpeg.org> wrote:
>>>
>>>
>>>> On Dec 12, 2018, at 11:36 AM, Paul B Mahol <onemda at gmail.com> wrote:
>>>>
>>>> On 12/12/18, Ronak <ronak2121-at-yahoo.com at ffmpeg.org> wrote:
>>>>>
>>>>>> On Dec 12, 2018, at 11:26 AM, Paul B Mahol <onemda at gmail.com> wrote:
>>>>>>
>>>>>> On 12/12/18, Ronak <ronak2121-at-yahoo.com at ffmpeg.org> wrote:
>>>>>>>
>>>>>>>
>>>>>>>> On Dec 12, 2018, at 8:32 AM, Nicolas George <george at nsup.org> wrote:
>>>>>>>>
>>>>>>>> Ronak (2018-12-11):
>>>>>>>>> Ok thanks. I tried to use this filter in my iOS code; but I'm
>>>>>>>>> getting
>>>>>>>>> errors with an error code -35.
>>>>>>>>>
>>>>>>>>> This is my code that tries to write data into the filter graph and
>>>>>>>>> reads it back; what am I doing wrong?
>>>>>>>>
>>>>>>>> I do not read whatever language that is, but at the very least your
>>>>>>>> code
>>>>>>>> is missing the translation error code -> error message.
>>>>>>>>
>>>>>>>
>>>>>>> I found out what my problem is; it's that the dynaudnorm filter is
>>>>>>> returning
>>>>>>> EAGAIN; which means I need to send it more PCM frames.
>>>>>>>
>>>>>>> Now, I'm trying to integrate this filter into a real time player
>>>>>>> context;
>>>>>>> and I would like to avoid audio artifacts. I've been playing with
>>>>>>> various
>>>>>>> options that the filter has; but I can't seem to find one where it
>>>>>>> would
>>>>>>> work better in the real time context.
>>>>>>>
>>>>>>> Does anyone know what the correct parameters would be so it works
>>>>>>> frame
>>>>>>> by
>>>>>>> frame or in a much smaller frame size so we can avoid audio
>>>>>>> artifacts?
>>>>>>> Alternatively, is there another ffmpeg filter better suited to real
>>>>>>> time
>>>>>>> dynamic range compression or volume normalization?
>>>>>>>
>>>>>>
>>>>>> If you read documentation of filter options you would know.
>>>>>
>>>>> I already did and tried all sorts of things. I've tried options like:
>>>>> "f=500:g=3:m=10:n=1:b=1", "f=40:g=3:m=10:n=1:b=1". I've even tried the
>>>>> extreme: "f=8000:g=3:m=10:n=1:b=1"
>>>>>
>>>>> But I still get back lots of EAGAIN.
>>>>
>>>> That's normal, if you insist on 0 latency look at something else.
>>>> Other players like mpv, handle it fine.
>>>
>>> Ok. One last thing is it seems like the filter is spitting out lots of
>>> pops
>>> and crackles when I can get it to return audio frames back out.
>>>
>>> Do you know why that would be? I changed all my arguments to just be
>>> f="1000" since I thought my options would be causing this. But it's not.
>>>
>>> Just in case it helps, I am sending in FLTP which is being resampled by
>>> the
>>> rwresample filter to S32. I don't think that would be a factor in this
>>> right?
>>>
>>
>> You should send only DBL to this filter.
>
> Sorry I misquoted.
>
> [volume normalization @ 0x7fa4c860dd80] auto-inserting filter
> 'auto_resampler_0' between the filter 'input' and the filter 'volume
> normalization'
> [auto_resampler_0 @ 0x7fa4c8610940] ch:2 chl:stereo fmt:fltp r:44100Hz ->
> ch:2 chl:stereo fmt:dblp r:44100Hz
>
> It is being resampled to DBLP.
>
> Besides doing a whole bunch of trial and error, are there any recommended
> options to use here?
>
> I'm writing one frame of PCM audio into the filter at a time, within my
> playback audio graph.
>

I can not guess, need to look at source code.


More information about the ffmpeg-user mailing list