desbma / r128gain

Fast audio loudness scanner & tagger (ReplayGain v2 / R128)
GNU Lesser General Public License v2.1
171 stars 9 forks source link

High memory usage when running r128gain against mp3 album #11

Closed alexmbird closed 5 years ago

alexmbird commented 5 years ago

I've been on the fence about reporting this one as the answer might be "quit trying to run r128gain on a Raspberry Pi". But since the behaviour varies by the content being analyzed I'll go ahead and report it.

This is for the following setup:

opus files

I run r128gain -r -a -o --ffmpeg-path=/usr/local/bin/ffmpeg --dry-run smash_opus. Memory usage is very low. Analysis takes about 12 minutes and r128gain completes successfully.

mp3 files

I run r128gain -r -a -o --ffmpeg-path=/usr/local/bin/ffmpeg --dry-run smash_mp3. Then memory usage gets too high and it grinds to a halt, eventually failing with an error.

Some things I have tried:

Here's some detailed output:

$ /usr/local/bin/ffmpeg -version
ffmpeg version N-93757-ge94447cd49 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
configuration: --disable-ffplay --disable-ffprobe --disable-debug --arch=armhf --enable-omx --enable-omx-rpi --enable-nonfree --enable-gpl --enable-decoder=flac --enable-decoder=libopus --enable-demuxer=flac --enable-demuxer=ogg --enable-muxer=opus --enable-muxer=mp3 --enable-encoder=libmp3lame --enable-encoder=libopus --enable-libmp3lame --enable-libopus
libavutil      56. 26.100 / 56. 26.100
libavcodec     58. 52.100 / 58. 52.100
libavformat    58. 27.103 / 58. 27.103
libavdevice    58.  7.100 / 58.  7.100
libavfilter     7. 50.100 /  7. 50.100
libswscale      5.  4.100 /  5.  4.100
libswresample   3.  4.100 /  3.  4.100
libpostproc    55.  4.100 / 55.  4.100
$ /usr/local/bin/ffmpeg -filters
ffmpeg version N-93757-ge94447cd49 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
  configuration: --disable-ffplay --disable-ffprobe --disable-debug --arch=armhf --enable-omx --enable-omx-rpi --enable-nonfree --enable-gpl --enable-decoder=flac --enable-decoder=libopus --enable-demuxer=flac --enable-demuxer=ogg --enable-muxer=opus --enable-muxer=mp3 --enable-encoder=libmp3lame --enable-encoder=libopus --enable-libmp3lame --enable-libopus
  libavutil      56. 26.100 / 56. 26.100
  libavcodec     58. 52.100 / 58. 52.100
  libavformat    58. 27.103 / 58. 27.103
  libavdevice    58.  7.100 / 58.  7.100
  libavfilter     7. 50.100 /  7. 50.100
  libswscale      5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100
