icecast, ices를 이용한 mp3 스트리밍 서버 운영
준비물 icecast, ices, lame
iccast(open source audio streaming server)는 http://www.icecast.org에서 최신 버전을
구함
ices도 http://www.icecast.org에서 구할수 있음 ices는 icecast 서버에 mp3파일을 스트림 형태로
변환하여 출력하는 프로그램으로 shout와 동일한 역할을 함. 사용결과 shout보다 안정적으로 작동함
mp3파일의 bitrate를 변환하여 출력하고자 할 경우(128Kbps->64 or lower) lame라이브러리가 있어야
함.
lame 은 http://sourceforge.net에서 lame으로 검색하면 쉽게 찾을수 있음
다운로드
http://www.icecast.org/releases/icecast-1.3.11.tar.gz
http://www.icecast.org/releases/ices-0.1.0.tar.gz
http://prdownloads.sourceforge.net/lame/lame3.89beta.tar.gz
설치
1. icecast
tar xvfz
icecast-1.3.11.tar.gz
./configure
make
make install
2. lame
tar xvfz lame3.89beta.tar.gz
./configure
make
make
install
3 ices
tar xvfz ices-0.1.0.tar.gz
./configure --with-lame
--with-lame-includes=/usr/local/include/lame
--with-lame-libraries=/usr/local/lib
make
make install
* ices가 reencode기능을 사용하기 위해서는 컴파일 단계에서 lame 라이브러리를 포함해야 하기 때문에 ices설치 전에
lame을 설치해야 함
* 반드시 설치시 lame library의 위치를 알려줘야함
* 옵션을 사용하지 않으면 /usr/lib에서
lame 라이브러리를 찾기 때문에 실행시 에러가 발생
* 이때 아카이브 파일을 /usr/lib로 카피하면 정상적으로 작동하긴 함
설정
1. icecast
/usr/local/icecast/conf/icecast.conf 파일이 설정파일
기본적으로 설정해야할 항목
#########################
### 최대 접속자 수
max_clients 900
### 각 소스별
(채널) 최대 접속자 수
max_clients_per_source 900
max_sources 10
### 동시 접속 가능한
최대 어드민 수
max_admins 5
### 대역폭 제한
throttle 10.0
#########################
### 패스워드 설정 부분입니다. 기본 패스워드는 hackme
입니다.
encoder_password hackme
admin_password hackme
oper_password
hackme
#############
### 서버 설정 부분입니다.
#hostname 192.168.1.1
# 방송에
사용될 포트를 적어 줍니다.
port 8000
port 8001
# 방송 서버의 도메인 네임이나 IP 를 적어
줍니다.
server_name your.server.name
2. lame : 별도의 설정이 필요없음
3. ices
/usr/local/icecast/conf/ices.conf 파일이 설정파일
그러나 xml형태로 되어있고
parser가 없을 경우 설정파일을 읽지 못함(내경우)
그래서 실행시 옵션으로 모든것을 해결
MP3파일 준비와 palylist작성
* 적당한 분류로 MP3파일을 준비
* playlist.txt 파일은 송출할 MP3파일의
목록이며 전체경로로 이루어진
파일명
예)
/tmp/mp3/aaa.mp3
/tmp/mp3/bbb.mp3
/tmp/mp3/001/ccc.mp3
.
.
.
*
ls /tmp/mp3/*.mp3 | sed 's/^//tmp/mp3//' >
/usr/local/icecast/etc/playlist.txt
이런식으로 만들어 줌
실행
1. icecast : /usr/local/icecast/bin/icecast -b
==> 백그라운드 실행
2.
ices : /usr/local/icecast/bin/ices -P <icecast admin pass> -B -n
<방송이름> -g <장르> -d <방송설명> -u <방송url> -F
../etc/playlist.txt -r -R -b 64
-P icscast서버 설정시 입력한 admin passwd를 넣어줌
-n -g -d -u 는 생략해도 별 상관없음
-B
백그라운드로 실행함
-F playlist파일을 지정함(이름이 고정된것은 아님)
-r 랜덤하게 음악을 송출함
-R
reencode기능을 사용함
-b reencode시 출력될 bitrate를 지정함
기타
* 음악이 끊기는 현상이 빈번히 발생함
* 장시간 연결했을 경우 접속이 끊겨버림
* playlist수정시 ices를
재시작 해야함(Perl 또는 파이선으로 실시간으로 변경시켜줄수 있다지만 참고할 만한 자료가 없음)
'Server' 카테고리의 다른 글
proftpd에서 FXP사용 (0) | 2001.12.08 |
---|---|
khttpd (커널에 포함된 웹서버 - 수정) (2) | 2001.12.01 |
유동ip로 웹서버 운영하기 (0) | 2001.10.28 |
특정디렉토리 binding (0) | 2001.10.12 |
아파치로그에서 408(time out)로그 지우기 (1) | 2001.10.03 |