일반적으로 오디오 CD로부터 mp3 파일을 인코딩(생성)하기 위해서는 잠깐의 구글링을 통해 각종 인코딩 프로그램을 다운로드 받아 사용하면 된다.
윈도우 계열 뿐 아니라 OS X에도 이러한 인코딩 프로그램이 많이 있는데 오늘은 LAME을 이용하여 Terminal의 Command-line 상에서 인코딩하는 방법을 알아보려고 한다.
LAME 프로젝트는 1998년부터 시작되었다.
그리고 현재 버전은 3.99.5, 아래 링크에서 다운로드 할 수 있다.
http://sourceforge.net/projects/lame/files/lame/3.99/
LAME 은 소스 형태로 배포되고 있으므로 다운로드 받아 컴파일하면 된다. 잘 컴파일되었다면 아래와 같이 생성된다.
drwxr-xr-x 6 viktor staff 204 2 28 13:59 lib drwxr-xr-x 4 viktor staff 136 2 28 13:59 share drwxr-xr-x 3 viktor staff 102 2 28 13:59 include drwxr-xr-x 3 viktor staff 102 2 28 13:59 bin
그리고 bin 디렉토리에 들어가면 lame이라는 이름의 실행 바이너리가 존재한다. 그리고 이 lame의 다양한 옵션을 이용하여 원하는 인코딩을 할 수 있다.
사실 여기까지는 워낙에 많은 참고자료들이 있어 큰 어려움은 없다. 하지만 LAME이 Command-line 기반이다보니 손쉽게 mp3를 인코딩하는데는 쉽지 않다. 예를 들어 오디오 CD에 20개 정도의 트랙이 있다고 하면, lame을 스무 번 돌려야 하고 파일 이름을 지정해줘야 하고.. 하는 것이다.
그래서 아래와 같이 간단하지만 많은 고뇌가 투여된 스크립트를 만들었다. 320kbps 인코딩 기준이다.
#!/bin/bash lame_home="/usr/lame3995" file_prefix="singer-favorite-songs" title="title" artist="singer" album="FavoriteSongs" audio_home="/Volumes/Singer's Favourite Songs" output_dir="/mp3/lame/${artist}/${album}" mkdir -p ${output_dir} cd "${audio_home}" find . -name "*.aiff" -print0 | while read -d $'\0' file do filename=`echo ${file} | sed -e 's/^.\///g' | sed -e 's/.aiff$//g'` echo ${filename} ${lame_home}/bin/lame -q0 -b320 \ --tt ${title} \ --ta ${artist} \ --tl ${album} \ "${audio_home}/${filename}.aiff" \ "${output_dir}/${file_prefix}-${filename}.mp3" done