Filters:
  T.. = Timeline support
  .S. = Slice threading
  ..C = Command support
  A = Audio input/output
  V = Video input/output
  N = Dynamic number and/or type of input/output
  | = Source or sink filter
 ... abench            A->A       Benchmark part of a filtergraph.
 ... acompressor       A->A       Audio compressor.
 ... acontrast         A->A       Simple audio dynamic range compression/expansion filter.
 ... acopy             A->A       Copy the input audio unchanged to the output.
 ... acue              A->A       Delay filtering to match a cue.
 ... acrossfade        AA->A      Cross fade two input audio streams.
 ... acrossover        A->N       Split audio into per-bands streams.
 ... acrusher          A->A       Reduce audio bit resolution.
 .S. adeclick          A->A       Remove impulsive noise from input audio.
 .S. adeclip           A->A       Remove clipping from input audio.
 T.. adelay            A->A       Delay one or more audio channels.
 ... aderivative       A->A       Compute derivative of input audio.
 ... aecho             A->A       Add echoing to the audio.
 ... aemphasis         A->A       Audio emphasis.
 ... aeval             A->A       Filter audio signal according to a specified expression.
 T.. afade             A->A       Fade in/out input audio.
 TSC afftdn            A->A       Denoise audio samples using FFT.
 ... afftfilt          A->A       Apply arbitrary expressions to samples in frequency domain.
 .S. afir              AA->N      Apply Finite Impulse Response filter with supplied coefficients in 2nd stream.
 ... aformat           A->A       Convert the input audio to one of the specified formats.
 ... agate             A->A       Audio gate.
 .S. aiir              A->N       Apply Infinite Impulse Response filter with supplied coefficients.
 ... aintegral         A->A       Compute integral of input audio.
 ... ainterleave       N->A       Temporally interleave audio inputs.
 ... alimiter          A->A       Audio lookahead limiter.
 TSC allpass           A->A       Apply a two-pole all-pass filter.
 ... aloop             A->A       Loop audio samples.
 ... amerge            N->A       Merge two or more audio streams into a single multi-channel stream.
 T.. ametadata         A->A       Manipulate audio frame metadata.
 ... amix              N->A       Audio mixing.
 ... amultiply         AA->A      Multiply two audio streams.
 ..C anequalizer       A->N       Apply high-order audio parametric multi band equalizer.
 TS. anlmdn            A->A       Reduce broadband noise from stream using Non-Local Means.
 ... anull             A->A       Pass the source unchanged to the output.
 T.. apad              A->A       Pad audio with silence.
 ... aperms            A->A       Set permissions for the output audio frame.
 ... aphaser           A->A       Add a phasing effect to the audio.
 ... apulsator         A->A       Audio pulsator.
 ... arealtime         A->A       Slow down filtering to match realtime.
 ... aresample         A->A       Resample audio data.
 ... areverse          A->A       Reverse an audio clip.
 ... aselect           A->N       Select audio frames to pass in output.
 ... asendcmd          A->A       Send commands to filters.
 ... asetnsamples      A->A       Set the number of samples for each output audio frames.
 ... asetpts           A->A       Set PTS for the output audio frame.
 ... asetrate          A->A       Change the sample rate without altering the data.
 ... asettb            A->A       Set timebase for the audio output link.
 ... ashowinfo         A->A       Show textual information for each audio frame.
 T.. asidedata         A->A       Manipulate audio frame side data.
 T.. asoftclip         A->A       Audio Soft Clipper.
 ... asplit            A->N       Pass on the audio input to N audio outputs.
 ... astats            A->A       Show time domain statistics about audio frames.
 ..C astreamselect     N->N       Select audio streams
 ..C atempo            A->A       Adjust audio tempo.
 ... atrim             A->A       Pick one continuous section from the input, drop the rest.
 TSC bandpass          A->A       Apply a two-pole Butterworth band-pass filter.
 TSC bandreject        A->A       Apply a two-pole Butterworth band-reject filter.
 TSC bass              A->A       Boost or cut lower frequencies.
 TSC biquad            A->A       Apply a biquad IIR filter with the given coefficients.
 ... channelmap        A->A       Remap audio channels.
 ... channelsplit      A->N       Split audio into per-channel streams.
 ... chorus            A->A       Add a chorus effect to the audio.
 ... compand           A->A       Compress or expand audio dynamic range.
 ... compensationdelay A->A       Audio Compensation Delay Line.
 T.. crossfeed         A->A       Apply headphone crossfeed filter.
 ... crystalizer       A->A       Simple expand audio dynamic range filter.
 T.. dcshift           A->A       Apply a DC shift to the audio.
 ... drmeter           A->A       Measure audio dynamic range.
 T.. dynaudnorm        A->A       Dynamic Audio Normalizer.
 ... earwax            A->A       Widen the stereo image.
 ... ebur128           A->N       EBU R128 scanner.
 TSC equalizer         A->A       Apply two-pole peaking equalization (EQ) filter.
 T.. extrastereo       A->A       Increase difference between stereo audio channels.
 ..C firequalizer      A->A       Finite Impulse Response Equalizer.
 ... flanger           A->A       Apply a flanging effect to the audio.
 ... haas              A->A       Apply Haas Stereo Enhancer.
 ... hdcd              A->A       Apply High Definition Compatible Digital (HDCD) decoding.
 .S. headphone         N->A       Apply headphone binaural spatialization with HRTFs in additional streams.
 TSC highpass          A->A       Apply a high-pass filter with 3dB point frequency.
 TSC highshelf         A->A       Apply a high shelf filter.
 ... join              N->A       Join multiple audio streams into multi-channel output.
 ... loudnorm          A->A       EBU R128 loudness normalization
 TSC lowpass           A->A       Apply a low-pass filter with 3dB point frequency.
 TSC lowshelf          A->A       Apply a low shelf filter.
 ... mcompand          A->A       Multiband Compress or expand audio dynamic range.
 ... pan               A->A       Remix channels with coefficients (panning).
 ... replaygain        A->A       ReplayGain scanner.
 ... sidechaincompress AA->A      Sidechain compressor.
 ... sidechaingate     AA->A      Audio sidechain gate.
 ... silencedetect     A->A       Detect silence.
 ... silenceremove     A->A       Remove silence.
 ... stereotools       A->A       Apply various stereo tools.
 T.. stereowiden       A->A       Apply stereo widening effect.
 ... superequalizer    A->A       Apply 18 band equalization filter.
 .S. surround          A->A       Apply audio surround upmix filter.
 TSC treble            A->A       Boost or cut upper frequencies.
 ... tremolo           A->A       Apply tremolo effect.
 ... vibrato           A->A       Apply vibrato effect.
 T.C volume            A->A       Change input volume.
 ... volumedetect      A->A       Detect audio volume.
 ... aevalsrc          |->A       Generate an audio signal generated by an expression.
 ... anoisesrc         |->A       Generate a noise audio signal.
 ... anullsrc          |->A       Null audio source, return empty audio frames.
 ... hilbert           |->A       Generate a Hilbert transform FIR coefficients.
 ... sinc              |->A       Generate a sinc kaiser-windowed low-pass, high-pass, band-pass, or band-reject FIR coefficients.
 ... sine              |->A       Generate sine wave audio signal.
 ... anullsink         A->|       Do absolutely nothing with the input audio.
 ... alphaextract      V->N       Extract an alpha channel as a grayscale image component.
 ... alphamerge        VV->V      Copy the luma value of the second input into the alpha channel of the first input.
 .S. amplify           V->V       Amplify changes between successive video frames.
 TS. atadenoise        V->V       Apply an Adaptive Temporal Averaging Denoiser.
 TS. avgblur           V->V       Apply Average Blur filter.
 T.. bbox              V->V       Compute bounding box for each frame.
 ... bench             V->V       Benchmark part of a filtergraph.
 T.. bitplanenoise     V->V       Measure bit plane noise.
 ... blackdetect       V->V       Detect video intervals that are (almost) black.
 ... blackframe        V->V       Detect frames that are (almost) black.
 TS. blend             VV->V      Blend two video frames into each other.
 TS. bm3d              N->V       Block-Matching 3D denoiser.
 T.. boxblur           V->V       Blur the input.
 TS. bwdif             V->V       Deinterlace the input image.
 TS. chromahold        V->V       Turns a certain color range into gray.
 TS. chromakey         V->V       Turns a certain color into transparency. Operates on YUV colors.
 TS. chromashift       V->V       Shift chroma.
 ... ciescope          V->V       Video CIE scope.
 T.. codecview         V->V       Visualize information about some codecs.
 TS. colorbalance      V->V       Adjust the color balance.
 TS. colorchannelmixer V->V       Adjust colors by mixing color channels.
 TS. colorkey          V->V       Turns a certain color into transparency. Operates on RGB colors.
 T.. colorlevels       V->V       Adjust the color levels.
 TS. colormatrix       V->V       Convert color matrix.
 TS. colorspace        V->V       Convert between colorspaces.
 TS. convolution       V->V       Apply convolution filter.
 TS. convolve          VV->V      Convolve first video stream with second video stream.
 ... copy              V->V       Copy the input video unchanged to the output.
 ... cover_rect        V->V       Find and cover a user specified object.
 ..C crop              V->V       Crop the input video.
 T.. cropdetect        V->V       Auto-detect crop size.
 ... cue               V->V       Delay filtering to match a cue.
 TS. curves            V->V       Adjust components curves.
 .S. datascope         V->V       Video data analysis.
 TS. dctdnoiz          V->V       Denoise frames using 2D DCT.
 TS. deband            V->V       Debands video.
 T.. deblock           V->V       Deblock video.
 ... decimate          N->V       Decimate frames (post field matching filter).
 TS. deconvolve        VV->V      Deconvolve first video stream with second video stream.
 TS. dedot             V->V       Reduce cross-luminance and cross-color.
 TS. deflate           V->V       Apply deflate effect.
 ... deflicker         V->V       Remove temporal frame luminance variations.
 ... dejudder          V->V       Remove judder produced by pullup.
 T.. delogo            V->V       Remove logo from input video.
 ... deshake           V->V       Stabilize shaky video.
 TS. despill           V->V       Despill video.
 ... detelecine        V->V       Apply an inverse telecine pattern.
 TS. dilation          V->V       Apply dilation effect.
 T.. displace          VVV->V     Displace pixels.
 ... doubleweave       V->V       Weave input video fields into double number of frames.
 T.. drawbox           V->V       Draw a colored box on the input video.
 ... drawgraph         V->V       Draw a graph using input video metadata.
 T.. drawgrid          V->V       Draw a colored grid on the input video.
 T.. edgedetect        V->V       Detect and draw edge.
 ... elbg              V->V       Apply posterize effect, using the ELBG algorithm.
 T.. entropy           V->V       Measure video frames entropy.
 T.C eq                V->V       Adjust brightness, contrast, gamma, and saturation.
 TS. erosion           V->V       Apply erosion effect.
 ... extractplanes     V->N       Extract planes as grayscale frames.
 .S. fade              V->V       Fade in/out input video.
 T.. fftdnoiz          V->V       Denoise frames using 3D FFT.
 T.. fftfilt           V->V       Apply arbitrary expressions to pixels in frequency domain.
 ... field             V->V       Extract a field from the input video.
 ... fieldhint         V->V       Field matching using hints.
 ... fieldmatch        N->V       Field matching for inverse telecine.
 T.. fieldorder        V->V       Set the field order.
 T.. fillborders       V->V       Fill borders of the input video.
 ... find_rect         V->V       Find a user specified object.
 T.. floodfill         V->V       Fill area with same color with another color.
 ... format            V->V       Convert the input video to one of the specified pixel formats.
 ... fps               V->V       Force constant framerate.
 ... framepack         VV->V      Generate a frame packed stereoscopic video.
 .S. framerate         V->V       Upsamples or downsamples progressive source between specified frame rates.
 T.. framestep         V->V       Select one frame every N frames.
 ... freezedetect      V->V       Detects frozen video input.
 T.. fspp              V->V       Apply Fast Simple Post-processing filter.
 TS. gblur             V->V       Apply Gaussian Blur filter.
 TS. geq               V->V       Apply generic equation to each pixel.
 T.. gradfun           V->V       Debands video quickly using gradients.
 ... graphmonitor      V->V       Show various filtergraph stats.
 TS. greyedge          V->V       Estimates scene illumination by grey edge assumption.
 TS. haldclut          VV->V      Adjust colors using a Hald CLUT.
 TS. hflip             V->V       Horizontally flip the input video.
 T.. histeq            V->V       Apply global color histogram equalization.
 ... histogram         V->V       Compute and draw a histogram.
 T.. hqdn3d            V->V       Apply a High Quality 3D Denoiser.
 .S. hqx               V->V       Scale the input by 2, 3 or 4 using the hq*x magnification algorithm.
 ... hstack            N->V       Stack video inputs horizontally.
 T.C hue               V->V       Adjust the hue and saturation of the input video.
 ... hwdownload        V->V       Download a hardware frame to a normal frame
 ... hwmap             V->V       Map hardware frames
 ... hwupload          V->V       Upload a normal frame to a hardware frame
 T.. hysteresis        VV->V      Grow first stream into second stream by connecting components.
 ... idet              V->V       Interlace detect Filter.
 T.. il                V->V       Deinterleave or interleave fields.
 TS. inflate           V->V       Apply inflate effect.
 ... interlace         V->V       Convert progressive video into interlaced.
 ... interleave        N->V       Temporally interleave video inputs.
 ... kerndeint         V->V       Apply kernel deinterlacing to the input.
 .S. lagfun            V->V       Slowly update darker pixels.
 .S. lenscorrection    V->V       Rectify the image by correcting for lens distortion.
 TS. limiter           V->V       Limit pixels components to the specified range.
 ... loop              V->V       Loop video frames.
 TS. lumakey           V->V       Turns a certain luma into transparency.
 T.. lut               V->V       Compute and apply a lookup table to the RGB/YUV input video.
 TS. lut1d             V->V       Adjust colors using a 1D LUT.
 T.. lut2              VV->V      Compute and apply a lookup table from two video inputs.
 TS. lut3d             V->V       Adjust colors using a 3D LUT.
 T.. lutrgb            V->V       Compute and apply a lookup table to the RGB input video.
 T.. lutyuv            V->V       Compute and apply a lookup table to the YUV input video.
 TS. maskedclamp       VVV->V     Clamp first stream with second stream and third stream.
 TS. maskedmerge       VVV->V     Merge first stream with second stream using third stream as mask.
 TS. maskfun           V->V       Create Mask.
 ... mcdeint           V->V       Apply motion compensating deinterlacing.
 ... mergeplanes       N->V       Merge planes.
 ... mestimate         V->V       Generate motion vectors.
 T.. metadata          V->V       Manipulate video frame metadata.
 T.. midequalizer      VV->V      Apply Midway Equalization.
 ... minterpolate      V->V       Frame rate conversion using Motion Interpolation.
 .S. mix               N->V       Mix video inputs.
 ... mpdecimate        V->V       Remove near-duplicate frames.
 T.. negate            V->V       Negate input video.
 TS. nlmeans           V->V       Non-local means denoiser.
 T.. nnedi             V->V       Apply neural network edge directed interpolation intra-only deinterlacer.
 ... noformat          V->V       Force libavfilter not to use any of the specified pixel formats for the input to the next filter.
 TS. noise             V->V       Add noise.
 T.. normalize         V->V       Normalize RGB video.
 ... null              V->V       Pass the source unchanged to the output.
 T.. oscilloscope      V->V       2D Video Oscilloscope.
 TSC overlay           VV->V      Overlay a video source on top of the input.
 T.. owdenoise         V->V       Denoise using wavelets.
 ... pad               V->V       Pad the input video.
 ... palettegen        V->V       Find the optimal palette for a given stream.
 ... paletteuse        VV->V      Use a palette to downsample an input video stream.
 ... perms             V->V       Set permissions for the output video frame.
 TS. perspective       V->V       Correct the perspective of video.
 T.. phase             V->V       Phase shift fields.
 ... pixdesctest       V->V       Test pixel format definitions.
 T.. pixscope          V->V       Pixel data analysis.
 T.C pp                V->V       Filter video using libpostproc.
 T.. pp7               V->V       Apply Postprocessing 7 filter.
 TS. premultiply       N->V       PreMultiply first stream with first plane of second stream.
 TS. prewitt           V->V       Apply prewitt operator.
 T.. pseudocolor       V->V       Make pseudocolored video frames.
 ... psnr              VV->V      Calculate the PSNR between two video streams.
 ... pullup            V->V       Pullup from field sequence to frames.
 T.. qp                V->V       Change video quantization parameters.
 ... random            V->V       Return random frames.
 T.. readeia608        V->V       Read EIA-608 Closed Caption codes from input video and write them to frame metadata.
 ... readvitc          V->V       Read vertical interval timecode and write it to frame metadata.
 ... realtime          V->V       Slow down filtering to match realtime.
 TS. remap             VVV->V     Remap pixels.
 TS. removegrain       V->V       Remove grain.
 T.. removelogo        V->V       Remove a TV logo based on a mask image.
 ... repeatfields      V->V       Hard repeat fields based on MPEG repeat field flag.
 ... reverse           V->V       Reverse a clip.
 TS. rgbashift         V->V       Shift RGBA.
 TS. roberts           V->V       Apply roberts cross operator.
 TSC rotate            V->V       Rotate the input image.
 T.. sab               V->V       Apply shape adaptive blur.
 ..C scale             V->V       Scale the input video size and/or convert the image format.
 ..C scale2ref         VV->VV     Scale the input video size and/or convert the image format to the given reference.
 ... select            V->N       Select video frames to pass in output.
 TS. selectivecolor    V->V       Apply CMYK adjustments to specific color ranges.
 ... sendcmd           V->V       Send commands to filters.
 ... separatefields    V->V       Split input video frames into fields.
 ... setdar            V->V       Set the frame display aspect ratio.
 ... setfield          V->V       Force field for the output video frame.
 ... setparams         V->V       Force field, or color property for the output video frame.
 ... setpts            V->V       Set PTS for the output video frame.
 ... setrange          V->V       Force color range for the output video frame.
 ... setsar            V->V       Set the pixel sample aspect ratio.
 ... settb             V->V       Set timebase for the video output link.
 ... showinfo          V->V       Show textual information for each video frame.
 T.. showpalette       V->V       Display frame palette.
 T.. shuffleframes     V->V       Shuffle video frames.
 T.. shuffleplanes     V->V       Shuffle video planes.
 T.. sidedata          V->V       Manipulate video frame side data.
 .S. signalstats       V->V       Generate statistics from video analysis.
 ... signature         N->V       Calculate the MPEG-7 video signature
 T.. smartblur         V->V       Blur the input video without impacting the outlines.
 TS. sobel             V->V       Apply sobel operator.
 ... split             V->N       Pass on the input to N video outputs.
 T.C spp               V->V       Apply a simple post processing filter.
 TS. sr                V->V       Apply DNN-based image super resolution to the input.
 ... ssim              VV->V      Calculate the SSIM between two video streams.
 .S. stereo3d          V->V       Convert video stereoscopic 3D view.
 ..C streamselect      N->N       Select video streams
 ... super2xsai        V->V       Scale the input by 2x using the Super2xSaI pixel art algorithm.
 T.. swaprect          V->V       Swap 2 rectangular objects in video.
 T.. swapuv            V->V       Swap U and V components.
 TS. tblend            V->V       Blend successive frames.
 ... telecine          V->V       Apply a telecine pattern.
 TS. threshold         VVVV->V    Threshold first video stream using other video streams.
 ... thumbnail         V->V       Select the most representative frame in a given sequence of consecutive frames.
 ... tile              V->V       Tile several successive frames together.
 ... tinterlace        V->V       Perform temporal field interlacing.
 T.. tlut2             V->V       Compute and apply a lookup table from two successive frames.
 TS. tmix              V->V       Mix successive video frames.
 .S. tonemap           V->V       Conversion to/from different dynamic ranges.
 ... tpad              V->V       Temporarily pad video frames.
 .S. transpose         V->V       Transpose input video.
 ... trim              V->V       Pick one continuous section from the input, drop the rest.
 TS. unpremultiply     N->V       UnPreMultiply first stream with first plane of second stream.
 T.. unsharp           V->V       Sharpen or blur the input video.
 T.. uspp              V->V       Apply Ultra Simple / Slow Post-processing filter.
 T.. vaguedenoiser     V->V       Apply a Wavelet based Denoiser.
 ... vectorscope       V->V       Video vectorscope.
 T.. vflip             V->V       Flip the input video vertically.
 ... vfrdet            V->V       Variable frame rate detect filter.
 TS. vibrance          V->V       Boost or alter saturation.
 T.. vignette          V->V       Make or reverse a vignette effect.
 ... vmafmotion        V->V       Calculate the VMAF Motion score.
 ... vstack            N->V       Stack video inputs vertically.
 TS. w3fdif            V->V       Apply Martin Weston three field deinterlace.
 .S. waveform          V->V       Video waveform monitor.
 ... weave             V->V       Weave input video fields into frames.
 .S. xbr               V->V       Scale the input using xBR algorithm.
 ... xstack            N->V       Stack video inputs into custom layout.
 TS. yadif             V->V       Deinterlace the input image.
 ... zoompan           V->V       Apply Zoom & Pan effect.
 ... allrgb            |->V       Generate all RGB colors.
 ... allyuv            |->V       Generate all yuv colors.
 ... cellauto          |->V       Create pattern generated by an elementary cellular automaton.
 ..C color             |->V       Provide an uniformly colored input.
 ... haldclutsrc       |->V       Provide an identity Hald CLUT.
 ... life              |->V       Create life.
 ... mandelbrot        |->V       Render a Mandelbrot fractal.
 ... mptestsrc         |->V       Generate various test pattern.
 ... nullsrc           |->V       Null video source, return unprocessed video frames.
 ... pal75bars         |->V       Generate PAL 75% color bars.
 ... pal100bars        |->V       Generate PAL 100% color bars.
 ... rgbtestsrc        |->V       Generate RGB test pattern.
 ... smptebars         |->V       Generate SMPTE color bars.
 ... smptehdbars       |->V       Generate SMPTE HD color bars.
 ... testsrc           |->V       Generate test pattern.
 ... testsrc2          |->V       Generate another test pattern.
 ... yuvtestsrc        |->V       Generate YUV test pattern.
 ... nullsink          V->|       Do absolutely nothing with the input video.
 ... abitscope         A->V       Convert input audio to audio bit scope video output.
 ... adrawgraph        A->V       Draw a graph using input audio metadata.
 ... agraphmonitor     A->V       Show various filtergraph stats.
 ... ahistogram        A->V       Convert input audio to histogram video output.
 ... aphasemeter       A->N       Convert input audio to phase meter video output.
 ... avectorscope      A->V       Convert input audio to vectorscope video output.
 ..C concat            N->N       Concatenate audio and video streams.
 ... showcqt           A->V       Convert input audio to a CQT (Constant/Clamped Q Transform) spectrum video output.
 ... showfreqs         A->V       Convert input audio to a frequencies video output.
 .S. showspectrum      A->V       Convert input audio to a spectrum video output.
 .S. showspectrumpic   A->V       Convert input audio to a spectrum video output single picture.
 ... showvolume        A->V       Convert input audio volume to video output.
 ... showwaves         A->V       Convert input audio to a video output.
 ... showwavespic      A->V       Convert input audio to a video output single picture.
 ... spectrumsynth     VV->A      Convert input spectrum videos to audio output.
 ..C amovie            |->N       Read audio from a movie source.
 ..C movie             |->N       Read from a movie source.
 ... afifo             A->A       Buffer input frames and send them when they are requested.
 ... fifo              V->V       Buffer input images and send them when they are requested.
 ... abuffer           |->A       Buffer audio frames, and make them accessible to the filterchain.
 ... buffer            |->V       Buffer video frames, and make them accessible to the filterchain.
 ... abuffersink       A->|       Buffer audio frames, and make them available to the end of the filter graph.
 ... buffersink        V->|       Buffer video frames, and make them available to the end of the filter graph.

