본문 바로가기

UNIX_LINUX_C_C++

리눅스에서 MP3 사운드 화일을 인코딩하고 재생

출처 : KLDPWiki(http://wiki.kldp.org)

The Linux MP3 HOWTO

By Philip Kerr, phil@websentric.com 번역한 사람 : Lee,So-min animator@nownuri.net 번역정보 : v.1.10 , 1999년 10월 13일
이 문서는 리눅스에서 MP3 사운드 화일을 인코딩하고 재생하는 데 필요한 하드웨어, 소프트웨어, 및 준비과정에 대한 내용을 담고 있다.

1. 시작하면서(Introduction)

이 문서는 리눅스에서 MP3 사운드 화일을 인코딩하고 재생하는 데 필요한 하드웨어, 소프트웨어, 및 준비과정에 대한 내용을 담고 있다.

2. 저작권

This HOWTO is copyrighted 1999 Philip Kerr. 이 HOWTO의 저작권은 1999년 Philip Kerr.에게 있다.

Unless otherwise stated, Linux HOWTO   documents are copyrighted by their respective authors. Linux HOWTO   documents may be reproduced and distributed in whole or in part, in any medium physical or electronic, as long as this copyright notice is retained on all copies. Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions.

별다른 설명이 없다면, Linux HOWTO문서들은 그 문서들 각각의 저자들에게 저작권이 있다. Linux HOWTO문서들은 이 저작권 고시(copyright notice)가 모든 복사본들에 남아있는 한, 물리적, 전자적 매체에 상관없이 전체 또는 부분적으로 재구성되고 배포될 수 있다. 영리를 위한 이 문서의 재배포를 허용하며, 권장한다. 그러나 저자는 어떠한 배포본이라도 저자에게 공식적으로 알려주기를 원한다.

All translations, derivative works, or aggregate works incorporating any Linux HOWTO   documents must be covered under this copyright notice. That is, you may not produce a derivative work from a HOWTO and impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain conditions; please contact the Linux HOWTO co-ordinator at the address given below. In short, we wish to promote dissemination of this information through as many channels as possible. However, we do wish to retain copyright on the HOWTO   documents, and would like to be notified of any plans to redistribute the HOWTOs.

Linux HOWTO문서들을 포함하는 모든 번역, 2차적 저작물, 종합적인 저작물들은 이 저작권공지(copyright notice)하에서 보호되어야 한다. 이는 당신이 HOWTO로부터 2차적인 저작물을 만들어서는 안될 수도 있고, 그것을 배포하는데 추가적인 제약을 할 수도 있다는 것이다. 이 규칙들의 예외는 명확한 조건에서만 성립된다: 먼저 아래에 주어진 주소로 Linux HOWTO의 co-ordinator(조정자)들에게 연락을 하라.

간단히 말해서, 우리는 이 정보를 가능한한 많은 채널을 통해 유포하기를 원한다. 그러나 우리는 HOWTO문서들에 대한 저작권을 유지하기를 강력하게 원하고 있으며, 문서들의 재 배포에 대한 어떠한 계획에 대해서도 미리 통지받기를 원하고 있다.

If you have questions, please contact Tim Bynum, the Linux HOWTO co- ordinator, at linux-howto@metalab.unc.edu via email. 의문점들이 있다면, Linux HOWTO co-ordinator(조정자) Tim Bynum에게 e-mail을 통해서 linux-howto@metalab.unc.edu로 연락해주십시요.

3. 어디서 이 문서를 얻을 수 있나?

이 문서에 대한 가장 최근의 공식적인 버전은 Linux Document Project metalab.unc.edu/LDP/ 에서 구할 수 있다.

4. 감사의 말 ( Acknowledgments ).

이 HOWTO를 쓰는 동안 Jeff Tranter의 Sound-HOWTO와 Yoo C. Chung의 Sound-Playing-HOWTO에 많이 의존해야 했다.

내가 참조했던 다른 HOWTO의 작가들에게도 역시 감사한다. Linux System Administrators Guide By Lars Wirzenius.

Linux Network Administrators Guide By Olaf Kirch. Multi Disk System Tuning HOWTO By Stein Gjoen.

5. 경고 (Disclaimer)

Use the information in this   document at your own risk. I disavow any potential liability for the contents of this   document. Use of the concepts, examples, and/or other content of this   document is entirely at your own risk.

자신의 책임하에서 이 문서 상의 정보를 사용하라. 저자는 이 문서의 내용에 대해서 어떠한 잠재적인 책임도 지지 않는다. 개념, 예들, 그리고 이 문서상의 다른 내용들을 사용하는 것은 전적으로 당신의 책임이다.

All copyrights are owned by their owners, unless specifically noted otherwise. Use of a term in this   document should not be regarded as affecting the validity of any trademark or service mark.

특별한 언급이 없는 한 모든 저작권은 각각의 저작권 소유자에게 있다. 이 문서에서 용어를 사용하는 것은 어떤 상표나 등록번호의 합법성에 영향을 끼치는 것으로 간주되어서는 안된다.

Naming of particular products or brands should not be seen as endorsements. You are strongly recommended to take a backup of your system before major installation and backups at regular intervals.

특별한 상품이나 브랜드를 언급하는 것을 상품에 대한 추천이나 보증등으로 보아서는 안된다. 당신에게 major installion전에 시스템을 백업하고 정기적인 간격으로 백업을 하기를 강력하게 권장한다.

6. 필요한 하드웨어와 성능 (Hardware Requirements & Performance Issues)

디지탈 오디오 프로세싱은 시스템의 프로세싱과 I/O 성능에 크게 의존하는 자원집약적인 작업이다. 나는 최소한 펜티엄 급의 기계를 권장한다.

당신이 아나로그 오디오 소스에서 인코딩을 할 것이라면, PCI사운드카드가 최고의 결과를 보여줄 것이다. ISA와 PCI기반 카드의 I/O 성능차이는 꽤 크고, PCI는 초당 132 Mbits/sec이상이다.(PCI-HOWTO에서 인용) 당연히 사운드 카드의 Signal-to-noise Ratio (S/N비) 품질이 좋을 수록 MP3인코딩에 더욱 좋다. 나는 사운드블래스터 PCI128을 써왔었고, 얼마전에 사블 라이브 밸류로 바꾸었다. 두 카드 모두 좋은 오디오 성능을 내주었지만, 라이브가 뚜렷하게 S/N비가 우수했고, semi-pro오디오 작업에도 충분했다. 데이터 프로세싱에 대한 오래된 금언을 상기하라: 쓰레기를 넣으면 쓰레기가 나온다!

(역자 주 - 아나로그 오디오 소스 라는 것은 사운드 카드의 Line In이나 Mic In 단자를 통해서 아나로그 신호를 입력할 때를 지칭하는 것 같습니다.)

아나로그 오디오를 하드 디스크로 레코딩 할 때에는 - 흔히 Direct to Disk 또는 d2d recording이라고 한다 - 디스크의 성능과 그 인터페이스가 결정적인 영향을 미친다. 만약 IDE기반의 시스템을 사용한다면, 약간 더 높은 전송률을 가진 mode 4 또는 UDMA를 사용하는 것이 좋다.

이상적인 해결책은 SCSI기반 시스템을 사용하는 것인데, SCSI드라이브와 인터페이스는 훨씬 좋은 처리성능을 가지고 있으며, SCSI 1의 경우 지속적으로 초당 5mbits를, Ultra/Wide SCSI의 경우 초당 80mbits를 유지할 수 있다. IDE는 8.3MB/s에서 Ultra-ATA의 경우 33MB/s정도의 최고속도를 가질 수 있지만, 이 스피드는 '최고'의 수치이고 평균전송률은 그보다는 더 낮을 것이다.

만약 AV SCSI하드를 구하거나 구할 형편이 된다면, AV하드를 써라. AV드라이브들은 연속적인데이터 전송에 최적화된 read/write 헤드 시스템을 가지고 있다. 다른 SCSI, IDE드라이브들은 write헤드가 뜨거워지면 대체적으로 연속적인 데이터 전송률을 유지할 수 없다.

당연하게도 캐쉬를 가진 드라이브는 캐쉬가 없는 드라이브보다 보다 더 일정하게 유지되는 결과를 보여주는데, 이는 헤드가 움직이거나 처리량을 감당하지 못하는 경우 캐쉬가 버퍼의 역활을 해주기 때문이다. 당신의 드라이브가 스펙대로 움직이지 않는다면, 드라이브가 신호를 기록하지 못한 부분들에서 dropout(녹음이 부분적으로 안되고 빠지는 것)이나 glitch(결함)이 생길 것이다. 단 한번에 녹음을 성공시켜야 하는, 예를 들어 라이브 실황같은 경우라면 좋은 SCSI기반 디스크 시스템을 구하라.

d2d에서 dropout이 생길때의 또다른 원인은 시스템에 과부하가 걸릴 때이다. 백그라운드 작업들이 시스템에 잠시동안의 결함을 유발시킨다. 가능한한 백그라운드 서비스들, 특히 네트웍 기반의 서비스들의 갯수를 줄이기를 권장한다. 네트웍 서비스를 셋팅하는 것과 startup 스크립트들에 대한 추가적인 정보는 SAG와 NAG가이드들을 참고하는 것이 좋다.

가상 메모리 페이징도 역시 glitch(결함)를 유발하므로, 가능한 한 많은 물리적 메모리(실제로 램을 더 꼽으란 이야기임-역자주-)를 사용하라. 저자는 최소한 32메가를 권장하지만, 아마도 더 많이 필요할 것이다. 자신의 시스템으로부터 가능한한 많은 성능을 뽑아내기를 원하는 사람들은, 커널을 최적화한다고 해도 아마도 별다른 이상은 없을 것이다.

여기서 언급된 하드웨어 스펙이 당신에게 오디오 데이터를 인코딩하는 데 적정선의 시스템을 제시하지만, 당장 쓸 수 있는 컴퓨터가 오래된 낮은 사양의 것이라고 해도 외면하지 말라.

저사양의 시스템을 다루어서 좋은 결과를 내는 것은 시스템 관리자에게는 재미있는 도전거리일 것이며, 그 최종 결과물은 더욱 사랑스러운 Linux Box이다.

또하나의 중요한 이슈는 오디오 케이블링(선과 커넥터를 선정, 연결하는 작업- 역자주)이다.

싸고 나쁜 품질의 케이블과 커넥터는 안좋은 품질의 녹음 결과를 낳는다. 당신의 사운드 카드가 흔히 RCA라고 하는 phono 커넥터를 사용할 수 있다면 그걸 사용하라. 금으로 도금된 접촉단도 역시 오디오 품질을 유지하는 데 도움이 된다. 오디오 케이블들을 데이터케이블과 멀리 떨어트려 놓는 것도 데이터 케이블이 오디오케이블을 간섭할 가능성을 줄일 수 있어서 좋다. 그러나 잊지마라. 시스템의 나머지 부분을 최적하하지 않는 한, 최고의 오디오 케이블링을 하는 데 소비된 재산은 단순히 낭비가 된다.

CD-ROM에서 mp3를 추출해서 인코딩하는 경우에는 CD-ROM드라이브의 속도나 종류가 CD로부터 raw information을 읽어들이는 데 소비되는 시간을 결정짓는다. 1배속 스피드의 CD-ROM드라이브는 아마도 너무 느려서 인내심이 강한 사람이 아니라면 참을 수 없을 것이다.

당신으 CD-ROM은 사운드 카드에 연결되어 있거나 (아마도 AT방식이나 IDE포트를 가진 Sound카드의 경우겠죠-역자 주-), 내부 커넥터를 사용해야 한다. 또는 CD-ROM드라이브의 헤드폰 출력단자를 sound card의 line-in에 연결한다. (당연히 내부커넥터로서 CD에서 디지탈 데이터를 직접 뽑아내는 것이 더 좋습니다. - 역자 주)

사운드 카드의 셋팅에 대해서 더 상세한 설명을 원한다면, 지금 Sound-HOWTO를 읽어보는 멋진 시간을 가져보라

7. 소프트웨어 요구사항(Software Requirements)

오디오를 MP3로 변환하는 것은 보통 2단계의 과정이다. 먼저 오디오를 WAV 포맷으로 레코딩을 하고, 그다음으로 WAV를 MP3로 변환하는 것이다. 어떤 포맷(CD인가 direct audio)으로부터 audio롤 인코딩할 것인가에 따라 WAV화일을 만드는 데 사용할 소프트웨어 툴들이 결정된다.

(direct audio 또는 audio input 이라는 건 사운드카드에 아나로그 신호를 넣는 경우, 즉 Line in이나 Mic In단자에 헤드폰단자나 가정용 오디오장비의 출력을 연결하는 경우를 말하는 것으로 생각됩니다. - 역자주 )

오디오 인풋으로부터 인코딩을 할 것이라면, 사운드카드의 인풋으로부터 레코딩을 해서 WAV포맷으로 저장하는 프로그램이 필요할 것이다. 아래에 몇가지 괜찮은 유틸리티들을 소개했다.

Wavrec

Wavrec은 아래의 장소에서다운받을 수 있는 wavplay 프로그램의 한 부분으로 배포된다. sunsite.unc.edu/pub/Linux/apps/sound/players/ CD오디오 데이터를 WAV포맷으로 바꾸는 작업, 흔히 CD Ripping이라고 알려진 방법일 경우에는

CDDA2WAV metalab.unc.edu/pub/Linux/apps/sound/cdrom/

Cdparanoia www.xiph.org/ WAV화일을 MP3 포맷으로 바꾸기 위해선:

Blade's MP3 Encoder bladeenc.cjb.net

MP3를 재생하기 위한 플레이어가 필요하다면:

Xmms (Formerly known as X11Amp) www.xmms.org

Xaudio www.xaudio.com

어쩌면 mixer프로그램이 필요할 지도 모른다. Xmixer는 잘 동작하며 대부분의 배포판에 포함되어 있다.

8. 시스템 셋업하기 (Setting up your system.)

이 섹션에서는 아나로그 또는 CD-ROM 소스로 부터 audio를 레코딩하기 위해 당신의 리눅스 시스템을 셋업하는 작업에 대한 내용의 기초적인 것들을 다룬다.

나는 Redhat 5.2를 돌리고 있는 내 인텔 기반 리눅스 시스템에 기반을 두고 이 섹션을 작성했다. 하지만 내용은 배포판에 중립적일 것이다. 조만간 나는 Sparc플랫폼에서 작업을 해볼 것이다.(만약 당신이 다른 하드웨어에서 이 HOWTO를 이용해서 성공했다면, 연락해주기를 바란다)

너무나 당연한 선행 조건은 잘 동작하는 사운드 카드이다. HOWTO상의 본 시점에서, 나는 당신이 Heff Tranter가 작성한 훌륭한 문서인 Linux Sound HOWTO를 읽어보기를 권한다. 다음으로는 Yoo C.Chung이 쓴 훌륭한 읽은 거리인 Linux Sound Playing HOWTO가 있다. 위에 언급된 두개의 HOWTO모두 리눅스에서의 사운드 시스템을 동작시키는 일의 세부적인 내용에 대해서 내가 할 수 있는 것 보다 훨씬 잘 다루고 있다.

8.1 아나로그 오디오 캡춰를 위한 셋팅 (Setting up for Analogue Audio Capture)

먼저 당신의 오디오를 셋팅하라. 당신의 리눅스 박스로 오디오를 연결하는 데에는 많은 방법이 있으며, 몇가지 흔한 방법들은 아래와 같다.

Line out에서 Line in으로 연결.

대부분의 오디오 장치에는 Line output소켓이 있다. Line level은 오디오 장치에서 나오는 전압과 전류를 상세하게 정하고 있는 규격이다.

만약 내가 제대로 기억하고 있다면, 가정용과 세미프로 장비들은 500mA이고 프로 오디오 장비들은 750mA이다. 대부분의 사운드 카드들은 500mA일것이라고 추측하고 있다. 그러나 새로운 프로 오디오들중 일부는 더 높은 정격전류일 것이다. 당신이 매우 높은 level에서 레코딩하지 않는 한, 별다른 차이는 없을 것이다.

(역자 주 - 아는 후배의 조언에 의하면 전류보다는 전압이 문제라는 군요 음..Mr.Kerr에게 메일을 날려봐야겠습니다) (Line Level이라는 건 Line단자, 즉 일반적으로는 아나로그 신호의 출력 레벨 을 발하는 것인데, 보다 쉬운 표현으로는 'Volume-볼륨'같은 거라는군요)

Line level 아웃풋은 보통 HI-FI장비들을 앰프에 연결하기 위해 사용되고, Tape Deck, 라디오 튜너, CD Player, DAT, MD플레이어 같은 장비들은 별다른 이상없이 연결된다. 턴 테이블은 약간 문제가 있는데, 아래의 내용을 보라.

VCR로부터 오디오 캡춰를 하는 것도 잘 된다. 대부분의 VCR은 사운드를 위한 Line out을 가지고 있으며, SCART를 가지고 있는 VCR의 경우는 SCART소켓으로 부터 Line out을 얻을 수 있다.

앰프의 tape out에서 Line in으로 연결하거나, Line out으로부터 앰프의 tape in으로 연결하는 경우. 이런 구성은 당신의 HI-FI앰프에 연결되어있는 테이프 레코더를 빼고, 대신 당신의 Linux System을 연결해야한다.

Line out에서 Tape in으로의 연결하면 레코딩 레벨을 모니터링 할 수 있다. (역자주 - 이부분은 좀 애매한 표현인데요...

요즈음의 앰프는 보통 추가장비를 위한 AUX단자가 있습니다. 이 글에서 Line Out을 사운드 카드의 Line In에 넣으라는 것은 일반적으로 이런 AUX단자를 쓰면 됩니다.

그러나 구형 오디오중에서는 추가적인 AUX단자가 없는 경우가 있습니다. 이런 경우 대체적으로 AUX단자 대신에 앰프에 TAPE RECORDER를 연결하기 위한 TAPE IN, TAPE OUT단자를 AUX 단자 대신에 사용하라는 이야깁니다. 약간의 차이는 있습니다만, AUX IN, OUT과 TAPE IN, OUT단자는 전압이나 전류, 저항등에 대한 규격이 거의 무시할 수 있을 정도로 미세한 차이입니다. 요즘 앰프들중엔 오히려 TAPE IN,OUT이 없는 모델이 많습니다만... 대신 CD PLAYER를 연결하니까요. 이건 대체적으로 거취형 오디오, 즉 집에 놔두고 쓰는 약간 덩치가 큰 장비들에 대한 이야깁니다.)

Mike 에서 Mike in. 마이크로 폰에서 만들어지는 전압은 Line level장비에서 나오는 전압보다 매우 작다. 마이크로폰을 Line in에 꼽는 다면, 아무것도 기록하지 못할 것이다.

주의!, 만일 반대로 연결할 경우 즉 Line level 장치를 마이크로폰 인풋에 꼽는 다면, 당신의 사운드 카드에 손상이 갈 수도 있다. 턴테이블에서 Mike in. 아쉽게도 나는 현재 이런 구성에 대해서는 아무런 정보도 가지고 있지 못하다. 내가 턴테이블은 마이크로폰 입력으로 연결되어야 한다고 기억하고 있는 것이 맞다면, 턴테이블은 메커니즘이 마이크와 비슷하고 전압도 비슷한 정도로 낮을 것이다.

(역자주 - 즉 턴테이블의 출력은 Line Level보다는 훨씬 낮은전압이 나옵니다. 턴테이블은 CD PLAYER나 TAPE RECORDER보다 훨씬 신호가 작죠. 그래서 보다 큰 신호가 들어올 것이라고 가정되어 만들어진 Line In단자에 꼽으면 신호가 매우 작아서 힘들다는 이야깁니다.

반대의 경우, 즉 턴테이블이나 MIC의 신호를 받게되어있는 단자는 낮은 전압의 신호가 들어올 것이라고 생각하고 만들었는데, 훨씬 높은 전압의 Line Out신호가 들어오면, 당연히 과도한 입력이 됩니다. 비유를 하자면 100V기계에 220V전원을 입력하는 격이랄까.. 너무 뻔한 이야기인데, 혹시라도 턴테이블 잘 모르시는 분이 계실까봐 설명했습니다.)

뮤직 키보드들과 신서사이저들은 Line in에 연결되어야 하며, 기타는 DI Box를 통해서 Line in으로 연결되어야 한다.

(DI - Direct Injection, 시그널을 Line level로 변환하는 데 사용 되는 장비)

무언가를 사운드 카드에 연결하기 전에, 볼륨 레벨이 최소로 되어있는 지 확인하라. 만일 마이크로폰을 사용한다면, 마이크로폰을 끄거나 스피커로부터 멀리 떨으트려 놓아라.

8.2 CD-ROM오디오 캡춰를 위한 셋팅 (Setting up for CD-ROM Audio Capture)

CD-ROM에서 오디오 데이터를 추출하기 위해서 Linux시스템을 셋팅하는 것은 간단한 일이다.

사운드 카드에 연결된 스피커나 앰프를 통해서 CD-ROM의 오디오 트랙을 Play할 수 있다면, CD-ROM에서 오디오를 추출해 레코딩을 할 준비가 다 된 것이다.

8.3 추가적인 셋팅 (Additional Setting up.)

시스템에 보통의 아이디로 Log in한 후, mixer프로그램을 이용해서 디스토션(음의 찌그러짐)이 발생하지 않는 한에서 적절하게 높은 recording level로 조정하라. 나는 보통 이 부분에서 귀로 들어서 판단하는데, 여러분은 잠시후 어떤 레벨이 여러분의 kit에서 적절한 지 알게 될 것이다.

불필요한 서비스들을 꺼버리거나, 단일 사용자 모드(single user run level)로 바꾸기를 권장한다. 특별히 오디오 소스로부터 녹음할 때에는 더욱 그러길 권한다. 이렇게 하면 레코딩시에 최소한의 기본적인 서비스들만이 작동하게 되어서 시스템으로 인한 glitch(결함)을 최소화 할 수 있게 된다.

나는 오디오를 레코드하는 데에만 사용하는 별도의 SCSI하드를 셋팅해놓았 으며, /mnt/mp3로 마운트 해놓았다. SCSI 드라이브를 사용헤서 보다 더 좋은 성능을 얻기 위해 이렇게 셋팅을 했었다. 또한 특정한 드라이브에 레코딩 하는 것은 오디오 데이터를 드라이브에 기록하는 동안 갑작스럽게 헤드가 하드상의 다른 부분으로 움직이는 일이 없다는 것을 보장할 수 있다.:) (역자 주 - 당연히 물리적인 별개의 하드를 써야겠지요 )

