>> Read No. 486 article  
icecast로 인터넷 MP3 방송하기

등록 2000-04-16 17:17:00     조회 5
이름 주니    

		icecast로 인터넷 MP3 방송하기
 작성자 : 이종준 (junilove at turbomail.net, http://junix.site.ro) 작성날짜 : 2000년 4월 15일
  Streaming 서버는 TCP/IP기반의 네트웍에서 Mpeg Layer 파일을 전송하는 역
활을 합니다.
이것은 인터넷이나 지역 네트웍이나 인트라넷에서 유용하게 쓸수 있습니다.
  1. icecast 소개
icecast 의 공식홈페이지는 http://www.icecast.org 입니다.
icecast 는 인터넷기반의 Mpeg Layer III (MP3) 스트리밍 기술의 방송시스
템 서버입니다.
이것은 원래 Nullsoft의 Shoutcast와 Scott Manley의 mp3serv 에 영감을 얻
어 만들졌습니다.
icecast패키지는 icecast, shout, liveice 프로그램으로 이루어져 있습니다.
  2. icecast 의 설치
공식사이트에서 icecast 1.3.0 을 받아옵니다.
tar xvfz icecast-1.3.0.tar.gz
cd icecast-1.3
./configure
make
 이로써 컴파일이 끝났습니다.
만약 원한다면 make install를 하여 icecast 프로그램을 /
usr/local/icecast 아래에 설치할수 있습니다.
그러면 실행파일은 /usr/local/icecast/bin,
임시파일은 /usr/local/icecast/templates,
설정파일은 /usr/local/icecast/etc,
기록파일은 /usr/local/icecast/log 에 있다.
 이글에서는 /usr/local/icecast 에 설치한경우로 설명합니다.
 참고1: 실시간 방송을 하실분은 liveice는 같이 컴파일이 안되니 따로 해주
어야 합니다.
liveice 디렉토리에 가서 ./configure; make 를 해줍니다.
liveice로 실시간 방송을 하실분은 make install 전에 이 작업을 해주셔야
합니다.
 참고2: 만약 tcp_wrapper와 암호화된 패스워드를 원한다면 configure 할때 -
-with-libwrap --with-crypt 옵션을
       같이주면 됩니다. (tcp_wrapper가 무슨 의미인지는 잘 모르겠습니
다.)
       만약 더 좋은 성능을 원한다면 Makefile의 CFLAGS 부분을 최적화하라
고 합니다. manual.html을 참고하세요.
       (기본적으로 이미 충분히 빠르답니다)
  3. icecast 의 설정과 실행
서버를 실행하기 전에 icecast.conf 를 자기 환경에 맞게 수정합니다. 기본
값으로도 사용할 수 있습니다.
서버에서 사용할 포트와 shout를 사용할때 쓰는 암호를 알고 있어야 합니다.
기본값으로 포트는 8000번, 암호는 hackme 로 되어있습니다.
icecast.conf 에 대한 자세한 설명은 manual.html 문서를 참조하세요.
 ############################ icecast.conf
##################################
########################### 서버에 대한 정보
###############################
location junix
rp_email junilove at turbomail.net server_url http://junix.site.ro/  ########################### 서버 제한
######################################
max_clients 1000
max_clients_per_source 1000
max_sources 10
max_admins 5
throttle 10.0 sum+=i sum=sum+ii i++
 ########################## Stream Meta Data
################################
use_meta_data 0
streamurllock 0
streamtitletemplate %s
streamurl http://yp.icecast.org nametemplate %s
desctemplate %s
 ######################### 서버 패스워드
#####################################
client_password not_used
encoder_password hackme
admin_password hackme
oper_password hackme
 ########################### Directory servers
################################
#icydir yp.shoutcast.com
#icydir yp.breakfree.com
#icydir yp.musicseek.net
#icydir yp.van-pelt.com
#icydir yp.radiostation.de
#directory yp.icecast.org
#directory yp.mp3.de
touch_freq 5
 ######################## 서버 IP/port 설정 (중요하다)
#########################
#hostname 192.168.1.1
port 8000
server_name your.server.name
 ######################## 메인 서버 로그파일
##################################
logfile icecast.log
accessfile access.log
usagefile usage.log
logfiledebuglevel 0
consoledebuglevel 0
 ######################### Reverse Lookups
#################################
reverse_lookups 1
 ############################ 콘솔 모드
#####################################
console_mode 0
 ###################### 클라이언트 시간제한
##################################
client_timeout 30
 ######################### Kicking clients
####################################
kick_clients 0
 ###################### Static 파일 디렉토리
##################################
static_dir /tmp
 ############################# Statistics
####################################
stats_log stats.log
statshtml_log stats.html
stats_time 60
 ################# Aliases (including virtual host support)
####################
#alias radiofri http://195.7.65.207:6903  ############################ Kick Relays
##################################
kick_relays 10
 ############################ Transparent proxy
##############################
transparent_proxy 0
 ######################## Access Control Lists
################################
acl_policy 1
#deny all *
#allow all *.ryd.student.liu.se
############################### End
######################################
  3.1 icecast를 실행한다.
./icecast -c ../etc/icecast.conf
Server Started... 가 출력된후에
Listening On port 8000...
이라는 메세지가 출력되고
->
프롬프트가 떨어지면 서버가 실행된 것이다. 그리고 이상태에서 서버관리를
할수 있다.
서버가 시작되었지만 MP3를 서버에 보내주는 것이 필요하다. 이 역활을 하는
것이 shout이다.
  3.2 icecast 옵션
설정파일과 별로도 옵션을 사용하여 icecast의 실행환경을 설정할 수 있다.
사용법: icecast <옵션>
 -c [파일이름] 설정 파일을 지정합니다.
-P [포트] 모든 클라이언트, 소스, 관리연결에서 사용할 포트를 지정합니
다. 기본값은 8000
-m [최대 클라이언트] 연결할수 있는 클라이언트 수를 지정한다.
                     모든 클라이언트가 접속했을경우 서버에서 'HTTP/1.0
504 Server Full' 를 내보낸다.
-p [encoder암호] 서버에 스트림을 보내는 encoder의 사용 암호를 지정한다.
-b icecast를 백그라운드로 실행시킨다.  (데몬 프로세스)
   텔넷 클라이언트를 사용하여 서버의 관리모드로 접속해서 관리명령어를
사용할수 있다.
-d [디렉토리] icecast에서 생성되는 로그 파일과 임시파일을 저장할 디렉토
리를 지정한다.
  4. shout 의 설정과 실행
Shout 는 C 프로그램으로 icecast에 mp3 파일들을 보내주는 역활을 합니다.
이것은 많은 명령어와 라인 옵션을 가지고 있다. README.shout에서 그것들
에 대해 읽어보세요.
이것은 icecast가 추천하는 스트리머입니다.
  4.1 playlist의 작성
playlist는 방송할 mp3의 full path(절대경로)를 적어주면 된다.
꼭 playlist이름으로 해야 하는 것이 아닙니다.
 ------------------------- playlist 의 내용 ----------------------------
--
/mp3/서태지와아이들-컴백홈.mp3
/mp3/서태지솔로-Takefive.mp3
/mp3/양현석솔로-아무도안믿어.mp3
/mp3/이주노솔로-무제의귀한.mp3
  다음과 같은 방법으로 간단히 만들수 있다.
find /mnt/hddd/mp3/ *.mp3 > playlist
단 mp3가 있는 곳에서 해야하고 하위 디렉토리의 mp3까지 작성된다.
 팁: shout에서 사용하는 playlist는 xmms의 playlist와 완벽히 호환됩니다.
    xmms의 playlist창에서 목록을 만든후 오른쪽 LOADLIST 버튼을 눌러 저
장한 후 사용하면 된다.
    (궁금증emoticon; //와 /의 차이점이 무엇인가요? 같은건가?)
  4.2 shout 커맨드라인 옵션
사용법 : shout <hostname> <옵션> ... <옵션>
 -B <directory> shout가 사용하는 파일들이 있는 디렉토리 지정
-C <file> 설정파일 지정
-D <file> 모든 노래전에 여기서 지정한 노래를 삽입한다.
-P <password> 서버에 연결할때 쓰는 패스워드
-S    모든 세팅을 보여주고 종료.
-V	Turn verbose mode on.
-a	bitrate를 자동으로 선택하여 연결.
-b <bitrate> 시작할때 bitrate를 지정.
-d 	dj를 활정화 한다. dj program이 있어야 한다.
-e <port> shout를 서버에 연결한 포트를 지정. 기본값은 8000.
-f	-b옵션으로 지정한 bitrate를 가진 파일일경우 모두 Skip.
-g <genre> 서버에 방송의 장르를 보낸다.
-h	사용법과 옵션을 보여주고 종료한다.
-k	Don't truncate the internal playlist when starting the
program.
-l	계속 루프를 돌린다.
-m <mount> Mount point 를 사용한다. 여러 채널을 만들때 사용한다.
-n <name> 서버에 연결할때 방송으 이름을 사용한다.
-o	bitrate 자동선택을 끈다.
-p <file> 미리 작성된 playlist를 사용한다.
-r	플레이순서를 뒤섞는다.(XMMS의 Shuffle 기능과 같다)
-s	Set the icy-public flag to 0. (Don't send metadata to the
directory server).
-t	icecast/shoutcast 서버에서 타이틀스트리밍을 켠다.
-u <url> 서버에 연겨할때 방송의 url 를 사용한다.
-v	버젼을 보여주고 종료한다.
-x	방송할때 cuefile을 업데이트 하지 않는다.
-z    shout 를 백그라운드로 실행한다.
  4.3 shout 의 실행예제
./shout localhost -P hackme -a -x -p playlist
 서버이름은 localhost, 서버암호는 hackme, bitrate는 자동, cue 파일은 업
데이트하지 안는다.
플레이리스트는 playlist를 사용.
  Playing /mnt/hddd/mp3/이주노-무제의귀한.mp3
[5:00] Size: 4813763 Bitrate:128000 (61714 bytes/dot)
[..                                                      ]
 이렇게 나온다면 방송이 시작되는 것이다. xmms와 같은 mp3재생기로 서버에
접속하여 들으면 된다.
# cue 파일은 shout에서 서버로 거치는 파일들의 정보를 남기는 곳이다.
  5. xmms로 MP3방송듣기
freeamp나 xmms를 실행하여 ctrl 키와 L 키를 누른후 입력창에
http://localhost:8000 을 입력한다.
약간의 버퍼링 시간을 가진후에 mp3방송을 듣을수 있다.
또한 콘솔상에서 들으려면 mpg123 http://localhost:8000 하면됩니다.
mpg123는 http://freshmeat.net 등에서 검색하면 받을수 있다.
같은 방법으로 윈도우에서는 winamp, Sonique 로 들을 수 있다.
  6. shout의 종료
ps 명령으로 프로세스 넘버를 알아낸다.
그다음 kill <프로세스 넘버> 명령으로 shout를 종료시킨다.
Ctrl + C 키를 연속으로 눌러 종료할수도 있다.
  7. 실행 요약
   1. icecast -c ../etc/icecast.conf -b
   2. shout localhost -P hackme -a -x -t -p playlist
   3. kill <shout 프로세스 넘버>
  8. manual.html 을 읽어 보시기 바랍니다. 이 문서에 관리자명령어와 접속콘
트롤에 대한 자세한
   설명이 있다. 또한 icecast.conf의 설정에 대한 더욱 자세한 설명이 있으
므로 꼭 읽어보세요.
  후기: 나의 컴에서 icecast를 설치한후 mp3방송을 했다. 그리고 나와 lan으
로 크로스케이블로 1:1
      연결되 있는 컴에서 WINAMP로 들어봤다.
      그런데 http://localhost:8000으로는 연결되지 않고
http://192.168.0.1:8000 같이 IP 주소를
      입력해야만 접속이 되었다. 아직 네트웍에 대한 지식이 부족하여 무엇
이 문제인지 모르겠다.
      아무래도 네트웍설정의 hostname, server 네임과 관련되어 있는거 같
다. 갈쳐주세요~~~~ emoticon;
      그리고 mpg123으로는 소리가 나오지 않았다. 무슨 문제인지..보니깐
패치를 해주어야 하는것 같다.
      다른 mp3로 넘어갈때 음이 끈기는 소리가 났다. 하지만 모든 경우에
생기는 문제는 아닌것 같다.
      그리고 mp3순서를 방송중에 못바꾸는게 아쉬웠다. (알고 계시면 멜 부
탁드립니다 emoticonemoticon
      이것또한 어떤 dj 프로그램이 있으면 되는 것 같다.
      가장 아쉬운것은 인터넷과 연결된 컴이 아니였다는 것과 마이크가 없
어서 liveice를 이용한
      실시간 방송을 해보지 못했다는 점이다. emoticon
      하지만 liveice의 mixer 기능을 이용하여 mp3 방송도 가능하다고 하
니 한번 해봐야 겠다.
      그리고 프로그램세계 2000년 4월호에 리눅스에서의 인터넷방송에 대
해 자세히 나와있습니다.
      질문이나 버그, 제안점등은 devel at icecast.org 로 보내달랍니다 물론
영어로~ emoticon;
  참고문서: 프로그램세계 2000년 4월호
          icecast의 manual.html 문서
          icecast 홈페이지
          MP3-HOWTO 1.31
  이 글에서 추가 해야할점: liveice 사용법, 관리모드설명, 더 깊은 icecast
활용
이름
암호
  목록보기 윗글 아랫글
글쓰기
답장쓰기 수정 삭제
정규표현식 [ 상세 검색 ]
페이지로딩: [ 1.32 초 ] 작업시간: [ 0.07 초 ]

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved
[TOP]

적수네 동네
+
| 적수네 동네
| 공부방
| 리눅스 잡지 서고
| LSN 소스
| 링크 모음
+---+
게시판
+
| 떠들어보세!
| 질문과 답변
| 새소식과 정보
| 1원짜리 팁?
| 대화방
+---+
칼럼?
+
| 세하 훔쳐보기
| Welcome2nite
| 혜진의 염장판
+---+
리눅스 상표권
+
| 반대 서명란
| 토론 게시판
+---+
GNU
+
| GNU 선언문
| GNU GPL
| GNU 미러 목록
+---+
프로젝트?
+
| 리눅스카운터
| RC5DES
| 실질헌법 제작
+---+
커널 소식
+
| 안정 버젼: 2.4.14
+---+
테마 선택
+
LSN 방송국?
+
| OFF AIR
+---+
회원
+
| 로그인
+---+
[ 적수네 동네 ] [ 리눅스 상표권 독점 반대 ] [ 한글 리눅스 문서 프로젝트 ] [ KrLine ] [ 사랑넷 ] [ Valid HTML 4.0! ] [ SlashDot ] [ Freshmeat ]
Copyleft (C) 1998-2001 Byeong-Chan Kim . License
TIME: 1791022345
System by WYZsoft, HDD by I.O.Linux, Mizi Research, Embryo, WOWLINUX, Domain by SarangNet, Network by KrLine.