icecast 를 이용한 라디오 방송

글쓴이 : 최 민성 (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 라는 것이 있다.
                보다 방송을 편하게 하고자 하는 분들은 한번 설치해 보길 권한다.

 

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 로 메일주시기 바랍니다.




▲ top

home으로...