icecast_logo.png

     

안녕하세요.

 

유형석입니다.

 

이번에는 4월에 발매할 ARM PC-V210 으로

MP3 스트리밍 서비스를 해보도록 하겠습니다. 


1. icecast

    

 

icecast 는 미디어 스트리밍 서비스를 위한 무료 소프트웨어로 개발 되었습니다.

가장 최신 버전은 2.3.3 버전으로 MP3 와 OGG 를 지원합니다.

 

SHOUTcast, Theora HTTP, Vorbis 등의 라이브러리를 사용 합니다.

 

MP3나 OGG 등의 서비스를 위해서는 별도의 클라이언트를 실행 해 주어야 합니다.

 

2. 다운로드

  

 icecast_01.png


http://www.icecast.org

로 접속하여 Download 버튼을 클릭합니다.

 

icecast_02.png

 

 

하단에 icecast-2.3.3.tar.gz 를 클릭하여 다운로드 합니다.

 

icecast_03.png


 

파이어폭스 기준으로 위와 같은 화면이 나오면 [파일 저장(S)] 를 선택하고 확인을 클릭합니다.

 

icecast_04.png

 

정상적으로 다운로드 되면 1.1MB 를 다운로드 한 것을 알 수 있습니다.

 

3. 컴파일

  

 

icecast_05.png

 

일반적인 우분투일 경우 계정의 홈폴더/다운로드 폴더에 다운로드 받은 파일이 있습니다.

터미널을 열고

 

 

$ cd Download
$ tar -zxvf icecast-2.3.3.tar.gz

 

 위와 같이 입력하여 압축을 풉니다.

 

$ sudo apt-get install curl libtheora-dev libxslt-dev libogg-dev libvorbis-dev

 

압축을 풀었으면 위의 명령을 입력하여  컴파일에 필요한 라이브러리들을 설치 합니다.

 

icecast_07.png

 

압축이 정상적으로 풀리고 icecast-2.3.3 폴더가 생성 된 것을 볼 수 있습니다.

 

icecast_08.png

 

폴더로 진입해서 ls를 입력하면 파일들이 보입니다.

 

icecast_13.png

 

 

$ ./configure --enable-static

위의 명령을 입력하여 빌드 설정을 합니다.

 

icecast_14.png

 

$ make

 

빌드를 위해서 make를 수행 합니다.

 

icecast_16.png

 

$ sudo make install

인스톨은 root 권한이 필요 하므로 sudo 를 붙여 줍니다.

 

icecast_17.png

 

설치된 경로는

 

바이너리

/usr/local/bin/icecast

기타 파일들

/usr/local/share/icecast

환경파일

/usr/local/etc

 

icecast_18.png

 

환경 설정을 다시 만들기 위해서 기존에 있던 파일을 백업하고

새로운 파일을 만들어 주어야 하지만.... 여기 올리기에는 너무 길어서 첨부파일 icecast.xml 을 다운로드 하셔서

/usr/local/etc로 복사 해주시면 됩니다-_-;

 

root 권한이 필요 합니다.

 

$ sudo groupadd -g 200 icecast
$ sudo useradd -d /var/log/icecast -m -g icecast -s /bin/bash -u 200 icecast

 

icecast 유저를 생성해 줍니다.  

 

$ sudo mkdir -p /var/run/icecast
$ sudo chown -R icecast:icecast /var/run/icecast

   

pid 파일을 위한 폴더를 하나 만들어 줍니다.

 

icecast_23.png

 

 $ sudo /usr/local/bin/icecast -c /usr/local/etc/icecast.xml -b

 

위의 명령을 입력해서 icecast 를 백그라운드로 실행시켜 봅니다.

 

icecast_24.png

 

 $ pgrep -fl icecast

  위 명령으로 제대로 실행 되어 있는지 확인 합니다.

 

3. libshout-2.3.1

 

icegenerator를 컴파일 하기 전에 shout 라이브러리가 필요 합니다.

 

libshout_01.png

 

wget으로 소스를 다운로드 할 필요가 있습니다.

링크때문에 주소가 잘 안보이지만 마우스로 가볍게 긁어 주시면 주소가 복사 됩니다-_-;

 

$ wget http://downloads.us.xiph.org/releases/libshout/libshout-2.3.1.tar.gz
$ cd libshout-2.3.1

 

libshout_03.png

 

아래의 명령어로 압축을 풀어 줍니다.

 

$ tar -zxvf libshout-2.3.1.tar.gz

  

libshout_04.png

 

빌드 환경 설정을 위해서 아래와 같이 입력 합니다.

 