And output with -v debug:

2019-05-16 12:04:22,337 MainThread: Detected FFmpeg lib versions: libavutil: 56.26.100, libavcodec: 58.52.100, libavformat: 58.27.103, libavdevice: 58.7.100, libavfilter: 7.50.100, libswscale: 5.4.100, libswresample: 3.4.100, libpostproc: 55.4.100
2019-05-16 12:04:23,912 Thread-1: Analyzing loudness of files 'smash_mp3/208 - Stumbleine.flac.mp3', 'smash_mp3/207 - Thru the Eyes of Ruby.flac.mp3', 'smash_mp3/107 - To Forgive.flac.mp3', 'smash_mp3/114 - Take Me Down.flac.mp3', 'smash_mp3/204 - In the Arms of Sleep.flac.mp3', 'smash_mp3/106 - Bullet With Butterfly Wings.flac.mp3', 'smash_mp3/113 - Porcelina Of The Vast Oceans.flac.mp3', 'smash_mp3/201 - Where Boys Fear to Tread.flac.mp3', 'smash_mp3/110 - Cupid De Locke.flac.mp3', 'smash_mp3/105 - Here Is No Why.flac.mp3', 'smash_mp3/108 - An Ode To No One.flac.mp3', 'smash_mp3/102 - Tonight Tonight.flac.mp3', 'smash_mp3/203 - Thirty-Three.flac.mp3', 'smash_mp3/104 - Zero.flac.mp3', 'smash_mp3/101 - Mellon Collie And The Infinite Sadness.flac.mp3', 'smash_mp3/212 - Lily (My One and Only).flac.mp3', 'smash_mp3/202 - Bodies.flac.mp3', 'smash_mp3/109 - Love.flac.mp3', 'smash_mp3/206 - Tales of a Scorched Earth.flac.mp3', 'smash_mp3/209 - X.Y.U..flac.mp3', 'smash_mp3/103 - Jellybelly.flac.mp3', 'smash_mp3/213 - By Starlight.flac.mp3', 'smash_mp3/210 - We Only Come Out at Night.flac.mp3', 'smash_mp3/112 - Muzzle.flac.mp3', 'smash_mp3/214 - Farewell and Goodnight.flac.mp3', 'smash_mp3/211 - Beautiful.flac.mp3', 'smash_mp3/205 - 1979.flac.mp3', 'smash_mp3/111 - Galapogos.flac.mp3'...
2019-05-16 12:04:23,915 Thread-2: Analyzing loudness of file 'smash_mp3/208 - Stumbleine.flac.mp3'...
2019-05-16 12:04:23,927 Thread-3: Analyzing loudness of file 'smash_mp3/207 - Thru the Eyes of Ruby.flac.mp3'...
2019-05-16 12:04:23,941 Thread-4: Analyzing loudness of file 'smash_mp3/107 - To Forgive.flac.mp3'...
2019-05-16 12:04:24,009 Thread-2: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/208 - Stumbleine.flac.mp3" -filter_threads 1 -map a -filter:a aformat=sample_fmts=s16,replaygain,ebur128=framelog=verbose -f null /dev/null
2019-05-16 12:04:24,027 Thread-3: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/207 - Thru the Eyes of Ruby.flac.mp3" -filter_threads 1 -map a -filter:a aformat=sample_fmts=s16,replaygain,ebur128=framelog=verbose -f null /dev/null
2019-05-16 12:04:24,029 Thread-1: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/208 - Stumbleine.flac.mp3" -threads:1 1 -i "smash_mp3/207 - Thru the Eyes of Ruby.flac.mp3" -threads:2 1 -i "smash_mp3/107 - To Forgive.flac.mp3" -threads:3 1 -i "smash_mp3/114 - Take Me Down.flac.mp3" -threads:4 1 -i "smash_mp3/204 - In the Arms of Sleep.flac.mp3" -threads:5 1 -i "smash_mp3/106 - Bullet With Butterfly Wings.flac.mp3" -threads:6 1 -i "smash_mp3/113 - Porcelina Of The Vast Oceans.flac.mp3" -threads:7 1 -i "smash_mp3/201 - Where Boys Fear to Tread.flac.mp3" -threads:8 1 -i "smash_mp3/110 - Cupid De Locke.flac.mp3" -threads:9 1 -i "smash_mp3/105 - Here Is No Why.flac.mp3" -threads:10 1 -i "smash_mp3/108 - An Ode To No One.flac.mp3" -threads:11 1 -i "smash_mp3/102 - Tonight Tonight.flac.mp3" -threads:12 1 -i "smash_mp3/203 - Thirty-Three.flac.mp3" -threads:13 1 -i "smash_mp3/104 - Zero.flac.mp3" -threads:14 1 -i "smash_mp3/101 - Mellon Collie And The Infinite Sadness.flac.mp3" -threads:15 1 -i "smash_mp3/212 - Lily (My One and Only).flac.mp3" -threads:16 1 -i "smash_mp3/202 - Bodies.flac.mp3" -threads:17 1 -i "smash_mp3/109 - Love.flac.mp3" -threads:18 1 -i "smash_mp3/206 - Tales of a Scorched Earth.flac.mp3" -threads:19 1 -i "smash_mp3/209 - X.Y.U..flac.mp3" -threads:20 1 -i "smash_mp3/103 - Jellybelly.flac.mp3" -threads:21 1 -i "smash_mp3/213 - By Starlight.flac.mp3" -threads:22 1 -i "smash_mp3/210 - We Only Come Out at Night.flac.mp3" -threads:23 1 -i "smash_mp3/112 - Muzzle.flac.mp3" -threads:24 1 -i "smash_mp3/214 - Farewell and Goodnight.flac.mp3" -threads:25 1 -i "smash_mp3/211 - Beautiful.flac.mp3" -threads:26 1 -i "smash_mp3/205 - 1979.flac.mp3" -threads:27 1 -i "smash_mp3/111 - Galapogos.flac.mp3" -filter_threads 1 -map a -filter_complex "[0:a]asplit[a_rg_in_0][a_r128_in_0]; [a_rg_in_0]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_0]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_0]; [1:a]asplit[a_rg_in_1][a_r128_in_1]; [a_rg_in_1]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_1]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_1]; [2:a]asplit[a_rg_in_2][a_r128_in_2]; [a_rg_in_2]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_2]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_2]; [3:a]asplit[a_rg_in_3][a_r128_in_3]; [a_rg_in_3]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_3]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_3]; [4:a]asplit[a_rg_in_4][a_r128_in_4]; [a_rg_in_4]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_4]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_4]; [5:a]asplit[a_rg_in_5][a_r128_in_5]; [a_rg_in_5]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_5]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_5]; [6:a]asplit[a_rg_in_6][a_r128_in_6]; [a_rg_in_6]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_6]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_6]; [7:a]asplit[a_rg_in_7][a_r128_in_7]; [a_rg_in_7]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_7]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_7]; [8:a]asplit[a_rg_in_8][a_r128_in_8]; [a_rg_in_8]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_8]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_8]; [9:a]asplit[a_rg_in_9][a_r128_in_9]; [a_rg_in_9]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_9]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_9]; [10:a]asplit[a_rg_in_10][a_r128_in_10]; [a_rg_in_10]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_10]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_10]; [11:a]asplit[a_rg_in_11][a_r128_in_11]; [a_rg_in_11]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_11]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_11]; [12:a]asplit[a_rg_in_12][a_r128_in_12]; [a_rg_in_12]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_12]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_12]; [13:a]asplit[a_rg_in_13][a_r128_in_13]; [a_rg_in_13]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_13]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_13]; [14:a]asplit[a_rg_in_14][a_r128_in_14]; [a_rg_in_14]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_14]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_14]; [15:a]asplit[a_rg_in_15][a_r128_in_15]; [a_rg_in_15]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_15]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_15]; [16:a]asplit[a_rg_in_16][a_r128_in_16]; [a_rg_in_16]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_16]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_16]; [17:a]asplit[a_rg_in_17][a_r128_in_17]; [a_rg_in_17]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_17]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_17]; [18:a]asplit[a_rg_in_18][a_r128_in_18]; [a_rg_in_18]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_18]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_18]; [19:a]asplit[a_rg_in_19][a_r128_in_19]; [a_rg_in_19]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_19]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_19]; [20:a]asplit[a_rg_in_20][a_r128_in_20]; [a_rg_in_20]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_20]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_20]; [21:a]asplit[a_rg_in_21][a_r128_in_21]; [a_rg_in_21]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_21]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_21]; [22:a]asplit[a_rg_in_22][a_r128_in_22]; [a_rg_in_22]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_22]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_22]; [23:a]asplit[a_rg_in_23][a_r128_in_23]; [a_rg_in_23]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_23]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_23]; [24:a]asplit[a_rg_in_24][a_r128_in_24]; [a_rg_in_24]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_24]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_24]; [25:a]asplit[a_rg_in_25][a_r128_in_25]; [a_rg_in_25]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_25]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_25]; [26:a]asplit[a_rg_in_26][a_r128_in_26]; [a_rg_in_26]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_26]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_26]; [27:a]asplit[a_rg_in_27][a_r128_in_27]; [a_rg_in_27]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_27]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_27]; [a_r128_in_fmt_0][a_r128_in_fmt_1][a_r128_in_fmt_2][a_r128_in_fmt_3][a_r128_in_fmt_4][a_r128_in_fmt_5][a_r128_in_fmt_6][a_r128_in_fmt_7][a_r128_in_fmt_8][a_r128_in_fmt_9][a_r128_in_fmt_10][a_r128_in_fmt_11][a_r128_in_fmt_12][a_r128_in_fmt_13][a_r128_in_fmt_14][a_r128_in_fmt_15][a_r128_in_fmt_16][a_r128_in_fmt_17][a_r128_in_fmt_18][a_r128_in_fmt_19][a_r128_in_fmt_20][a_r128_in_fmt_21][a_r128_in_fmt_22][a_r128_in_fmt_23][a_r128_in_fmt_24][a_r128_in_fmt_25][a_r128_in_fmt_26][a_r128_in_fmt_27]concat=n=28:v=0:a=1[a_r128_in_concat]; [a_r128_in_concat]ebur128=framelog=verbose" -f null /dev/null
2019-05-16 12:04:24,033 Thread-4: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/107 - To Forgive.flac.mp3" -filter_threads 1 -map a -filter:a aformat=sample_fmts=s16,replaygain,ebur128=framelog=verbose -f null /dev/null
2019-05-16 12:04:49,451 Thread-2: Analyzing loudness of file 'smash_mp3/114 - Take Me Down.flac.mp3'...
2019-05-16 12:04:49,457 Thread-2: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/114 - Take Me Down.flac.mp3" -filter_threads 1 -map a -filter:a aformat=sample_fmts=s16,replaygain,ebur128=framelog=verbose -f null /dev/null
2019-05-16 12:05:03,411 Thread-4: Analyzing loudness of file 'smash_mp3/204 - In the Arms of Sleep.flac.mp3'...
2019-05-16 12:05:03,417 Thread-4: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/204 - In the Arms of Sleep.flac.mp3" -filter_threads 1 -map a -filter:a aformat=sample_fmts=s16,replaygain,ebur128=framelog=verbose -f null /dev/null
2019-05-16 12:05:14,901 Thread-2: Analyzing loudness of file 'smash_mp3/106 - Bullet With Butterfly Wings.flac.mp3'...
2019-05-16 12:05:14,906 Thread-2: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/106 - Bullet With Butterfly Wings.flac.mp3" -filter_threads 1 -map a -filter:a aformat=sample_fmts=s16,replaygain,ebur128=framelog=verbose -f null /dev/null
2019-05-16 12:05:32,844 Thread-3: Analyzing loudness of file 'smash_mp3/113 - Porcelina Of The Vast Oceans.flac.mp3'...
2019-05-16 12:05:32,846 Thread-3: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/113 - Porcelina Of The Vast Oceans.flac.mp3" -filter_threads 1 -map a -filter:a aformat=sample_fmts=s16,replaygain,ebur128=framelog=verbose -f null /dev/null
2019-05-16 12:05:39,728 Thread-4: Analyzing loudness of file 'smash_mp3/201 - Where Boys Fear to Tread.flac.mp3'...
2019-05-16 12:05:39,734 Thread-4: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/201 - Where Boys Fear to Tread.flac.mp3" -filter_threads 1 -map a -filter:a aformat=sample_fmts=s16,replaygain,ebur128=framelog=verbose -f null /dev/null
2019-05-16 12:05:54,783 Thread-2: Analyzing loudness of file 'smash_mp3/110 - Cupid De Locke.flac.mp3'...
2019-05-16 12:05:54,788 Thread-2: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/110 - Cupid De Locke.flac.mp3" -filter_threads 1 -map a -filter:a aformat=sample_fmts=s16,replaygain,ebur128=framelog=verbose -f null /dev/null
2019-05-16 12:06:18,180 Thread-4: Analyzing loudness of file 'smash_mp3/105 - Here Is No Why.flac.mp3'...
2019-05-16 12:06:18,184 Thread-4: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/105 - Here Is No Why.flac.mp3" -filter_threads 1 -map a -filter:a aformat=sample_fmts=s16,replaygain,ebur128=framelog=verbose -f null /dev/null
2019-05-16 12:06:19,703 Thread-2: Analyzing loudness of file 'smash_mp3/108 - An Ode To No One.flac.mp3'...
2019-05-16 12:06:19,707 Thread-2: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/108 - An Ode To No One.flac.mp3" -filter_threads 1 -map a -filter:a aformat=sample_fmts=s16,replaygain,ebur128=framelog=verbose -f null /dev/null
2019-05-16 12:06:51,542 Thread-4: Analyzing loudness of file 'smash_mp3/102 - Tonight Tonight.flac.mp3'...
2019-05-16 12:06:51,547 Thread-4: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/102 - Tonight Tonight.flac.mp3" -filter_threads 1 -map a -filter:a aformat=sample_fmts=s16,replaygain,ebur128=framelog=verbose -f null /dev/null
2019-05-16 12:06:56,020 Thread-3: Analyzing loudness of file 'smash_mp3/203 - Thirty-Three.flac.mp3'...
2019-05-16 12:06:56,022 Thread-3: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/203 - Thirty-Three.flac.mp3" -filter_threads 1 -map a -filter:a aformat=sample_fmts=s16,replaygain,ebur128=framelog=verbose -f null /dev/null
2019-05-16 12:07:05,770 Thread-2: Analyzing loudness of file 'smash_mp3/104 - Zero.flac.mp3'...
2019-05-16 12:07:05,775 Thread-2: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/104 - Zero.flac.mp3" -filter_threads 1 -map a -filter:a aformat=sample_fmts=s16,replaygain,ebur128=framelog=verbose -f null /dev/null
2019-05-16 12:07:30,657 Thread-4: Analyzing loudness of file 'smash_mp3/101 - Mellon Collie And The Infinite Sadness.flac.mp3'...
2019-05-16 12:07:30,662 Thread-4: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/101 - Mellon Collie And The Infinite Sadness.flac.mp3" -filter_threads 1 -map a -filter:a aformat=sample_fmts=s16,replaygain,ebur128=framelog=verbose -f null /dev/null
2019-05-16 12:07:31,045 Thread-2: Analyzing loudness of file 'smash_mp3/212 - Lily (My One and Only).flac.mp3'...
2019-05-16 12:07:31,057 Thread-2: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/212 - Lily (My One and Only).flac.mp3" -filter_threads 1 -map a -filter:a aformat=sample_fmts=s16,replaygain,ebur128=framelog=verbose -f null /dev/null
2019-05-16 12:07:32,321 Thread-3: Analyzing loudness of file 'smash_mp3/202 - Bodies.flac.mp3'...
2019-05-16 12:07:32,323 Thread-3: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/202 - Bodies.flac.mp3" -filter_threads 1 -map a -filter:a aformat=sample_fmts=s16,replaygain,ebur128=framelog=verbose -f null /dev/null
2019-05-16 12:07:56,158 Thread-4: Analyzing loudness of file 'smash_mp3/109 - Love.flac.mp3'...
2019-05-16 12:07:56,165 Thread-4: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/109 - Love.flac.mp3" -filter_threads 1 -map a -filter:a aformat=sample_fmts=s16,replaygain,ebur128=framelog=verbose -f null /dev/null
2019-05-16 12:08:01,567 Thread-2: Analyzing loudness of file 'smash_mp3/206 - Tales of a Scorched Earth.flac.mp3'...
2019-05-16 12:08:01,580 Thread-2: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/206 - Tales of a Scorched Earth.flac.mp3" -filter_threads 1 -map a -filter:a aformat=sample_fmts=s16,replaygain,ebur128=framelog=verbose -f null /dev/null
2019-05-16 12:08:10,621 Thread-3: Analyzing loudness of file 'smash_mp3/209 - X.Y.U..flac.mp3'...
2019-05-16 12:08:10,625 Thread-3: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/209 - X.Y.U..flac.mp3" -filter_threads 1 -map a -filter:a aformat=sample_fmts=s16,replaygain,ebur128=framelog=verbose -f null /dev/null
2019-05-16 12:09:18,132 Thread-4: Analyzing loudness of file 'smash_mp3/103 - Jellybelly.flac.mp3'...
2019-05-16 12:09:18,137 Thread-2: Analyzing loudness of file 'smash_mp3/213 - By Starlight.flac.mp3'...
2019-05-16 12:09:18,363 Thread-4: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/103 - Jellybelly.flac.mp3" -filter_threads 1 -map a -filter:a aformat=sample_fmts=s16,replaygain,ebur128=framelog=verbose -f null /dev/null
2019-05-16 12:09:18,366 Thread-2: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/213 - By Starlight.flac.mp3" -filter_threads 1 -map a -filter:a aformat=sample_fmts=s16,replaygain,ebur128=framelog=verbose -f null /dev/null
2019-05-16 13:01:20,319 Thread-1: Analyzing loudness of file 'smash_mp3/210 - We Only Come Out at Night.flac.mp3'...
2019-05-16 13:01:20,780 Thread-1: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/210 - We Only Come Out at Night.flac.mp3" -filter_threads 1 -map a -filter:a aformat=sample_fmts=s16,replaygain,ebur128=framelog=verbose -f null /dev/null
2019-05-16 13:01:54,626 Thread-4: Analyzing loudness of file 'smash_mp3/112 - Muzzle.flac.mp3'...
2019-05-16 13:01:54,631 Thread-4: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/112 - Muzzle.flac.mp3" -filter_threads 1 -map a -filter:a aformat=sample_fmts=s16,replaygain,ebur128=framelog=verbose -f null /dev/null
2019-05-16 13:02:02,678 Thread-3: Analyzing loudness of file 'smash_mp3/214 - Farewell and Goodnight.flac.mp3'...
2019-05-16 13:02:02,682 Thread-3: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/214 - Farewell and Goodnight.flac.mp3" -filter_threads 1 -map a -filter:a aformat=sample_fmts=s16,replaygain,ebur128=framelog=verbose -f null /dev/null
2019-05-16 13:02:05,021 Thread-1: Analyzing loudness of file 'smash_mp3/211 - Beautiful.flac.mp3'...
2019-05-16 13:02:05,026 Thread-1: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/211 - Beautiful.flac.mp3" -filter_threads 1 -map a -filter:a aformat=sample_fmts=s16,replaygain,ebur128=framelog=verbose -f null /dev/null
2019-05-16 13:02:12,022 Thread-2: Analyzing loudness of file 'smash_mp3/205 - 1979.flac.mp3'...
2019-05-16 13:02:12,026 Thread-2: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/205 - 1979.flac.mp3" -filter_threads 1 -map a -filter:a aformat=sample_fmts=s16,replaygain,ebur128=framelog=verbose -f null /dev/null
2019-05-16 13:02:26,472 Thread-4: Analyzing loudness of file 'smash_mp3/111 - Galapogos.flac.mp3'...
2019-05-16 13:02:26,477 Thread-4: /usr/local/bin/ffmpeg -hide_banner -nostats -threads:0 1 -i "smash_mp3/111 - Galapogos.flac.mp3" -filter_threads 1 -map a -filter:a aformat=sample_fmts=s16,replaygain,ebur128=framelog=verbose -f null /dev/null
2019-05-16 13:03:03,929 MainThread: Failed to analyze files 'smash_mp3/111 - Galapogos.flac.mp3', 'smash_mp3/103 - Jellybelly.flac.mp3', 'smash_mp3/212 - Lily (My One and Only).flac.mp3', 'smash_mp3/105 - Here Is No Why.flac.mp3', 'smash_mp3/207 - Thru the Eyes of Ruby.flac.mp3', 'smash_mp3/202 - Bodies.flac.mp3', 'smash_mp3/112 - Muzzle.flac.mp3', 'smash_mp3/210 - We Only Come Out at Night.flac.mp3', 'smash_mp3/108 - An Ode To No One.flac.mp3', 'smash_mp3/205 - 1979.flac.mp3', 'smash_mp3/204 - In the Arms of Sleep.flac.mp3', 'smash_mp3/109 - Love.flac.mp3', 'smash_mp3/110 - Cupid De Locke.flac.mp3', 'smash_mp3/102 - Tonight Tonight.flac.mp3', 'smash_mp3/213 - By Starlight.flac.mp3', 'smash_mp3/106 - Bullet With Butterfly Wings.flac.mp3', 'smash_mp3/206 - Tales of a Scorched Earth.flac.mp3', 'smash_mp3/214 - Farewell and Goodnight.flac.mp3', 'smash_mp3/203 - Thirty-Three.flac.mp3', 'smash_mp3/113 - Porcelina Of The Vast Oceans.flac.mp3', 'smash_mp3/209 - X.Y.U..flac.mp3', 'smash_mp3/211 - Beautiful.flac.mp3', 'smash_mp3/104 - Zero.flac.mp3', 'smash_mp3/114 - Take Me Down.flac.mp3', 'smash_mp3/107 - To Forgive.flac.mp3', 'smash_mp3/208 - Stumbleine.flac.mp3', 'smash_mp3/101 - Mellon Collie And The Infinite Sadness.flac.mp3', 'smash_mp3/201 - Where Boys Fear to Tread.flac.mp3': CalledProcessError Command '['/usr/local/bin/ffmpeg', '-hide_banner', '-nostats', '-threads:0', '1', '-i', 'smash_mp3/208 - Stumbleine.flac.mp3', '-threads:1', '1', '-i', 'smash_mp3/207 - Thru the Eyes of Ruby.flac.mp3', '-threads:2', '1', '-i', 'smash_mp3/107 - To Forgive.flac.mp3', '-threads:3', '1', '-i', 'smash_mp3/114 - Take Me Down.flac.mp3', '-threads:4', '1', '-i', 'smash_mp3/204 - In the Arms of Sleep.flac.mp3', '-threads:5', '1', '-i', 'smash_mp3/106 - Bullet With Butterfly Wings.flac.mp3', '-threads:6', '1', '-i', 'smash_mp3/113 - Porcelina Of The Vast Oceans.flac.mp3', '-threads:7', '1', '-i', 'smash_mp3/201 - Where Boys Fear to Tread.flac.mp3', '-threads:8', '1', '-i', 'smash_mp3/110 - Cupid De Locke.flac.mp3', '-threads:9', '1', '-i', 'smash_mp3/105 - Here Is No Why.flac.mp3', '-threads:10', '1', '-i', 'smash_mp3/108 - An Ode To No One.flac.mp3', '-threads:11', '1', '-i', 'smash_mp3/102 - Tonight Tonight.flac.mp3', '-threads:12', '1', '-i', 'smash_mp3/203 - Thirty-Three.flac.mp3', '-threads:13', '1', '-i', 'smash_mp3/104 - Zero.flac.mp3', '-threads:14', '1', '-i', 'smash_mp3/101 - Mellon Collie And The Infinite Sadness.flac.mp3', '-threads:15', '1', '-i', 'smash_mp3/212 - Lily (My One and Only).flac.mp3', '-threads:16', '1', '-i', 'smash_mp3/202 - Bodies.flac.mp3', '-threads:17', '1', '-i', 'smash_mp3/109 - Love.flac.mp3', '-threads:18', '1', '-i', 'smash_mp3/206 - Tales of a Scorched Earth.flac.mp3', '-threads:19', '1', '-i', 'smash_mp3/209 - X.Y.U..flac.mp3', '-threads:20', '1', '-i', 'smash_mp3/103 - Jellybelly.flac.mp3', '-threads:21', '1', '-i', 'smash_mp3/213 - By Starlight.flac.mp3', '-threads:22', '1', '-i', 'smash_mp3/210 - We Only Come Out at Night.flac.mp3', '-threads:23', '1', '-i', 'smash_mp3/112 - Muzzle.flac.mp3', '-threads:24', '1', '-i', 'smash_mp3/214 - Farewell and Goodnight.flac.mp3', '-threads:25', '1', '-i', 'smash_mp3/211 - Beautiful.flac.mp3', '-threads:26', '1', '-i', 'smash_mp3/205 - 1979.flac.mp3', '-threads:27', '1', '-i', 'smash_mp3/111 - Galapogos.flac.mp3', '-filter_threads', '1', '-map', 'a', '-filter_complex', '[0:a]asplit[a_rg_in_0][a_r128_in_0]; [a_rg_in_0]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_0]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_0]; [1:a]asplit[a_rg_in_1][a_r128_in_1]; [a_rg_in_1]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_1]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_1]; [2:a]asplit[a_rg_in_2][a_r128_in_2]; [a_rg_in_2]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_2]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_2]; [3:a]asplit[a_rg_in_3][a_r128_in_3]; [a_rg_in_3]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_3]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_3]; [4:a]asplit[a_rg_in_4][a_r128_in_4]; [a_rg_in_4]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_4]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_4]; [5:a]asplit[a_rg_in_5][a_r128_in_5]; [a_rg_in_5]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_5]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_5]; [6:a]asplit[a_rg_in_6][a_r128_in_6]; [a_rg_in_6]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_6]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_6]; [7:a]asplit[a_rg_in_7][a_r128_in_7]; [a_rg_in_7]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_7]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_7]; [8:a]asplit[a_rg_in_8][a_r128_in_8]; [a_rg_in_8]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_8]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_8]; [9:a]asplit[a_rg_in_9][a_r128_in_9]; [a_rg_in_9]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_9]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_9]; [10:a]asplit[a_rg_in_10][a_r128_in_10]; [a_rg_in_10]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_10]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_10]; [11:a]asplit[a_rg_in_11][a_r128_in_11]; [a_rg_in_11]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_11]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_11]; [12:a]asplit[a_rg_in_12][a_r128_in_12]; [a_rg_in_12]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_12]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_12]; [13:a]asplit[a_rg_in_13][a_r128_in_13]; [a_rg_in_13]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_13]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_13]; [14:a]asplit[a_rg_in_14][a_r128_in_14]; [a_rg_in_14]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_14]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_14]; [15:a]asplit[a_rg_in_15][a_r128_in_15]; [a_rg_in_15]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_15]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_15]; [16:a]asplit[a_rg_in_16][a_r128_in_16]; [a_rg_in_16]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_16]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_16]; [17:a]asplit[a_rg_in_17][a_r128_in_17]; [a_rg_in_17]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_17]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_17]; [18:a]asplit[a_rg_in_18][a_r128_in_18]; [a_rg_in_18]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_18]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_18]; [19:a]asplit[a_rg_in_19][a_r128_in_19]; [a_rg_in_19]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_19]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_19]; [20:a]asplit[a_rg_in_20][a_r128_in_20]; [a_rg_in_20]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_20]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_20]; [21:a]asplit[a_rg_in_21][a_r128_in_21]; [a_rg_in_21]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_21]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_21]; [22:a]asplit[a_rg_in_22][a_r128_in_22]; [a_rg_in_22]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_22]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_22]; [23:a]asplit[a_rg_in_23][a_r128_in_23]; [a_rg_in_23]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_23]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_23]; [24:a]asplit[a_rg_in_24][a_r128_in_24]; [a_rg_in_24]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_24]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_24]; [25:a]asplit[a_rg_in_25][a_r128_in_25]; [a_rg_in_25]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_25]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_25]; [26:a]asplit[a_rg_in_26][a_r128_in_26]; [a_rg_in_26]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_26]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_26]; [27:a]asplit[a_rg_in_27][a_r128_in_27]; [a_rg_in_27]aformat=sample_fmts=s16,replaygain,anullsink; [a_r128_in_27]aformat=sample_fmts=s16:channel_layouts=stereo:sample_rates=48000,afifo[a_r128_in_fmt_27]; [a_r128_in_fmt_0][a_r128_in_fmt_1][a_r128_in_fmt_2][a_r128_in_fmt_3][a_r128_in_fmt_4][a_r128_in_fmt_5][a_r128_in_fmt_6][a_r128_in_fmt_7][a_r128_in_fmt_8][a_r128_in_fmt_9][a_r128_in_fmt_10][a_r128_in_fmt_11][a_r128_in_fmt_12][a_r128_in_fmt_13][a_r128_in_fmt_14][a_r128_in_fmt_15][a_r128_in_fmt_16][a_r128_in_fmt_17][a_r128_in_fmt_18][a_r128_in_fmt_19][a_r128_in_fmt_20][a_r128_in_fmt_21][a_r128_in_fmt_22][a_r128_in_fmt_23][a_r128_in_fmt_24][a_r128_in_fmt_25][a_r128_in_fmt_26][a_r128_in_fmt_27]concat=n=28:v=0:a=1[a_r128_in_concat]; [a_r128_in_concat]ebur128=framelog=verbose', '-f', 'null', '/dev/null']' returned non-zero exit status -9
2019-05-16 13:03:03,932 MainThread: File 'smash_mp3/111 - Galapogos.flac.mp3': loudness = -14.5 LUFS, sample peak = 0.0 dBFS
2019-05-16 13:03:03,932 MainThread: File 'smash_mp3/103 - Jellybelly.flac.mp3': loudness = -10.3 LUFS, sample peak = 0.0 dBFS
2019-05-16 13:03:03,933 MainThread: File 'smash_mp3/212 - Lily (My One and Only).flac.mp3': loudness = -16.0 LUFS, sample peak = -2.4 dBFS
2019-05-16 13:03:03,934 MainThread: File 'smash_mp3/105 - Here Is No Why.flac.mp3': loudness = -10.4 LUFS, sample peak = 0.0 dBFS
2019-05-16 13:03:03,934 MainThread: File 'smash_mp3/207 - Thru the Eyes of Ruby.flac.mp3': loudness = -11.9 LUFS, sample peak = 0.0 dBFS
2019-05-16 13:03:03,935 MainThread: File 'smash_mp3/202 - Bodies.flac.mp3': loudness = -9.6 LUFS, sample peak = 0.0 dBFS
2019-05-16 13:03:03,936 MainThread: File 'smash_mp3/112 - Muzzle.flac.mp3': loudness = -11.3 LUFS, sample peak = -0.0 dBFS
2019-05-16 13:03:03,937 MainThread: File 'smash_mp3/210 - We Only Come Out at Night.flac.mp3': loudness = -14.9 LUFS, sample peak = -1.2 dBFS
2019-05-16 13:03:03,938 MainThread: File 'smash_mp3/108 - An Ode To No One.flac.mp3': loudness = -11.4 LUFS, sample peak = 0.0 dBFS
2019-05-16 13:03:03,939 MainThread: File 'smash_mp3/205 - 1979.flac.mp3': loudness = -11.9 LUFS, sample peak = 0.0 dBFS
2019-05-16 13:03:03,940 MainThread: File 'smash_mp3/204 - In the Arms of Sleep.flac.mp3': loudness = -15.4 LUFS, sample peak = -2.3 dBFS
2019-05-16 13:03:03,941 MainThread: File 'smash_mp3/109 - Love.flac.mp3': loudness = -11.3 LUFS, sample peak = 0.0 dBFS
2019-05-16 13:03:03,941 MainThread: File 'smash_mp3/110 - Cupid De Locke.flac.mp3': loudness = -11.8 LUFS, sample peak = 0.0 dBFS
2019-05-16 13:03:03,942 MainThread: File 'smash_mp3/102 - Tonight Tonight.flac.mp3': loudness = -12.0 LUFS, sample peak = 0.0 dBFS
2019-05-16 13:03:03,943 MainThread: File 'smash_mp3/213 - By Starlight.flac.mp3': loudness = -12.7 LUFS, sample peak = 0.0 dBFS
2019-05-16 13:03:03,944 MainThread: File 'smash_mp3/106 - Bullet With Butterfly Wings.flac.mp3': loudness = -11.4 LUFS, sample peak = 0.0 dBFS
2019-05-16 13:03:03,945 MainThread: File 'smash_mp3/206 - Tales of a Scorched Earth.flac.mp3': loudness = -10.4 LUFS, sample peak = 0.0 dBFS
2019-05-16 13:03:03,946 MainThread: File 'smash_mp3/214 - Farewell and Goodnight.flac.mp3': loudness = -15.1 LUFS, sample peak = -0.3 dBFS
2019-05-16 13:03:03,947 MainThread: File 'smash_mp3/203 - Thirty-Three.flac.mp3': loudness = -14.9 LUFS, sample peak = -1.8 dBFS
2019-05-16 13:03:03,948 MainThread: File 'smash_mp3/113 - Porcelina Of The Vast Oceans.flac.mp3': loudness = -11.9 LUFS, sample peak = 0.0 dBFS
2019-05-16 13:03:03,949 MainThread: File 'smash_mp3/209 - X.Y.U..flac.mp3': loudness = -11.0 LUFS, sample peak = 0.0 dBFS
2019-05-16 13:03:03,950 MainThread: File 'smash_mp3/211 - Beautiful.flac.mp3': loudness = -12.9 LUFS, sample peak = 0.0 dBFS
2019-05-16 13:03:03,951 MainThread: File 'smash_mp3/104 - Zero.flac.mp3': loudness = -9.9 LUFS, sample peak = -0.3 dBFS
2019-05-16 13:03:03,952 MainThread: File 'smash_mp3/114 - Take Me Down.flac.mp3': loudness = -15.7 LUFS, sample peak = -0.6 dBFS
2019-05-16 13:03:03,953 MainThread: File 'smash_mp3/107 - To Forgive.flac.mp3': loudness = -13.8 LUFS, sample peak = 0.0 dBFS
2019-05-16 13:03:03,953 MainThread: File 'smash_mp3/208 - Stumbleine.flac.mp3': loudness = -20.2 LUFS, sample peak = -3.0 dBFS
2019-05-16 13:03:03,954 MainThread: File 'smash_mp3/101 - Mellon Collie And The Infinite Sadness.flac.mp3': loudness = -23.1 LUFS, sample peak = -5.6 dBFS
2019-05-16 13:03:03,955 MainThread: File 'smash_mp3/201 - Where Boys Fear to Tread.flac.mp3': loudness = -11.2 LUFS, sample peak = 0.0 dBFS
2019-05-16 13:03:03,956 MainThread: Album 'smash_mp3': loudness = SKIPPED, sample peak = SKIPPED
desbma commented 5 years ago