여러개의 디스크 드라이브를 Linux 시스템을 셋팅하는 것에 대해서는 Stein Gjoen이 쓴 Mutlti-Disk-HOWTO를 읽어보는 것이 좋다.

9. 오디오로 부터의 인코딩 (Encoding from Audio.)

먼저 드라이브에 충분한 공간이 있는 지 확인하라. 44.1 Khz에 16비트 스테레오의 CD품질에서 1분의 오디오는 약 5MB의 디스크 용량을 차지한다.

나는 보통 48Khz 16비트 스테레오의 DAT품질로 레코딩한다. wavrec을 이용할 때에 나는 아래와 같은 양식을 사용한다.

/usr/local/bin/wavrec -t 60 -s 48000 -S /mnt/mp3/temp.wav

맨 앞의 단락은 wavrec의 절대 경로이다. '-t 60'은 얼마의 시간동안 녹음을 할 것인가를 지정하는 것으로, 단위는 초이다.

세번째의 옵션 '-s 48000'은 bits/sec단위의 샘플링 레이트를 의미한다. (48000은 DAT의 샘플링 레이트, 44100은 CD)

마지막 옵션은 디지탈로 변환된 결과를 저장할 때의 저장 화일 명이다. 풀 셋의 옵션을 보려면, wavrec -help 라고 -help옵션을 주어 실행시키거나 , man페이지를 보라.

