[리눅스/LPIC/LINUX자격증] 음악방송 (SHOUTcast)


SHOUTcast를 이용한 간단한 음악 스트리밍 서비스 구축
기술문서 | 2007년 03월 18일 19시 52분


이 글은 SHOUTcast를 이용하여 간단한 서버기반 Jukebox를 만드는 법을 설명하고 있다.
DNAS는 흔히 접할 수 있는 MP3 다운로드 기반의 서비스가 아닌 실시간 스트리밍 기법으로써 음악 서비스시 음원의 유출을 방지할 수 있는 기술 중 하나이다.

다음은 SHOUTcast에 대한 설명이다.

Introduction:
 
  SHOUTcast is a streaming audio system for Windows and Un*x platforms.
At the center of the system is this product, the SHOUTcast Distributed
Network Audio Server (DNAS).  The DNAS is responsible for accepting
a broadcast feed from Winamp and the SHOUTcast Source DSP plug-in, and
repeating the broadcast to listeners connected to this SHOUTcast DNAS.
Once your source content is being fed into the SHOUTcast DNAS, it will
also, dependent on the source content's configuration, list itself
with the SHOUTcast directory so listeners can locate your broadcast.
  The DNAS also has the ability to deliver on-demand content in MP3
format stored in the content/ directory.
 
  SHOUTcast is a product of Nullsoft, Inc, makers of the fantastically
popular Winamp audio player for Win32.  The SHOUTcast system relies on
Winamp for playback and content sourcing.  Winamp is available at
http://www.winamp.com

준비물

1. 최소 90Mhz이상의 CPU로 동작하는 컴퓨터.
  Windows 95, 98, NT, 2000, ME 또는 XP, MacOS X, Solaris7이상, FreeBSD 4.X이상, Linux

2. 인당 14kB이상의 Memory. 간단하게 1000명이 듣는다면 14Mbyte이상의 RAM이 필요함

3. 전송속도가 받쳐 주어야 함. 예를들어 24kbps로 음악을 제공한다고 할 경우 100명이 듣는다면 2.4Mbps의 전송속도가 필요함.

4. 원하는 port로 서비스를 제공할 수 있어야 하므로 방화벽이 있다면 해당 포트를 열어야 함

5. 제일 중요한 음원들.

이 글은 UNIX 기반의 SHOUTCast 설정법에 대하여 설명하고 있으며 windows 기반의 SHOUTCast는 설명에서 제외한다.

설치법

1. 설치: http://www.shoutcast.com/download/serve.phtml 해당 위치에서 최신버전의 SHOUTcast를 다운로드 한다. 바이너리 기반이므로 컴파일이 필요하지 않으며 tar-gzip으로 묶여 제공되므로 압축을 풀어 원하는 위치로 복사한다.

2. 설정: 파일을 복사한 디렉토리상에서 sc_serv.conf를 수정하여 각종 설정을 해 주어야 한다. 설정할 부분을 간단하게 나열하면 다음과 같다.

- PortBase: DNAS를 서비스할 서버의 port 번호. 기본적으로 8000번으로 설정 되어 있으며 자유롭게 설정이 가능함. Root가 아닐경우 1024번 밑으로는 설정이 불가능한 점을 주의 하여야 한다.

- MaxUser: 최대 청취 가능인원. 서버에서 제공할 수 있는 Bandwidth와 memory size를 감안하여 적절하게 설정 하여야 한다.

- AdiminPassword: 만약 Jukebox가 아닌 D.J.기능등을 이용하고자 할 경우 플러그인 등을 이용하여 DNAS에 관리자 모드로 접속을 하여야 한다. 이러한 경우 관리자 인증을 위하여 password 가 필요하며 이를 위한 password를 sc_serv.conf에 설정하여야 함.

- Logfile: DNAS 동작 log가 저장될 위치를 설정할 경우 사용됨. Log를 남기고 싶지 않을 경우 /dev/null로 설정하면 됨.

[Optional]은 설명에서 제외함.

3.기동: 설치한 DNAS는 다음과 같은 방법으로 동작시킨다.

- 시작: sc_serv 파일의 실행권한을 확인하고 (ls등으로) ./sc_serv 로 동작시키면 됨. 백그라운드로 동작시키고자 할 경우 ./sc_serv &로 실행함.

- 종료: kill 명령어를 이용하여 종료하면 됨.

SHOUTcast 자체로는 스트리밍 서비스를 할 수 없으며 오로지 relay역할만을 할 뿐이다. 따라서 스트리밍 서비스를 제공하기 위하여 DNAS로 음원을 전달 하여야 하며 음원 전달을 하기 위하여 다음 두가지 방법을 고려해 볼 수 있다.

스트리밍 서비스 방법

