{"id":2687,"date":"2026-10-04T16:09:56","date_gmt":"2026-10-04T22:09:56","guid":{"rendered":"https:\/\/www.itayemi.com\/blog\/?p=2687"},"modified":"2026-10-04T16:13:09","modified_gmt":"2026-10-04T22:13:09","slug":"re-encoding-music-files-to-normalize-the-volume-loudness","status":"publish","type":"post","link":"https:\/\/www.itayemi.com\/blog\/2026\/10\/04\/re-encoding-music-files-to-normalize-the-volume-loudness\/","title":{"rendered":"Re-encoding music files to normalize the volume (loudness)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Issue: To prevent sections from suddenly being much louder than others, you want to normalize or balance the volume (loudness). I also reduced the size of the files by reducing the bit rate to from 256kbps to 192kbps (bit rate) at the same time.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>download ffmpeg for Windows from <a href=\"https:\/\/www.gyan.dev\/ffmpeg\/builds\/\">https:\/\/www.gyan.dev\/ffmpeg\/builds\/<\/a> (e.g., <a href=\"https:\/\/www.gyan.dev\/ffmpeg\/builds\/packages\/ffmpeg-9.0.2-essentials_build.7z\">https:\/\/www.gyan.dev\/ffmpeg\/builds\/packages\/ffmpeg-9.0.2-essentials_build.7z<\/a>)<\/li>\n\n\n\n<li>extract it to a suitable location e.g., c:\\ffmpeg902<\/li>\n\n\n\n<li>update the PATH envirinment varuable on your system to include the path the ffmpeg executable e.g., c:\\ffmpeg902\\bin<\/li>\n\n\n\n<li>open a new command prompt, and create a python virtial environment (assumes you have python installed on your system already and have added it to the PATH envionment variable)<br>example:<br>cd C:\\Users\\itababa\\<br>python -m venv myenv<\/li>\n\n\n\n<li>activate the virtual environment<br>C:\\Users\\itababa\\myenv\\Scripts\\activate.bat<\/li>\n\n\n\n<li>Install the python ffmpeg-normalize module into the virtual environment<br>pip install ffmpeg-normalize<br>deactivate<\/li>\n\n\n\n<li>open a command prompt, CD to the location of your MP3 files e.g. C:\\Users\\itababa\\Downloads\\mymusic\\<\/li>\n\n\n\n<li>create a sub-folder to hold the normalized files e.g., mkdir normalized<\/li>\n\n\n\n<li>run a loop to normalize all the mp3 files in the current directory<br>C:\\Users\\itababa\\myenv\\Scripts\\activate.bat<br>for %i in (*.mp3) do ffmpeg-normalize &#8220;%i&#8221; -c:a libmp3lame -b:a 192k -ar 44100 -o &#8220;normalized\\%i&#8221;<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">NOTE: The description\/meaning of the parameters used by ffmpeg-normalize:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>LRA=11<\/code><\/strong>: Loudness Range. This controls the dynamic range to keep the audio feeling smooth and natural rather than overly compressed. [<a href=\"https:\/\/dev.to\/javidjamae\/how-to-normalize-audio-with-ffmpeg-volume-loudnorm-and-api-11cb\">1<\/a>, <a href=\"https:\/\/korben.info\/en\/ffmpeg-normalize-audio-volume-loudnorm.html\">2<\/a>, <a href=\"https:\/\/www.ffmpeg-micro.com\/blog\/ffmpeg-normalize-audio-volume\">3<\/a>]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>I=-16<\/code><\/strong>: Sets the Target Integrated Loudness to -16 LUFS (the standard for online video distribution).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><code>TP=-1.5<\/code><\/strong>: True Peak ceiling. It ensures that even when the volume is boosted, the loudest spikes won&#8217;t pass -1.5 dB, completely eliminating audio clipping or cracking.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Issue: To prevent sections from suddenly being much louder than others, you want to normalize or balance the volume (loudness). I also reduced the size of the files by reducing the bit rate to from 256kbps to 192kbps (bit rate) &hellip; <a href=\"https:\/\/www.itayemi.com\/blog\/2026\/10\/04\/re-encoding-music-files-to-normalize-the-volume-loudness\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":336,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[1522,1519,1523,1520,1521,1494,1454],"class_list":["post-2687","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-192kbps","tag-ffmpeg","tag-ffmpeg-normalize","tag-mp3","tag-normalize","tag-python","tag-windows"],"_links":{"self":[{"href":"https:\/\/www.itayemi.com\/blog\/wp-json\/wp\/v2\/posts\/2687","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itayemi.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.itayemi.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.itayemi.com\/blog\/wp-json\/wp\/v2\/users\/336"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itayemi.com\/blog\/wp-json\/wp\/v2\/comments?post=2687"}],"version-history":[{"count":2,"href":"https:\/\/www.itayemi.com\/blog\/wp-json\/wp\/v2\/posts\/2687\/revisions"}],"predecessor-version":[{"id":2689,"href":"https:\/\/www.itayemi.com\/blog\/wp-json\/wp\/v2\/posts\/2687\/revisions\/2689"}],"wp:attachment":[{"href":"https:\/\/www.itayemi.com\/blog\/wp-json\/wp\/v2\/media?parent=2687"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itayemi.com\/blog\/wp-json\/wp\/v2\/categories?post=2687"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itayemi.com\/blog\/wp-json\/wp\/v2\/tags?post=2687"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}