이렇게 해서 WAV화일을 만들 수 있고, 다음은 이 WAV화일을 MP3 포맷으로 인코딩해야 한다.

커멘드 라인에서 아래와 같은 옵션으로 bladeenc를 실행시킨다.

/usr/local/bin/bladeenc [source file] [destination file] -br 256000 -br 옵션은 bit rate를 지정하는데, 여기에서 나는 rate를 maximum rate를 256k bits/s로 지정했다. bladeenc의 패스는 물론 내가 여기 예에서 사용한 것과 당신의 시스템에서의 패스가 아마도 다를 것이다.

풀 셋의 옵션을 보려면, bladeenc -help 를 실행시킨다. 실제로 이것은 틀린 옵션이지만 잘못된 옵션을 넣으면 옵션들의 리스트가 출력된다.

10. Encoding from CD-ROM.

역시 당신 시스템에 충분한 드라이브 용량이 있는지 확인하라. 나는 CD로부터 트랙들을 뽑아내서 인코딩하는 간단한 Perl 스크립트를 작성했다.


#!/usr/bin/perl

if ($ARGV[0] ne "") {

$count = 1;

do {

$cdcap = system("cdparanoia", $count, "/mnt/mp3/tmp/cdda.wav");

$track = "$ARGV[1]/track".$count.".mp3";

$benc = system("bladeenc /mnt/mp3/tmp/cdda.wav $track -br 256000");

$count++;

} until $count > $ARGV[0];

exit;

} else {

print "Usage cdriper [no of tracks] [destination directory]\n\n";

}