1. Remote로 접속하여 음원을 제공하는 방법
   이 경우 DNAS 서버는 외부에 위치하고 있으며 사용자가 DNAS 서버로 접속하여 음원을 제공하는 경우이다. 이 방법은 D.J. 기능을 이용하는 대부분의 음악방송이 사용하고 있는 방식이다. 이 방법을 이용하고자 할 경우 Stream을 내보낼 수 있는 port를 사용할 수 있어야 하며 (즉 방화벽등이 있는경우 사용불가. 대부분의 ISP (Internat Service Provider)에서 웜의 전파를 막기위하여 일반적으로 사용되는 포트를 제외하고 막아 놓는 것으로 알고 있음) D.J.용 프로그램들을 이용하여 서버로 음악을 전송하여야 하므로 DNAS 서버와 음원 서버 양자 모두 동작하여야 한다. (즉 2대 이상의 컴퓨터가 필요함) 이 글에서는 이 방법에 대한 자세한 설명은 제외하도록 한다.

2. DNAS 서버 내부(local)에서 음원을 제공하는 방법
  이 방법은 console 기반의 DNAS(UNIX기반)를 사용하는 경우에만 사용할 수 있으며, 서버에서 음원을 제공하고 이 음원을 DNAS로 즉시 스트리밍 하는 방법이다. 이 경우 D.J.기능은 사용할 수 없다. 로컬에서 음원을 제공하는 방법은 다양하나 일반적으로 음원의 파일리스트(filelist)를 작성하여 순차적으로 또는 임의로 한 곡씩 차례로 스트리밍 하는 방법을 이용한다.

스트리밍 서버 구축방법

1. 설치: 다음 위치에서 스트리밍 프로그램을 다운로드하여 위와 마찬가지 방법으로 설치한다. http://www.shoutcast.com/download/broadcast.phtml#posixdownload

2. 설정: 프로그램을 설치한 디렉토리에서 sc_trans.conf를 수정하여야 한다. 대표적으로 수정하여야 할 부분은 다음과 같다.

- PlaylistFile: Playlistfile은 음원이 위치한 곳의 경로를 알려주는 list 파일이다. 경로명을 텍스트편집기로 작성하여 파일을 작성한 뒤 conf에서 이 파일의 위치를 설정해 주면 파일의 내용을 읽어 음원을 스트리밍 서버로 하나씩 집어 넣는다.

- ServerIP: DNAS 서버의 IP를 적으면 됨.

- ServerPort: DNAS 서버의 port를 적으면 됨.

- Password: 스트리밍하는 경우 엄연히 DNAS의 관리자 계정으로 접속하여 음원을 제공하는 것이므로 위에서 먼저 설정한 DNAS의 관리자 암호를 적으면 됨.

- StreamURL: MP3Player 프로그램등을 이용할 경우 입력하게 될 URL을 적는 부분 (제일 중요한 부분이라 할 수 있다.) 예를 들어 http://jukebox.nekotail.net:8000/listen.pls 등으로 설정가능.

- Shuffle: 무작위 선정기능을 사용할 것인지 설정하는 부분. 1로 할 경우 파일리스트에 적혀 있는 순서가 아닌 무작위로 스트리밍을 제공함.

- Bitrate, SampleRate, Channels 등등: DNAS에서 설정한 부분에 따라 얼마나 많은 인원에게 얼마나 높은 품질로 음원을 제공할 것인지 설정하는 부분이다.

3.기동: 설치한 스트리밍 서버는 다음과 같은 방법으로 동작시킨다.

- 시작: sc_trans_XX(linux, freebsd, solaris 중 하나) 파일의 실행권한을 확인하고 (ls등으로) ./sc_trans_XX 로 동작시키면 됨. 백그라운드로 동작시키고자 할 경우 ./sc_trans_XX &로 실행함.

- 종료: kill 명령어를 이용하여 종료하면 됨.

일반적으로 DNAS를 먼저 동작하여 스트리밍 relay를 준비한 다음 스트리밍 서버를 이용하여 DNAS로 스트리밍 음원을 전송하여 스트리밍 서비스를 제공한다. 즉 sc_serv를 먼저 작동시키고 sc_trans_linux등을 이용하여 음원을 제공하게 된다. 이후 사용자는 sc_trans.conf와 sc_serv.conf에서 지정한 주소로 접속하여 음악을 감상하면 된다.

보너스

음원의 파일리스트는 다음과 같은 방법으로 간단하게 만들 수 있다.
find /음악파일 경로명 -name '*.mp3' -print >> file.lst

by 룡~

덧. 현재 nekotail 서버는 음원 서비스를 제공하지 않는다. 헛물켜지 말자. ;-P


 

 

 

출처 :  http://www.it-bank.or.kr/master/linux_main.htm

Posted by 김윤석

카테고리

놀며즐기고 공부하기 (685)
 IT 정보 (653)
 재테크 (0)
 엔터테이먼트 (11)
 인터넷마케팅 (0)
 사이트 추천 (1)
사이드바 열기