[FFmpeg-devel] On libavfilter: A Summary of Issues

Clément Bœsch ubitux at gmail.com
Mon Feb 18 11:03:03 CET 2013


On Mon, Feb 18, 2013 at 05:55:08AM +0100, Jan Ehrhardt wrote:
> Clément Bœsch in gmane.comp.video.ffmpeg.devel (Mon, 18 Feb 2013
> 03:37:04 +0100):
> >The main problem is that you need to adjust ebur128 so it is resizing
> >frames to windows to something like 100ms (IIRC), which might require some
> >thinking in the filter. The reason is that a loudness result is associated
> >for this time frame, so you need to transmit metadata to volume at this
> >rate.
> 
> I just tested the ebur128 filter on one of my videos. The filter reports
> the loudnesses every 100ms:
> 

Yes the report is every 100ms, but you can have multiple prints in a same
filter_frame() call, or you can have none, all depending on the time frame
size. If you're going to inject metadata, you must raise frames of 100 ms.

[...]
> [Parsed_ebur128_1 @ 00000000040e2d40] Summary:
>   Integrated loudness:
>     I:         -11.9 LUFS
>     Threshold: -22.3 LUFS
>   Loudness range:
>     LRA:         7.9 LU
>     Threshold: -32.3 LUFS
>     LRA low:   -17.1 LUFS
>     LRA high:   -9.2 LUFS
> 
> Quote from the specs: "Basically EBU R128 recommends to normalize audio
> at -23 LUFS +/- 1 LU, measured with a relative gate at -10 LU."
> 
> My video had an Integrated loudness of -11.9 LUFS, far away from the
> desired value.
> 
> I had to apply a volume=0.27 to get near the desired -23 LUFS:
> 

Note: you can also make a simple subtraction and express the volume in dB
(the dB syntax is supported).

> [Parsed_ebur128_1 @ 00000000043a0b20] Summary:
>   Integrated loudness:
>     I:         -23.3 LUFS
>     Threshold: -33.8 LUFS
>   Loudness range:
>     LRA:         8.0 LU
>     Threshold: -43.8 LUFS
>     LRA low:   -28.6 LUFS
>     LRA high:  -20.6 LUFS
> 
> This was a volume=0.27 on a second pass. It will be a delicate operation
> to change the volume=1 to a volume=0.27 during a one pass encoding.
> 

The idea I was talking about was to have filtergraph such as
ebur128=meta=1,volume=meta. The ebur128 filter would be reconstructing
time frames of 100ms, injecting all the metadata, and volume filter would
be reading the metadata of the frame received and apply it.

At least that was one of the solutions.

-- 
Clément B.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 490 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20130218/00b030e5/attachment.asc>


More information about the ffmpeg-devel mailing list