사용자 도구

사이트 도구


macmini:start

차이

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

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
macmini:start [2014/01/26 12:09] – [설정] 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 =====
 +Macports에 비해 Homebrew가 더욱 깔끔하므로 Macports를 버리고 [[http://brew.sh/|Homebrew]]를 사용한다.
  
 ===== MacPorts ===== ===== MacPorts =====
-각종 라이브러리들은 [[http://www.macports.org/|MacPorts]]를 사용해 설치한다. 일일이 소스 설치하느 것보다 훨씬 나으리라 기대한다.+각종 라이브러리들은 [[http://www.macports.org/|MacPorts]]를 사용해 설치한다. 일일이 소스 설치하는 것보다 훨씬 나으리라 기대한다.
    
 [[http://www.macports.org/install.php]]에서 간단하게 pkg 파일 받아 설치하면 끝. 설치 전에 요구 사항을 잘 읽어보기 바란다. Xcode등이 설치되어 있어야 한다. [[http://www.macports.org/install.php]]에서 간단하게 pkg 파일 받아 설치하면 끝. 설치 전에 요구 사항을 잘 읽어보기 바란다. Xcode등이 설치되어 있어야 한다.
줄 44: 줄 200:
   port upgrade outdated # 모든 것을 업그레이드   port upgrade outdated # 모든 것을 업그레이드
  
 +==== MacPorts의 패키지가 저장되는 장소 ==== 
 +아파치 같은 것들은 ''/usr/sbin''에 저장되긴 하는데, boost와 같은 library들은 ''/opt/local''에 저장되더라.
 ===== Apache, PHP ===== ===== Apache, PHP =====
 로컬 위키를 구축하기 위해 맥미니에도 아파치 서버를 사용하기로 결정했다. 그러나 아직은 자동으로 동작하도록 하는 init 스크립트들을 도입하지는 않았다. 그러므로 사용하려면, 로컬 위키를 구축하기 위해 맥미니에도 아파치 서버를 사용하기로 결정했다. 그러나 아직은 자동으로 동작하도록 하는 init 스크립트들을 도입하지는 않았다. 그러므로 사용하려면,
macmini/start.1390738161.txt.gz · 마지막으로 수정됨: 2014/10/09 21:23 (바깥 편집)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki