[FFmpeg-user] loudnorm and experimental audio codecs

Jonathan Baecker jonbae77 at gmail.com
Fri Sep 27 10:49:02 EEST 2019


Hello,

I tried to use the loudnorm filter with experimental audio codec - I 
need mostly s302m - but I had some issues.

I make a report here to: https://trac.ffmpeg.org/ticket/8131

But because it is an experimental codec, I think the priority is very 
low to fix here something.

The problem is, that I get the error:

    [s302m @ 00000275a32cba00] number of samples in frame too big
    Audio encoding failed

This is happen because s302m needs a max packet size from 16bit.

When I use the filter *asetnsamples=n=1024, *this problem goes away, but 
the I get the message:

    [out_0_0 @ 000002660d73d200] 100 buffers queued in out_0_0, something may be wrong.

When I use this output file again in ffmpeg, I get:

    [s302m @ 000001e5830f9980] frame has invalid header
    Error while decoding stream #0:0: Invalid data found when processing input

Complete output from first issue is:

    ffmpeg -f lavfi -i testsrc=size=1280x720:rate=25:duration=5 -f lavfi -i sine=frequency=1000:duration=5 -af "loudnorm=I=-23.0:TP=-1.5:LRA=11.0:dual_mono=true" -ac 2 -c:a s302m -strict -2 -f null -
    ffmpeg version N-94713-g9c369b3222 Copyright (c) 2000-2019 the FFmpeg developers
       built with gcc 9.2.0 (Rev1, Built by MSYS2 project)
       configuration:  --enable-sdl2 --enable-gmp --enable-libmp3lame --enable-libvpx --enable-libx264 --enable-libx265 --enable-fontconfig --enable-libfreetype --enable-libmysof
    a --enable-libopenjpeg --enable-libsoxr --enable-libtwolame --enable-libwavpack --enable-libwebp --enable-libxml2 --enable-libzimg --enable-gpl --enable-avisynth --enable-ch
    romaprint --enable-libfdk-aac --enable-libfribidi --enable-librubberband --enable-libzmq --enable-opengl --enable-libsrt --enable-libaom --enable-schannel --extra-cflags=-DL
    IBTWOLAME_STATIC --extra-cflags=-DCHROMAPRINT_NODLL --extra-libs=-lstdc++ --extra-cflags=-DZMQ_STATIC --extra-cflags=-DLIBXML_STATIC --enable-version3 --enable-nonfree --dis
    able-stripping
       libavutil      56. 33.100 / 56. 33.100
       libavcodec     58. 56.100 / 58. 56.100
       libavformat    58. 31.104 / 58. 31.104
       libavdevice    58.  9.100 / 58.  9.100
       libavfilter     7. 58.101 /  7. 58.101
       libswscale      5.  6.100 /  5.  6.100
       libswresample   3.  6.100 /  3.  6.100
       libpostproc    55.  6.100 / 55.  6.100
    Input #0, lavfi, from 'testsrc=size=1280x720:rate=25:duration=5':
       Duration: N/A, start: 0.000000, bitrate: N/A
         Stream #0:0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 1280x720 [SAR 1:1 DAR 16:9], 25 tbr, 25 tbn, 25 tbc
    Input #1, lavfi, from 'sine=frequency=1000:duration=5':
       Duration: N/A, start: 0.000000, bitrate: 705 kb/s
         Stream #1:0: Audio: pcm_s16le, 44100 Hz, mono, s16, 705 kb/s
    Stream mapping:
       Stream #0:0 -> #0:0 (rawvideo (native) -> wrapped_avframe (native))
       Stream #1:0 -> #0:1 (pcm_s16le (native) -> s302m (native))
    Press [q] to stop, [?] for help
    Output #0, null, to 'pipe:':
       Metadata:
         encoder         : Lavf58.31.104
         Stream #0:0: Video: wrapped_avframe, rgb24(progressive), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
         Metadata:
           encoder         : Lavc58.56.100 wrapped_avframe
         Stream #0:1: Audio: s302m, 48000 Hz, stereo, s32 (24 bit), 2688 kb/s
         Metadata:
           encoder         : Lavc58.56.100 s302m
    [Parsed_sine_0 @ 00000275a32aef00] EOF timestamp not reliable
    [s302m @ 00000275a32cba00] number of samples in frame too big
    Audio encoding failed
    Conversion failed!

On the tracker page I have also an example audio file.

My question is now: is there any way to work around this issues with 
other filters or settings, so I can use loudnorm with s302m codec? And 
when the filter *asetnsamples *is involved: is there a fixed rule of how 
many samples needed to be used?


Jonathan



More information about the ffmpeg-user mailing list