· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Docbook Sgml/MP3-CD-Burning

리눅스 MP3 CD 굽기 mini-HOWTO

리눅스 MP3 CD 굽기 mini-HOWTO

Wierzchowski Greg

임 은재

2001-05-29

이 문서는 MP3 파일을 가지고 오디오 CD를 만드는 방법을 설명한다.

고친 과정
고침 1.42001-11-20고친이 eunjea
번역
고침 1.42001-11-17고친이 GW
DAO(Disc-At-Once)로 굽기 추가
고침 1.32001-09-02고친이 GW
lame 을 이용한 mp3 디코딩 추가
고침 1.02001-06-29고친이 eunjea
번역
고침 1.02001-05-29고친이 GW
첫번째 문서.

1. 소개

이 미니 하우투는 나의 오디오 CD 굽기의 경험과 인터넷상의 오디오 파일들의 명확한 표준의 부족 때문에 씌여졌다. 나는 보통 다른 소스에서의 여러가지 노래들을 섞어서 CD로 만드는데, 매우 큰 장애는 각 소스들의 음량차가 크다는 것이다. 두번째로, 매우 많은 인터넷상의 파일들이 CD 호환(16 bit, stereo, 44.1 kHz)이 아니므로 변환과정을 거쳐야 한다. MP3 파일들로 일반 음악 CD를 만들수 있는 매우 많은 프로그램들이 존재하며, 대부분 파일을 투명하게(그대로) 변환한다. 그러나, 나는 지금까지 한번도 볼륨을 조절해주는 툴을 본적이 없었다. 그래서 나는 나만의 CD 굽기 방법을 찾기로 했다.

나는 당신이 모아놓은 다양한 소스로부터 CD를 만들것이며, 그 소스들의 음질은 가지각색일 것이라고 생각한다. 그러나, 당신은 가능한 좋은 음질의 CD를 원할것이다. 이 미니하우투가 그 방법을 제시할 것이다.


1.1. Copyright and License

This document is copyright 2001 by Greg Wierzchowski and is released under the terms of the GNU Free Documentation License, which is hereby incorporated by reference. Send feedback to greg.wierzchowski@usa.net.


2. 트랙 준비

주: 모든 명령어는 bash 쉘을 사용한다.

  1. 모든 MP3 파일을 하나의 디렉토리에 모은다.

  2. 만약 파일이름에 공백이 있다면 밑줄(_)로 변환한다:

         for i in *.mp3; do mv "$i" `echo $i | tr ' ' '_'`; done 
  3. 파일들을 WAV 포맷으로 변환:

         for i in *.mp3; do mpg123 -w `basename $i .mp3`.wav $i; done 

    Mpg123 는 대부분의 배포본에 포함되어 있지만, 없다면 다음에서 구할수 있다. http://www.mpg123.de/.

    주: 어떤 MP3 파일은 mpg123로 변환과정에서 음질이 찌그러지는 경우가 있는데, 이것을 나는 처음에 MP3 파일 자체의 결함으로 생각했지만, 다른 연주기에서 이상이 없었으므로, WAV 변환 기능을 가지는 다른 MP3 연주기를 찾았다.: MAD mp3 decoderhttp://www.mars.org/home/rob/proj/mpeg/에서 받을수 있다. madplayer를 사용해 다음과 같이 변환할수 있다.:

         for i in *.mp3; do madplay -o `basename $i .mp3`.wav $i; done 

    또는 lame 을 이용하여 디코딩할수 있는데 mpg123madplay으로 문제가 있을 경우에도 사용할수 있다. lamehttp://www.mp3dev.org/mp3/ 에서 찾을수 있다.

         for i in *.mp3; do lame --decode $i `basename $i .mp3`.wav; done

    주: The `basename $i .mp3`.wav 명령은 MP3 확장자를 WAV로 바꾼다. 다른 101가지의 방법들이 있지만 다음 방법을 사용할수도 있다.: `echo "$i" | sed 's/.mp3/.wav/g'`

  4. "file *.wav" 를 실행하여 16 bit, stereo 44100 Hz 포맷이 아닌것들을 찾아낸다.

  5. 만약 다른 성격을 가지는 파일들이 있다면, 다음 예와 같이 변환한다. 예를 들어, track01.wav 파일을 44.1 kHz 로 변환 하려면:

         sox track01.wav -r 44100 track01-new.wav resample

    Sox 는 거의 모든 배포본에 포함되어 있으며, 이곳에 구할수도 있다. http://www.spies.com/Sox/. 옵션은 나같은 일반 유저에게는 좀 까다로운 편이다. 다음 url에서 힌트를 얻을수 있다. http://www.spies.com/Sox/sox.tips.html

  6. 각기 다른 음량 (볼륨 레벨)을 가진 WAV 파일들을 고치기 위해 나는 Chris Vaill ()에 의해 씌여진, normalize 을 사용했다. 이것은 http://www.cs.columbia.edu/~cvaill/normalize/ 에서 구할수 있다.

    다음과 같이 사용한다. (-m 은 믹스 모드로 모든 파일의 음량을 최대로 해준다):

         normalize -m *.wav

