FFmpeg was equipped in late 2016 with a filter that allows for Loudness control.
See loudnorm in the documentation and a Blog post from the author of the filter.
Many thanks to Kyle for this nice feature!
You can create Droplets with your selected parameters.
You can also use the Command Line version "WinLoudCLI".
It is distributed in the same package.
Here is the manual for the CLI:
Win(-dows) Loud(-norm ffmpeg filter) Command Line Interface
version 126.96.36.199 CC-NC-BY Muxson.com 2016 <muxson@g******>
Usage: WinLoudCLI [Options] Infile Outfile
Supported input filetype: aac, aiff, flac, m4a, mp2, mp3, mp4, ogg, wav, wma
Supported output filetypes: mp3, wav
Filetype is specified by the extension of Outfile
The defalut process is 1 Pass. Optionally, the 2 Pass process can be switched on
Even SMARTer: let the program decide if a 2nd pass is needed
Dependency: ffmpeg.exe with libebur128 (which is standard since Oct 2016)
has to be found in the same folder as WinLoudCLI.exe
Options: (can appear in any order)
-h Print this help
-Lk <Lk> Integrated Loudness in LUFS (Default: -16)
-TP <TP> Max True Peaks in dBTP (Default: -1.5)
-LRA <LRA> Loudness Range in LU (Default: 8)
-FREQ <freq> Sample Frequency in Hz (Default: 44100)
<freq>: 32k, 44100, 48k
If not specified: as original
-CBR <bitrate> Constant Bit Rate in bps (Default: 128k)
<bitrate>: 32k, 64k, 96k, 128k, 192k, 256k
-mono Force mono encoding (Default: as original)
-SMART 2nd Pass only if needed (Default: 1 Pass)
2nd pass if target_offset > 1LU, output_lra > LRA or output_tp > TP
-2P 2 Passes in any case. Overrides -SMART (Default: 1 Pass)
-OW Overwrite Outfile if already exists (Default: Generates unique filename)