
모든 오디오 파일이 똑같은 품질을 가지는 것은 아닙니다. 어떤 파일은 너무 조용하고, 어떤 파일은 너무 시끄럽거나 미묘하게 균형이 어긋나 있기도 합니다. 문제가 있는 오디오 파일을 만났다고 해서 그대로 감수해야 하는 것은 아닙니다. 강력한 오픈소스 오디오 유틸리티인 FFmpeg를 활용하면 파일의 볼륨을 조절하고, 불쾌한 볼륨 변동을 없애기 위해 정규화(normalization)까지 할 수 있습니다. 더욱 좋은 점은 FFmpeg가 완전히 스크립트 기반으로 동작하기 때문에 Python 스크립트와 연동해 전체 과정을 자동화할 수도 있다는 것입니다.
FFmpeg 설치하기
아직 FFmpeg가 설치되어 있지 않다면, 설치는 매우 간단합니다. 리눅스 사용자라면 대부분 배포판 저장소에서 패키지를 바로 찾을 수 있습니다. 윈도우와 맥 사용자는 프로젝트 공식 다운로드 페이지에서 설치 파일을 받으면 됩니다.
기본적인 볼륨 조절
여기서 소개하는 모든 작업은 터미널에서 진행됩니다. FFmpeg에는 그래픽 프론트엔드도 존재하지만, 명령줄이 가장 간단하고 직접적인 방법입니다. 먼저 터미널을 열어 작업 환경을 준비하세요.

작업할 파일이 있는 디렉터리로 이동합니다. FFmpeg는 생각할 수 있는 거의 모든 오디오 형식을 지원하므로 포맷에 대한 걱정은 하지 않아도 됩니다. 준비가 되었다면 FFmpeg 명령을 실행합니다. -i 플래그로 입력 파일을 지정하고, -filter:a 플래그로 필터를 지정하는데, 이번 경우에는 볼륨 조절 필터를 사용합니다. FFmpeg에서 1은 원본 파일의 기준 볼륨을 의미합니다. 따라서 볼륨을 절반으로 줄이려면 "volume" 값을 0.5로 설정하면 되고, 마지막에 출력 파일 이름을 적어주면 됩니다. 전체 명령은 아래 예시와 같습니다.
ffmpeg -i input.flac -filter:a "volume=0.5" output.flac
이 명령을 실행하면 FFmpeg가 입력 파일의 복사본을 만들어 볼륨을 절반으로 낮춘 뒤 지정된 파일 이름으로 출력합니다. 물론 1보다 큰 값을 입력하면 볼륨을 높일 수도 있습니다. 아래 예시에서는 볼륨이 50% 증가합니다.
ffmpeg -i input.flac -filter:a "volume=1.5" output.flac
FFmpeg는 파일 형식 변환도 손쉽게 처리할 수 있습니다. 출력 파일의 확장자만 다르게 지정하면 나머지는 FFmpeg가 알아서 처리해 줍니다.
ffmpeg -i input.flac -filter:a "volume=1.25" output.mp3
좀 더 세밀한 제어를 위해 데시벨(dB) 단위로 작업하는 것이 편한 분들도 있습니다. FFmpeg는 이 방식 역시 지원합니다. 앞서 살펴본 배율 방식 대신, 볼륨을 얼마나 올릴지 데시벨 수치 뒤에 "dB"를 붙여 지정하면 됩니다.
ffmpeg -i input.flac -filter:a "volume=5dB" output.flac
음수를 입력하면 데시벨 단위로 볼륨을 낮출 수 있습니다.
ffmpeg -i input.flac -filter:a "volume=-5dB" output.flac
라우드니스 정규화(Loudness Normalization)

파일의 볼륨이 일정하지 않다면, FFmpeg에 내장된 정규화 기능을 활용해 상황을 개선할 수 있습니다. 명령 구성은 볼륨 조절 때와 동일하게 하되, 필터 이름만 "volume" 대신 "loudnorm"으로 바꾸면 됩니다. FFmpeg가 사운드의 피크(최대치)와 밸리(최소치)를 조정해 훨씬 듣기 편안한 결과물을 만들어 줍니다.
ffmpeg -i input.flac -filter:a loudnorm output.flac
Python으로 자동화하기
FFmpeg로 오디오를 정규화할 때 실제로는 더 많은 옵션과 세부 설정이 존재하지만, 이를 제대로 활용하려면 오디오 처리에 대한 지식과 수학적 계산이 필요합니다. 일일이 직접 계산하는 대신, 이 모든 과정을 자동으로 처리해 주는 편리한 Python 스크립트를 사용할 수 있습니다. 게다가 이 스크립트는 폴더 단위의 일괄 처리까지 지원합니다.
ffmpeg-normalize 설치
컴퓨터에 Python과 Pip 패키지 관리자가 설치되어 있다면, pip 명령으로 ffmpeg-normalize를 설치할 수 있습니다. 리눅스와 맥 사용자는 별도로 설정하지 않았다면 "sudo"를 붙여 실행해야 할 가능성이 높습니다.
sudo pip3 install ffmpeg-normalize
ffmpeg-normalize 사용법

ffmpeg-normalize는 사용법이 매우 간단합니다. 입력 파일을 지정한 뒤 -o 플래그 뒤에 출력 파일을 적으면 스크립트가 자동으로 정규화를 수행합니다. 단, 코덱(codec)을 반드시 지정해야 정상적으로 동작합니다.
ffmpeg-normalize input.flac -c:a flac -o output.flac
여러 개의 입력 파일과 출력 파일을 한 번에 지정하는 것도 가능합니다.
ffmpeg-normalize input.flac input2.flac input3.flac -c:a flac -o output1.flac -o output2.flac -o output3.flac
파일 형식 변환 용도로도 활용할 수 있습니다. 이 경우에도 코덱과 비트레이트(bitrate)를 지정해야 하지만, 결과물의 품질은 매우 좋습니다. 사용하는 플래그는 일반 FFmpeg에서 쓰는 것과 동일합니다.
ffmpeg-normalize input.flac -c:a libmp3lame -b:a 320k -o output.mp3
폴더 전체 일괄 정규화

와일드카드 문자(*)를 사용하면 폴더 안의 파일들을 변환 여부와 관계없이 한 번에 정규화할 수 있습니다. 출력 파일들은 자동으로 별도 폴더에 저장됩니다. 명령어 작성 방식은 윈도우와 리눅스·맥이 조금 다르지만 결과는 같습니다. 참고로 -ext 플래그로 출력 확장자를 반드시 지정해야 하며, 그렇지 않으면 .mkv 파일로 생성됩니다.
맥 및 리눅스
ffmpeg-normalize *.flac -c:a libmp3lame -b:a 320k -ext mp3
윈도우
for %%f in ("*.flac") do ffmpeg-normalize "%%f" -c:a libmp3lame -b:a 320k -ext mp3어떤 방법을 선택하든, 품질이 낮은 오디오를 그대로 방치할 이유는 없습니다. FFmpeg를 활용해 볼륨을 조절하고 정규화하면, 소장 중인 다른 음원들과 잘 어우러지는 균형 잡힌 음질의 파일을 손쉽게 만들 수 있습니다.