3. CD 굽기

많은 프로그램중에 나는 cdrecordXCDROAST(cdrecord의 X 프론트엔드) 의 조합을 사용한다. 당신의 CDR이 어떤 SCSI 디바이스를 사용하는지 알아야 한다. 만약 ATAPI CDR이라면, SCSI emulation (ide-scsi 커널 모듈)을 사용한다. ATAPI CDR 이 세컨더리 마스터에 있다고 한다면, 디바이스는 /dev/hdc 가 될것이다. 이 CDR이 제대로 인식하도록 /etc/lilo.conf 에 다음을 넣어준다:

     append=" hdc=ide-scsi"

만약 커널이 ide-scsi 모듈을 자동으로 로드하지 않는다면, "insmod ide-scsi" 을 rc.local (또는 상응하는) 파일에 넣어준다. CDR 이 제대로 인식되었다면, "cdrecord --scanbus" 를 실행시켜 본다. 내 시스템에서는 다음과 같은 결과를 보여준다:

     scsibus1:
     1,0,0 100) 'IOMEGA ' 'ZIP 250 ' '51.G' Removable Disk
     1,1,0 101) 'HP ' 'CD-Writer+ 7100 ' '3.01' Removable CD-ROM

이 결과대로 cdrecord 실행 옵션에 "dev=1,1,0" 를 디바이스로 지정해준다. 다음은 내 시스템에서 명령이다:

     cdrecord dev=1,1,0 -eject speed=2 -pad -audio *.wav

주: -pad 옵션은 필요한 이유는 mp3 파일들과는 달리 필요한 오디오 트랙을 적당한 크기로 맞추어 주기 위해서 이다.


4. DAO CD 굽기

DAO (Disc-At-Once)는 각 트랙사이에 2초의 간격이 없도록 구울수 있는 방법이다. 이것은 논스탑 파티 믹스같은 오디오 CD를 구울때 유용하다. DAO 모드로 CD를 구울수 있는 툴로는 cdrdao가 있으며, http://sourceforge.net/projects/cdrdao/에서 구할수 있다.

cdrdaoTOC(Table Of Contents)라는 설명 파일을 사용하게 되는데 이것은 소스의 contrib디렉토리에 포함되어 있는 쉘 스크립트인 generate_toc.sh를 이용하여 생성(cd.toc라는 파일이 생긴다.)하거나 텍스트 에디터로 다음 예제와 같은 방법으로 만들어 주면 된다.

CD_DA

TRACK AUDIO
AUDIOFILE "mix-01.wav" 0

TRACK AUDIO
AUDIOFILE "mix-02.wav" 0

TRACK AUDIO
AUDIOFILE "mix-03.wav" 0

TRACK AUDIO
AUDIOFILE "mix-04.wav" 0

TRACK AUDIO
AUDIOFILE "mix-05.wav" 0

wav 파일이름 뒤의 0는 파일의 처음부터를 의미하며, 레코딩 시간을 의미하는 두번째 숫자를 명시해줄수도 있다. xcdroast를 사용해서 비슷한 TOC파일을 만들어 줄수 있으며, cdrdao의 소스 testtocs디렉토리안에서 testtocs라는 예제파일을 참고할수 있다.


5. Credits

리눅스 커뮤니티에 공헌한 분들과 이 하우투가 있을수 있게 해준 모든 분들께 감사드린다.


5.1. 번역


5.2. Other Credits

  • Greg Ferguson - HTML 에서 SGML로 변환

  • Rob Russell - 보기중 파일이름을 수정

  • Terry Davis - 내 하우투를 linuxdoc에 보내는것을 제안

  • Chris Vaill - normalize의 제작자

  • Jamie Kellogg - 디코딩에 문제가 있는 파일들을 위해 lame 을 사용하는 방법을 제시


ID
Password
Join
Your temporary financial embarassment will be relieved in a surprising manner.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2003-08-10 11:52:29
Processing time 0.0113 sec