강좌 & 팁
안녕하세요.
유형석입니다.
이번에는 4월에 발매할 ARM PC-V210 으로
MP3 스트리밍 서비스를 해보도록 하겠습니다.
1. icecast
icecast 는 미디어 스트리밍 서비스를 위한 무료 소프트웨어로 개발 되었습니다.
가장 최신 버전은 2.3.3 버전으로 MP3 와 OGG 를 지원합니다.
SHOUTcast, Theora HTTP, Vorbis 등의 라이브러리를 사용 합니다.
MP3나 OGG 등의 서비스를 위해서는 별도의 클라이언트를 실행 해 주어야 합니다.
2. 다운로드
로 접속하여 Download 버튼을 클릭합니다.
하단에 icecast-2.3.3.tar.gz 를 클릭하여 다운로드 합니다.
파이어폭스 기준으로 위와 같은 화면이 나오면 [파일 저장(S)] 를 선택하고 확인을 클릭합니다.
정상적으로 다운로드 되면 1.1MB 를 다운로드 한 것을 알 수 있습니다.
3. 컴파일
일반적인 우분투일 경우 계정의 홈폴더/다운로드 폴더에 다운로드 받은 파일이 있습니다.
터미널을 열고
$ cd Download
$ tar -zxvf icecast-2.3.3.tar.gz
위와 같이 입력하여 압축을 풉니다.
$ sudo apt-get install curl libtheora-dev libxslt-dev libogg-dev libvorbis-dev
압축을 풀었으면 위의 명령을 입력하여 컴파일에 필요한 라이브러리들을 설치 합니다.
압축이 정상적으로 풀리고 icecast-2.3.3 폴더가 생성 된 것을 볼 수 있습니다.
폴더로 진입해서 ls를 입력하면 파일들이 보입니다.
$ ./configure --enable-static
위의 명령을 입력하여 빌드 설정을 합니다.
$ make
빌드를 위해서 make를 수행 합니다.
$ sudo make install
인스톨은 root 권한이 필요 하므로 sudo 를 붙여 줍니다.
설치된 경로는
바이너리 | /usr/local/bin/icecast |
기타 파일들 | /usr/local/share/icecast |
환경파일 | /usr/local/etc |
환경 설정을 다시 만들기 위해서 기존에 있던 파일을 백업하고
새로운 파일을 만들어 주어야 하지만.... 여기 올리기에는 너무 길어서 첨부파일 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 파일을 위한 폴더를 하나 만들어 줍니다.
$ sudo /usr/local/bin/icecast -c /usr/local/etc/icecast.xml -b
위의 명령을 입력해서 icecast 를 백그라운드로 실행시켜 봅니다.
$ pgrep -fl icecast
위 명령으로 제대로 실행 되어 있는지 확인 합니다.
3. libshout-2.3.1
icegenerator를 컴파일 하기 전에 shout 라이브러리가 필요 합니다.
wget으로 소스를 다운로드 할 필요가 있습니다.
링크때문에 주소가 잘 안보이지만 마우스로 가볍게 긁어 주시면 주소가 복사 됩니다-_-;
$ wget http://downloads.us.xiph.org/releases/libshout/libshout-2.3.1.tar.gz
$ cd libshout-2.3.1
아래의 명령어로 압축을 풀어 줍니다.
$ tar -zxvf libshout-2.3.1.tar.gz
빌드 환경 설정을 위해서 아래와 같이 입력 합니다.
$ ./configure --enable-static
환경설정이 완료 되면 빌드를 위해 아래와 같이 입력합니다.
$ make
인스톨을 위해 아래의 명령을 입력합니다.
sudo 권한이 필요 합니다.
$ sudo make install
4. icegenerator
MP3를 서비스 하기 위해서 icegenerator 가 필요 합니다.
icecast에서 제공되는 ices 를 써도 되지만 여기서는 icegenerator를 써봅시다.
wget으로 소스를 다운로드 합니다.
여기도 링크때문에 주소가 잘 안보이지만 마우스로 가볍게 긁어 주시면 주소가 복사 됩니다-_-;
$ wget http://netcologne.dl.sourceforge.net/project/icegenerator/icegenerator/0.5.5-pre2/icegenerator-0.5.5-pre2.tar.gz
다운로드한 파일의 압축을 풀어 줍니다.
$ tar -zxvf icegenerator-0.5.5-pre2.tar.gz
폴더로 진입하여 파일을 확인합니다.
또다시 빌드를 위한 환경 설정...
$ ./configure
또또 메이크
$ make
또 인스톨
$ sudo make install
이번에는 icegeneretor의 환경 파일을 만들어 보도록 합시다.
$ sudo vi /usr/local/etc/icegen1.cfg
위의 형식을 맞춰 주시면 됩니다.
별도로 주의 할 점은
IP를 자신의 IP로 변경 해 주시고,
MOUNT 폴더는 MP3 가 있는 곳으로 해주시면 됩니다.
MP3PATH 라는게 있는데 Winamp 에서 쓰이는 m3u 형식의 확장자가 있는 곳을 정해 주시면 됩니다.
URL은 WINAMP 등에서 접속하기 위한 주소를 입력해 주시면 됩니다.
일반적으로 자신의 아이피:8000 으로 적으시면 됩니다.
플레이 리스트를 만들어볼 순서입니다.
winamp를 받을때 번들로 제공되는 mp3 파일들이 있는데
그 폴더에 m3u 파일이 있는데 그냥 그걸 가져왔습니다.
#으로 된 부분은 주석이니 무시 하시면 되고
/home/falinux/Music/ 이하에 있는 mp3 파일만 정확하게 적어 주시면 됩니다.
자 이제 한번 실행 시켜 봅시다!
당연히 icecast는 실행 시킨 상태여야 합니다.
$ sudo /usr/local/bin/icegenerator -f /usr/local/etc/icegen1.cfg
정상적으로 작동 하는지 알기 위해서 로그를 열어 봤습니다.
$ cat /var/log/icecast/icegen1.log
오! 정상적으로 동작 하고 있네요!!
5. Winamp
대망의 확인하는 작업만 남았습니다.
저는 무료 소프트웨어인 Winamp를 사용해 보겠습니다.
URL로 재생 하기를 클릭해 줍니다.
환경 파일에 적었던 IP와 MOUNT 주소를 적어 줍니니다.
그리고 열기O 를 클릭하면!
오...마이..갓..
노래가 나옵니다.
참 쉽죠?
눈치 채셨을지도 모르겠지만
configuration 할때 에러가 없죠?
왜냐하면 ARM 프로세서에 우분투를 올렸기
때문에
다른 의존성 라이브러리들을 크로스 컴파일 할 필요가 없습니다.
그냥 apt-get으로 받든가 아니면 소스를 받아서
./configure 해주고 make install 하면 끝납니다-_-;
지긋지긋한 크로스 컴파일에서 벗어 나실 수 있도록 만든
제품입니다.
아래 주소로 방문 하시면 더 자세한 사항을 보실 수 있습니다.
http://wiki.falinux.com/doku.php?id=product:arm-pc-v210 ->
ARM PC 설명
오늘은 여기 까지!
긴 글 읽어 주셔서 감사합니다!
- icecast_logo.png (21.8KB)(128)
- icecast_01.png (100.5KB)(118)
- icecast_02.png (48.2KB)(125)
- icecast_03.png (32.0KB)(122)
- icecast_04.png (11.6KB)(134)
- icecast_05.png (30.8KB)(138)
- icecast_07.png (86.8KB)(119)
- icecast_08.png (62.9KB)(116)
- icecast_13.png (87.1KB)(115)
- icecast_14.png (72.8KB)(96)
- icecast_16.png (19.7KB)(123)
- icecast_17.png (31.5KB)(129)
- icecast_18.png (24.3KB)(128)
- icecast_22.png (22.0KB)(120)
- icecast_23.png (27.6KB)(111)
- icecast_24.png (21.7KB)(129)
- icecast.xml (1.6KB)(112)
- icecast_21.png (23.5KB)(113)
- icegenerator_01.png (86.0KB)(119)
- icegenerator_02.png (88.2KB)(143)
- icegenerator_03.png (49.3KB)(107)
- icegenerator_04.png (86.0KB)(133)
- icegenerator_05.png (57.1KB)(122)
- icegenerator_06.png (88.4KB)(141)
- icegenerator_07.png (14.4KB)(139)
- icegenerator_09.png (14.4KB)(118)
- libshout_01.png (79.2KB)(126)
- libshout_03.png (106.2KB)(122)
- libshout_04.png (110.8KB)(127)
- libshout_05.png (127.2KB)(123)
- libshout_06.png (133.5KB)(114)
- icegenerator_08.png (63.5KB)(127)
- icegenerator_10.png (94.4KB)(109)
- icegenerator_12.png (67.6KB)(114)
- icegenerator_11.png (20.5KB)(113)
- winamp_01.png (52.3KB)(123)
- winamp_02.png (16.9KB)(113)
- winamp_03.png (51.7KB)(110)