Can you try running r128gain without the album gain, and on a single core: r128gain -c 1 -r -o --ffmpeg-path=/usr/local/bin/ffmpeg --dry-run smash_mp3 or taskset -c 0 r128gain -r -o --ffmpeg-path=/usr/local/bin/ffmpeg --dry-run smash_mp3?

alexmbird commented 5 years ago

Done - r128gain -c 1 -r -o --ffmpeg-path=/usr/local/bin/ffmpeg --dry-run smash_mp3 completed successfully in 14m.

desbma commented 5 years ago

Now if you run r128gain -a -r -o --ffmpeg-path=/usr/local/bin/ffmpeg --dry-run smash_mp3, but on a directory with only 2 MP3 files in it, do you also run out of memory?

alexmbird commented 5 years ago
$ ls -l smash_mp3_2
total 9868
-rw-r--r-- 1 mock mock 3997630 May 16 09:57 101 - Mellon Collie And The Infinite Sadness.flac.mp3
-rw-r--r-- 1 mock mock 6106786 May 16 09:58 102 - Tonight Tonight.flac.mp3

r128gain -a -r -o --ffmpeg-path=/usr/local/bin/ffmpeg --dry-run smash_mp3 completes fine when only the first two tracks are present.

As a test I've used the time command to measure peak memory usage for different numbers of tracks. To keep it fair I've used N copies of the same track rather than ones of differing length. Output is:

It looks like memory usage scales linearly with the number of tracks. I wonder if the audio is being decompressed into ram and kept there.

desbma commented 5 years ago

My initial thought, was that it was a bug (memory leak) in FFmpeg triggered only for MP3 and the album gain filter chain (which is quite complex). But if the memory usage only linearly with the number of tracks, this does not seem to be the case.

The only question is why it is different between Opus and MP3 files. On my system the memory usage between both is very similar, with only a few percent of difference.

If you have time to spare, and are motivated to fix this, you can:

I am closing this issue because there is nothing I can do about the FFmpeg memory usage, but if you need help/guidance in your tests, I am still around.