icecast 를 이용한 라디오 방송 최초작성일 : 2000/04/09 최종편집일 : 2000/10/28 글쓴이 : 최 민성 (CHoims@hitel.net) --- 1. 준비작업 2. icecast 2-1 icecast 는... 2-2 icecast 설치 2-3 icecast 설정 2-4 icecast 사용하기 3. shout 3-1 shout 란? 3-2 shout 설치 3-3 shout 설정 3-4 shout 사용하기 4. liveice 4-1 liveice 란? 4-2 liveice 설치 4-3 notlame 설치 4-4 liveice 설정 4-5 liveice 사용하기 5. 방송 듣기 --- 1. 준비작업 리눅스에서 방송을 하기 위해 필요한 프로그램 들입니다. icecast (방송서버) 공식 홈페이지인 http://www.icecast.org 에서 다운 가능합니다. shout (MP3 스트리머) liveice (DJ 툴) notlame (MP3 encoder) --- 2. icecast 2-1 icecast 는... icecast 는 GPL 을 따르며 TCP/IP 기반에서 MP3 방송을 가능케 하는 스트리밍 서버프로그램이며 linux 뿐만 아니라 윈도우 운영체제에서도 사용이 가능합니다. 2-2 icecast 설치 icecast 공식사이트인 http://www.icecast.org 에서 다운을 받습니다. (2000년 10월 28일 현재 안정버전은 1.3.7 이며 개발버전으로는 1.3.8-beta2가 나와 있습니다) 간단하게 RPM 패키지를 다운 받아 설치 할수 있으며, 여기에서는 소스를 직접 받아설치해 보겠습니다. 다운 받은 프로그램은 안정버전인 1.3.7 이며 다음과 같은 설치작업을 거칩니다. [root@mins /usr]# tar xvzf icecast-1.3.7.tar.gz [root@mins /usr]# cd icecast-1.3.7 [root@mins icecast-1.3.7]# ./configure [root@mins icecast-1.3.7]# make [root@mins icecast-1.3.7]# make install 정상적으로 설치가 되었다면 /usr/local/icecast 디렉토리를 보실수 있습니다. * 참고 : tcp_wrapper 방화벽 기능과 암호화 패스워드 기능을 원하는 경우 configure 옵션에 각각 --with-libwrap , --with-crypt 을 추가 해야하며, readline support 를 원치 않는 경우 --without-readline 을 포함합니다. (자세한 사항은 INSTALL파일 참조) 2-3 icecast 설정 /usr/local/icecast/conf/icecast.conf.dist 을 파일을 icecast/bin/ 에 복사후 icecast.conf 파일을 vi 나 pico 와 같은 편집기로 알맞은 환경으로 수정 합니다. [root@mins conf]# cp icecast.conf.dist ../bin/icecast.conf 기본적으로 server_name 만 수정해주어도 사용에는 지장이 없으며 기타 몇가지 중요 설정 부분들은 다음과 같습니다. (## 부분은 주석 부분입니다) ######################### ### 최대 접속자 수 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-4 icecast 사용하기 이젠 icecast 를 사용해볼까요. [root@mins bin]# ./icecast 기본적으로 위와 같이 실행을 하여도 무방하며, 옵션에 대해 좀더 알고 싶으면 icecast -h 로 실행을 합니다. --- 3. shout 3-1 shout 란? shout 는 icecast 에 인코딩 되어진 mp3 를 보내주는 프로그램입니다. 장점으로는 실시간인 liveice 에 비하여 CPU, RAM 사용양이 적다는 점이 있지만 방송전에 미리 인코딩을 하는 시간을 가지며 외부입력이 불가능하여 실시간적인 방송이 힘들다는 단점이 있다. 3-2 shout 설치 http://www.icecast.org 에서 shout 를 다운 받아, 다음과 같이 설치를 합니다. [root@mins /usr]# tar xvzf shout-0.8.0.tar.gz [root@mins shout-0.8.0]# make [root@mins shout-0.8.0]# make install 설치가 완료 되면 icecast/bin 디렉토리에 shout 실행 화일이 있는걸 확인하실수 있습니다. 3-3 shout 설정 shout 의 경우 따로 설정 파일을 지정해 주지 않아도, 커맨드 라인상에서 옵션을 주어도 되기에, 여기에서는 간단하게 중요부분만 살펴 보기로 한다. shout.conf 파일은 기본적으로 icecast/etc/ 에서 찾을수 있으며, ## 부분은 주석이다. [root@mins etc]# cp shout.conf.dist shout.conf [root@mins etc]# vi shout.conf ############### ## 서버 이름을 적어준다. icecast 와 같은 서버인 경우 localhost 를 사용한다. server_name localhost ## 포트 설정 port 8000 ## icecast 에서 설정 해둔 암호를 적는다. (hackme 로 변경) password hackme mount default ############### ## 방송국 이름입니다. name Radio_AP desc The_best_monkey_music_monkeys_can_buy genre Monkey_Music url http://www.apan.com/ #공개, 비공개 방송 결정 public yes ############### short_titles yes ## 노래 파일을 제목으로 보여 줍니다. title_streaming yes id3 no autocorrect yes ############### ## MP3 연주 리스트 파일 설정 (본인의 경우에는 playlist로 설정) playlist playlist ## 전부 연주가 되었을때의 반복 설정 loop yes ## 무작위 연주 설정 shuffle no 3-4 shout 사용하기 먼저 방송을 하기 위한 방송용 리스트를 작성한다. 여기에서는 예제로 playlist 란 파일로 작성을 해보았다. [root@mins etc]# cat playlist /home/radio/DJDOC5/01 INTRO(와신상담).mp3 /home/radio/DJDOC5/02 비애(Acoustic).mp3 /home/radio/DJDOC5/03 L.I.E.mp3 /home/radio/DJDOC5/04 Nuclear_Lunch_the_Detect.mp3 /home/radio/DJDOC5/05 Boogi_Night.mp3 /home/radio/DJDOC5/05_포조리.mp3 리스트 파일을 쉽게 만들기 위하여 본인은 다음과 같은 명령어를 사용하였으며, [root@mins etc]# find /home/radio/ -name "*.mp3" > playlist xmms 사용자의 경우에는 xmms 의 리스트 파일을 그대로 사용하여도 무방하다. 이제 shout 를 실행을 하게 되면, 방송이 시작된다. [root@mins bin]# ./shout 앞에서 이미 shout.conf 파일을 알맞게 수정하였으므로 별다른 옵션으로 실행이 가능하다. shout 의 자주 쓰이는 일반적인 옵션은 다음과 같다. -C 설정 파일 지정 -D 모든 노래 전에 현재의 노래를 먼저 연주 -P 패스워드 지정 -l 노래 연주 종료후 루프 -p 플레이 리스트 지정 -r 랜덤하게 연주 -z 백그라운드에서 실행 -h 도움말 --- 4. liveice 4-1 liveice 란? livceice 는 shout 에 비해 시스템 자원을 많이 차지 한다는 단점을 가지고 있지만liveice 는 실시간으로 MP3 를 인코딩 하여 icecast 에 전송을 하며, 외부 입력이 가능하다는 장점 때문에, 널리 쓰이고 있는 프로그램이다. 4-2 liveice 설치 liveice 는 cvs 라는 유틸리티를 이용하여 (대부분의 배포판에 포함되어 있습니다)설치를 합니다. 다음과 같은 작업으로 설치를 할수 있습니다. [root@mins /usr]# export CVSROOT=:pserver:anonymous@cvs.icecast.org:/cvsroot [root@mins /usr]# cvs login (Logging in to anonymous@cvs.icecast.org) CVS password: 패스워드는 공백이다. 이곳에서 그대로 엔터를 쳐주면 된다. 프롬프트가 그냥 떨어지지만, 연결이 된 상태이다. 계속 설치 작업을 하겠다. [root@mins /usr]# cvs checkout liveice 만들어진 liveice 디렉토리로 이동을 하여.. [root@mins liveice]# autoconf [root@mins liveice]# ./configure [root@mins liveice]# make 아래의 필요한 화일들을 /icecast/bin 에 복사하는 것으로 liveice 의 설치는 마칩니다. liveiceconfigure.tk liveice liveice.cfg frontend.tcl simple_frontend.tk * 참고 : http://cvs.icecast.org/cvsweb.cgi/ 에 가보면, liveice-xmms 라는 것이있다. 본인은 X 를 쓰지 않아 써보질 못했지만, 아마도 winamp 처럼 편하게 방송을 할수 있는 플러그인 인듯 싶다. 보다 방송을 편하게 하고자 하는 분들은 한번 설치해 보길 권한다. 4-3 notlame 설치 liveice 를 사용하기 위해 notlame 이란 인코딩 프로그램을 설치 한다. 다음의 사이트에서 다운을 받을수 있으며, 설치법은 압축을 푼후 바이너리를 /icecast/bin 에 복사하면 되기에 생략 하겠다. http://hive.me.gu.edu.au/not_lame/ 4-4 liveice 설정 X 윈도우를 사용하는 경우 liveiceconfigure.tk 를 사용하며, liveice.cfg 를 직접편집할수 있습니다. 여기에선 직접 편집을 해보며, 대략 수정해야 될 내용은 다음과 같습니다. # basic options # 서버, 패스워드를 지정합니다. 패스워드는 hackme SERVER localhost PORT 8000 PASSWORD hackme # 이전에 다운 받은 not_lame 경로를 적어 줍니다. USE_LAME3 ./notlame #사운드 카드를 설정 해줍니다. SOUNDCARD # name# name -n # 방송 타이틀 NAME Szyzyg - Scott's Mp3 Collection and Other Wierd Stuff # password -P # hackme 로 수정 PASSWORD hackme # 리스트 화일 지정 PLAYLIST playlist 4-5 liveice 사용하기 [root@mins bin]# ./icecast 실행을 하게 되면, 여러가지 창이 뜨며 다음의 키보드 조작으로 방송을 조정할수 있습니다. Action Channel 1 Key Channel 2 Key ~~~~~~ ~~~~~~~~~~~~~ ~~~~~~~~~~~~~ 다음 트랙으로 이동 1 a 이전 트랙으로 이동 q z 시작/정지 2 s 리셋 채널 w x 볼륨 증가 3 d 볼륨 감소 e c 속도 증가 4 f 속도 감소 r v 연속/랜덤/연주후 정지 5 g 이전 채널 t b 랜덤하게 연주 u m 스페이스바를 누르면 마이크가 활성화가 되며, # 는 리스트를 다시 읽습니다. 하나의 채널이 연주가 될때, 다른 하나의 채널로 곡을 찾는 식으로 방송을 하면 됩니다. X 윈도우 상태라면 다음의 명령으로 GUI 상태에서 간단하게 조작할수 있습니다. [root@mins bin]# ./frontend.tcl | liveice --- 5. 방송 듣기 여러 MP3 플레이어를 통하여 방송을 들을 수가 있다. xmms 나 winamp 의 경우 Ctrl + L 키를 누르면 URL 주소창이 뜨는데, 이곳에 http://서버주소:8000 을 입력 하면 약간의 버퍼링 시간이 지난후 방송이 나온다. --- 이 문서에 추가해야될 사항이나 잘못된 점은 CHoims@hitel.net 로 메일주시기 바랍니다.