중요한 라인들을 설명하겠다.

$cdcap = system("cdparanoia", $count, "/mnt/mp3/tmp/cdda.wav");

이 라인은 CD ripper(추출프로그램)인 cdparanoia를 호출한다. Cdparanoia는 raw CD 오디오 데이터를 WAV format으로 변환한다. 옵션들은 이것은 추출해야할 트랙의 갯수를 지정하는 $count와 결과 Wav화일을 저장할 경로이다. 내가 작성한 예문에서는 내 MP3용 SCSI 드라이브에 있는 tmp디렉토리로 지정되어있다.

다음으로는 WAV화일을 Bladeenc를 써서 MP3포맷으로 바꾼다. Cdparanoia의 배치모드를 사용하지 않으면서, 매번 트랙별로 일일이 손수 추출해서 인코딩하는 작업도 하지 않기 위해 이 Perl스크립트를 작성했다. 이렇게 해서 Cdparanoia가 전체 디스크를 추출하기 위해 600 Meg나 사용하던 디스크 용량을 줄일 수 있었다.

Note: 위의 스크립트는 매우 단순하고, error 체크와 같은 좋은 기능이 없다. 당신의 기호에 따라 향상시키도록 :)

11. MP3 연주하기 (Playing MP3's).

그래서, 바라건데 아마도 당신은 재생할 준비가 된 MP3화일을 몇개 가지게 되었을 것이다.

가장 유명한 Linux용 MP3 플레이어 2가지라면 Xaudio와 Xmms(전엔 X11amp였던)일 것이다. 각 플레이어들의 homepage들에 대한 링크는 section 7에 있다.

나는 이 HOWTO를 내가 사용하는 xaudio에 맞춰서 만들었는데, 그것은 X윈도우일때도, X 윈도우를 사용하지 않을 때에도 xaudio는 사용가능하기 때문이다.

이 프로그램은 쉐어웨어이다. Xaudio는 여러개의 프로그램을 모아놓은 것이고, 그중에서 우리에게 필요한 것은 xaudio와 mxaudio이다.

화일들을 당신의 시스템에 인스톨하고 나면, command line버전인 xaudio나 X 버전인 mxaudio중의 하나를 선택해서 사용할 수 있다.

Mxaudio는 멋진 인터페이스를 가지고 있고, 사용하기 쉽다. Xaudio의 옵션은 -help옵션을 줘서 실행시켜면 출력된다.(xaudio -h) 하나의 트랙을 듣기 위해서라면 xaudio [track].mp3 라고 실행하라.

현재 디렉토리에 있는 화일 전체를 플레이하려면 xaudio *.mp3라고 하라. 두개의 프로그램 모두 README화일이 있다.

12. 피드백(Feedback.)

계속해서 새로운 하드웨어와 소프트웨어들이 발표되고 있다. 만약 당신이 이 문서에서언급된 하드웨어나 소프트웨어의 새로운 버전을 사용하고 있다거나, 이런 부분에서 추가시킬만한 내용이 있다면 당신이가진 정보를 phil@websentric.com로 메일로 보내달라. 그러면 나는 그것을 다음 release에 포함시킬 것이다. Happy MP3'ing!!