$ ./configure --enable-static

 

 

libshout_05.png

 

환경설정이 완료 되면 빌드를 위해 아래와 같이 입력합니다.

 

$ make

  

libshout_06.png

 

인스톨을 위해 아래의 명령을 입력합니다.

sudo 권한이 필요 합니다.

 

$ sudo make install

 

4. icegenerator

 

MP3를 서비스 하기 위해서 icegenerator 가 필요 합니다.

icecast에서 제공되는 ices 를 써도 되지만 여기서는 icegenerator를 써봅시다.

 

icegenerator_01.png

 

wget으로 소스를 다운로드 합니다.

여기도 링크때문에 주소가 잘 안보이지만 마우스로 가볍게 긁어 주시면 주소가 복사 됩니다-_-;

 

$ wget http://netcologne.dl.sourceforge.net/project/icegenerator/icegenerator/0.5.5-pre2/icegenerator-0.5.5-pre2.tar.gz

   

icegenerator_02.png

 

다운로드한 파일의 압축을 풀어 줍니다.

 

 

$ tar -zxvf icegenerator-0.5.5-pre2.tar.gz

 

 

 

icegenerator_03.png

 

폴더로 진입하여 파일을 확인합니다.

 

 

icegenerator_04.png

 

또다시 빌드를 위한 환경 설정...

 

$ ./configure

  

icegenerator_05.png

 

또또 메이크

 

$ make

 

icegenerator_06.png

 

또 인스톨

 

$ sudo make install

   

icegenerator_07.png

 

이번에는 icegeneretor의 환경 파일을 만들어 보도록 합시다.

 

$ sudo vi /usr/local/etc/icegen1.cfg

 

icegenerator_08.png

 

위의 형식을 맞춰 주시면 됩니다.

 

별도로 주의 할 점은

 

IP를 자신의 IP로 변경 해 주시고,

MOUNT 폴더는 MP3 가 있는 곳으로 해주시면 됩니다.

 

MP3PATH 라는게 있는데 Winamp 에서 쓰이는 m3u 형식의 확장자가 있는 곳을 정해 주시면 됩니다.

 

URL은 WINAMP 등에서 접속하기 위한 주소를 입력해 주시면 됩니다.

일반적으로 자신의 아이피:8000 으로 적으시면 됩니다.

 

icegenerator_09.png

 

플레이 리스트를 만들어볼 순서입니다.

 

 

icegenerator_10.png

 

winamp를 받을때 번들로 제공되는 mp3 파일들이 있는데

그 폴더에 m3u 파일이 있는데 그냥 그걸 가져왔습니다.

 

#으로 된 부분은 주석이니 무시 하시면 되고

/home/falinux/Music/ 이하에 있는 mp3 파일만 정확하게 적어 주시면 됩니다.

 

 

icegenerator_11.png

 

자 이제 한번 실행 시켜 봅시다!

당연히 icecast는 실행 시킨 상태여야 합니다.   

 

$ sudo /usr/local/bin/icegenerator -f /usr/local/etc/icegen1.cfg

 

icegenerator_12.png

 

정상적으로 작동 하는지 알기 위해서 로그를 열어 봤습니다.  

 

$ cat /var/log/icecast/icegen1.log

오! 정상적으로 동작 하고 있네요!!

 

 

5. Winamp

 

대망의 확인하는 작업만 남았습니다.

저는 무료 소프트웨어인 Winamp를 사용해 보겠습니다.

 

winamp_01.png

 

 

URL로 재생 하기를 클릭해 줍니다.

 

 

winamp_02.png

 

환경 파일에 적었던 IP와 MOUNT 주소를 적어 줍니니다.

그리고 열기O 를 클릭하면!

 

 

winamp_03.png

 

오...마이..갓..

노래가 나옵니다.

 

참 쉽죠?

 

눈치 채셨을지도 모르겠지만
configuration 할때 에러가 없죠?

왜냐하면 ARM 프로세서에 우분투를 올렸기 때문에
다른 의존성 라이브러리들을 크로스 컴파일 할 필요가 없습니다.

그냥 apt-get으로 받든가 아니면 소스를 받아서 ./configure 해주고 make install 하면 끝납니다-_-;

지긋지긋한 크로스 컴파일에서 벗어 나실 수 있도록 만든 제품입니다.

아래 주소로 방문 하시면 더 자세한 사항을 보실 수 있습니다.

http://wiki.falinux.com/doku.php?id=product:arm-pc-v210 -> ARM PC 설명

 

오늘은 여기 까지!

 

긴 글 읽어 주셔서 감사합니다!