[FFmpeg-devel] [PATCH 2/3] lavfi/ebur128: add metadata injection. - volnorm.patch (0/1)

Nicolas George nicolas.george at normalesup.org
Fri May 3 12:09:23 CEST 2013

[ Volume normalization based on ebur128 measurements. ]

Concerning the reactivity problem, I believe the best course of action is to
use the momentary loudness (lavfi.r128.M) and add a new filter to smooth the
value over time, by computing a sliding average, or in fact any kind of
low-pass filter. The best would be something that reacts very quickly to
long-term tendencies but smooths completely short-term variations.

I believe the short term loudness (lavfi.r128.S) is not suitable because it
only takes the past into account. To use it, we would need to use the value
at t+1.5 to adjust the frame at t.

I have started working on a (a)metasmooth filter, but the smoothing
algorithm itself is not yet satisfactory, especially at the beginning and
end of stream (and I have been sidetracked by other projects).

Concerning the adjustment, I believe using a non-linear function would be
the best solution. For example, consider the following function:

gnuplot <<<'plot [-100:0] -20-60*tanh(x/69.25), -24-x'

Note that the best function really depends on what people want to do. If the
goal is to take recordings from various sources and ensure that they all
have the exact same global loudness, there is no way around two pass


  Nicolas George
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20130503/e4d75d68/attachment.asc>

More information about the ffmpeg-devel mailing list