사용자 도구

사이트 도구


macmini:start

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
macmini:start [2014/07/13 17:36] – Hombrew 사항 추가. changwoomacmini:start [2014/10/09 21:24] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
 ====== 맥미니 사용 관련 기록 ====== ====== 맥미니 사용 관련 기록 ======
 +===== 맥미니의 스트리밍 라디오 ====
 +MPD와 Icecast를 이용하여 스트리밍 서버를 만들었다. 끊김 없이 매우 잘 전송된다.
 +
 +==== 작업 내용 ====
 +Hombrew를 이용하여 mpd를 설치하였으나, 여기에 shotcast 플러그인이 없어 mp3 인코딩이 되지 않았다. 그리하여 mpd는 홈페이지에서 직접 받아 홈 디렉토리의 local에 저장하였다.
 +
 +icecast1 버전과 2버전이 따로 있다는 것을 몰라 헤맸다. 당연히 2버전을 사용하고 1버전은 폐기된 상태. brew를 이용하면 2버전을 자동적으로 받는다.
 +
 +두 개의 패키지가 잘 설치되면, 이제 삽질과 설정의 영역이다.
 +
 +=== mpd 설정 ===
 +다음 파일을 ~/.mpd/mpd.conf 로 저장해두었다.
 +
 +<code conf mpd.conf>
 +music_directory "~/Music/X Japan"
 +playlist_directory "~/.mpd/playlists"
 +
 +database {
 + plugin "simple"
 + path "~/.mpd/db"
 +}
 +
 +pid_file "~/.mpd/pid"
 +state_file "~/.mpd/state"
 +
 +port "6600"
 +auto_update "yes"
 +audio_output {
 + name "X Japan Radio"
 + description "X Japan의 여러 노래를 스트리밍하는 라디오."
 + format    "44100:16:2"
 + enabled   "yes"
 + always_on "yes"
 + tags      "yes"
 + type "shout"
 +  host      "localhost"
 + port      "32050"
 + protocol  "icecast2"
 + mount     "/x-japan"
 + genre     "Rock"
 + password  "010.9908.3348.#$n-s!cdnsV@@(1"
 + bitrate   "128"
 + encoding  "mp3"
 + encoder   "lame"
 +}
 +
 +playlist_plugin {
 + name "m3u"
 + enabled "true"
 +}
 +</code>
 +mpd로 하여금 위 설정대로 동작시키기 위해서는
 +<code bash>
 +mpd --no-daemon mpd.conf
 +</code>
 +물론 데몬 모드로 동작시키려면 ''no--daemon''은 삭제한다.
 +
 +''ncmpc''는 콘솔 상에서 재생될 노래의 목록을 컨트롤하기 위해 간단히 사용할 수 있다. 
 +<code bash>
 +ncmpc --host=localhost --port=32050
 +</code>
 +
 +인터페이스 참고는 '1' 버튼을 눌러 받을 수 있다.
 +
 +=== icecast ===
 +icecast에서 엄청난 삽질을 했었는데, mount되어 보여야 할 목록이 왜 안보이나 했더니, mpd에서 재생 중이어야 하 목록이 보이더군.
 +
 +다음은 icecast.xml 설정 파일이다.
 +<code xml icecast>
 +<icecast>
 +    <location>Koyang-si, Kyeoggi-do, South Korea (대한민국 경기도 고양시)</location>
 +    <admin>ep6tri@hotmail.com</admin>
 +
 +    <limits>
 +        <clients>100</clients>
 +        <sources>2</sources>
 +        <threadpool>5</threadpool>
 +        <queue-size>102400</queue-size>
 +        <client-timeout>30</client-timeout>
 +        <header-timeout>15</header-timeout>
 +        <source-timeout>10</source-timeout>
 +    </limits>
 +
 +    <authentication>
 +        <source-password>010.9908.3348.#$n-s!cdnsV@@(1</source-password>
 +        <admin-user>changwoo</admin-user>
 +        <admin-password>01099083348</admin-password>
 +    </authentication>
 +
 +    <hostname>localhost</hostname>
 + <listen-socket>
 +        <port>32050</port>
 +    </listen-socket>
 +    <fileserve>1</fileserve>
 +    
 +    <paths>
 +        <basedir>./</basedir>
 +        <logdir>./log</logdir>
 +        <webroot>./web</webroot>
 +        <adminroot>/usr/local/Cellar/icecast/2.3.3/share/icecast/admin</adminroot>
 +        <pidfile>./icecast.pid</pidfile>
 +        <alias source="/" destination="/status.xsl"/>
 +    </paths>
 +    
 +    <mount>
 +        <mount-name>/x-japan</mount-name>
 +    </mount>
 +
 +    <logging>
 +        <accesslog>access.log</accesslog>
 +        <errorlog>error.log</errorlog>
 +        <!-- <playlistlog>playlist.log</playlistlog> -->
 +      <loglevel>3</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
 +      <logsize>10000</logsize> <!-- Max size of a logfile -->
 +        <!-- If logarchive is enabled (1), then when logsize is reached
 +             the logfile will be moved to [error|access|playlist].log.DATESTAMP,
 +             otherwise it will be moved to [error|access|playlist].log.old.
 +             Default is non-archive mode (i.e. overwrite)
 +        -->
 +        <!-- <logarchive>1</logarchive> -->
 +    </logging>
 +
 +    <security>
 +        <!--
 +        <changeowner>
 +            <user>nobody</user>
 +            <group>nogroup</group>
 +        </changeowner>
 +        -->
 +    </security>
 +</icecast>
 +</code>
 +
 +icecast 또한 ~/.icecast에 설정과 각종 로그 파일을 집어넣어 두었다. 여기서 ''/usr/local/Cellar/icecast/2.3.3/share/icecast/web'' 부분은 따로 떼어내 홈 쪽으로 옮긴 것을 주목하라. 나중에 스킨의 추가를 위해 일부러 저렇게 두었다.
 +
 +==== 실사용 ====
 +권한 조정, 데몬화 등이 필요하다. 그리고 노래 설정을 보다 편리하게 해 줄 부가적인 패키지를 필요로 한다. 일단 iOS에서는 [[https://itunes.apple.com/us/app/mpod/id285063020|MPoD]]를 이용한다. 웹 버전으로는 [[http://sourceforge.net/p/rompr/wiki/Installation/|rompr]]가 있다.
 +
 +실제로 한 방에 돌아가도록 조치가 취해져야 한다.
 +위 설정 중 상대 경로를 모두 절대로 변경하고,
 +<code bash radio>
 +#!/bin/sh
 +~/.icecast/icecast
 +mpd ~/.mpd/mpd.conf
 +</code>
 +
 +==== 참고 ====
 +  * http://www.t3node.com/blog/streaming-audio-with-mpd-and-icecast2-on-raspberry-pi/
 +  * http://www.icecast.org/docs/ices-latest/
 +  * http://dzello.com/blog/2012/11/21/live-stream-audio-from-osx-mountain-lion-with-icecast-and-darkice/
 +  * http://shellbt.tistory.com/entry/ogg-%EC%8A%A4%ED%8A%B8%EB%A6%AC%EB%B0%8D%EC%84%9C%EB%B2%84-icecast2-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0
 +  * http://mpd.wikia.com/wiki/Mpd_on_OS_X_Snow_Leopard
 +  * http://www.musicpd.org/doc/user/index.html
 +
 ===== Homebrew ===== ===== Homebrew =====
 Macports에 비해 Homebrew가 더욱 깔끔하므로 Macports를 버리고 [[http://brew.sh/|Homebrew]]를 사용한다. Macports에 비해 Homebrew가 더욱 깔끔하므로 Macports를 버리고 [[http://brew.sh/|Homebrew]]를 사용한다.
macmini/start.1405272971.txt.gz · 마지막으로 수정됨: 2014/10/09 21:23 (바깥 편집)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki