To normalize voiceover loudness with ffmpeg, run the loudnorm filter twice: once to measure the file, then again with those measurements fed back in so the filter can apply one clean, linear gain change. Pick a target in LUFS for where the video will play, cap the true peak a little below 0 dBTP, and check the output with a third measurement. The rest of this post is the commands and the reasons behind each number.
Key takeaways
Loudness is measured in LUFS, which tracks how loud audio sounds, not how high the peaks go.
Single-pass loudnorm works, but it adjusts gain on the fly and can pump. Two passes give a steadier result.
Normalize the narration track before mixing music under it, then normalize the final mix.
Always measure the output.…