로그인
Sign in
Extra Form


MPD(Music Player Daemon)와 칸타타(Cantata)와 만남 


1. 개요 


오디오 스트리밍 서버로 가장 많이 사용되고 있는 icecast와 ices를 No1.Linux에서는 기본 지원하는데, 이 강좌에서는 icecast가 아닌 MPD(Music Player Daemon)으로 오디오 스트리밍 서버를 구축하는 방법을 알아보고, MPD의 클라이언트로 칸타타 프로그램을 설치하여 오디오를 감상하는 방법을 알아봅니다.


2. 준비물


- No1.Linux-2016 Spring 버전과 그 이후의 버전

- MPD rpm 패키지

- cantata rpm 패캐지(No1.Linux 리포지토리 서버로부터 설치 가능)

- mp3 음원 파일


3. MPD 서버 구축


3.1 mpd 패키지 설치

시냅틱을 실행하여 검색 도구 아이콘을 클릭하여 mpd를 키워드로 검색하여 mpd 패키지를 설치합니다.


mpd1.png


3.2 mpd 환경설정(/etc/mpd.conf)


step01. mcedit /etc/mpd.conf 명령을 실행하여 mpd.conf 파일을 수정합니다.


mpd2.png


step02. 경로 설정


mpd3.png


music_directory 경로를 "/var/lib/mpd/Music"으로 설정하고 이 디렉토리에 음원 파일이 있는 경로를 심볼릭 링크합니다.

즉 /home/no1linux/Music 디렉토리에 음원 파일이 있다면 다음과 같이 심볼릭 링크를 걸어 줄 수 있습니다.


 # ln -s /home/no1linux/Music /var/lib/mpd/Music


playlist_directory 경로를 "/var/lib/mpd/playlists" 경로로 설정합니다.


step03. 사용자및 경청 주소및 포트 설정


mpd4.png


사용자를 기본 사용자인 mpd로 설정하고 접속 가능한 주소를 localhost 또는 any(0.0.0.0)으로 설정합니다. MPD 서버가 로컬이라면 localhost로 설정하거나 접속을 허용할 내부 클라이언트 주소를 명시해 주면 됩니다. 외부로 스트리밍 서비스를 하는 경우에는 "any"로 설정합니다. mdp의 기본 포트는 TCP 6600입니다. 외부에 서비스를 제공하고자 할 때는 /etc/shorewall/rules.drakx에서 이 포트를 추기해 주어 방화벽에서 제외시켜 주어야 합니다.


step04. 퍼미션 설정


mpd5.png

 

클라이언트가 mpd 서버에 접속할 수 있는 비밀번호를 설정합니다. passwd@ 부분을 여러분의 비밀번호로 설정해 줍니다.

예를 들어 linux라는 비번으로 사용하고자 한다면 linux@로 설정해 주면 됩니다.


step05. 오디오 출력 설정


mpd6.png


넘버원 리눅스에서는 사운드 드라이버로 기본적으로 pulse를 지원합니다.  mpd도 pulse를 지원하지만, 이에 관련된 설정이 없으므로 ALSA로 설정된 블록을 상기 설정과 같이 수정합니다. type을 pulse로 설정합니다. 만일 pulse를 사용하지 않고, alsa를 사용한다면 alsa로 설정해 주어야 합니다. name은 서버에 맞는 이름을 부여해 주면 되고, device는 사운드 카드의 장치명을 정확히 지정합니다. 사운드 카드의 장치명은 'aplay -l' 명령을 이용하여 확인합니다. encorder 플러그인으로는 flac, lame, vorbis등이 있는데, mp3 음원 파일은 lame으로, ogg 음원 파일은 vorbis로 지정해 주면 됩니다.


mpd7.png 


step06. 믹서 설정


mpd8.png

사운드 믹서 기능을 사용하고자 한다면 mixer_type을 "pulse"로 설정하면 됩니다.


3.3 mpd 실행


 # /etc/init.d/mpd start                        [시작]

 # /etc/init.d/mpd stop                         [종료]

 # /etc/init.d/mpd restart                      [재시작]


mpd9.png


4. 칸타타(Cantata)

칸타타는  mpd 서버의 클라이언트 프로그램으로 qt 라이브러리로 만들어진 프로그램입니다. 칸타타는 mpd 서버에서 설정한 경로에 있는 음원 파일을 네트워크를 통하여 실행하여 감상할 수 있게 해 주는 프로그램으로, 음원 파일 연주 외에 icecast, shoutcast, tunein으로 서비스되는 인터넷 스트리밍 서비스를 지원하여 각종 인터넷 라디오 방송국을 선국하여 청취할 수 있습니다.


4.1 칸타타 설치


넘버원 리눅스의 모태인 PCLinuxOS의 리포지토리에서는 칸타타를 지원하지 않습니다. 칸타타를 설치하기 위해서는 첨부된 파일을 다운로드하여 설치하거나 넘버원 리눅스 리포지토리 서버로부터 시냅틱으로 설치하면 됩니다.


4.2 넘버원 리눅스 리포지토리 서버 추가하기및 칸타타 설치


step01. 다음과 같이 /etc/apt/sources.list 파일에 넘버원 리눅스 리포지토리 위치를 추가합니다.


mpd11.png


step02. 시냅틱을 실행하여 [다시 불러오기] 도구 아이콘을 클릭하여 리포지토리 DB를 갱신합니다.


step03. 검색 도구 아이콘을 클릭하여 cantata를 검색하여 칸타타 패키지를 설치합니다.

mpd12.png


4.3 칸타타 실행


칸타타 패키지 빌드를 뭔가 빠트려서 그런지 런쳐(시작메뉴)에는 등록되어 있지 않군요.(rpm 재빌드함)

[시작메뉴 > 사운드 > 칸타타]를 선택하여 칸타타를 실행하거나 ALT+F2키를 눌러 cantata를 입력하여 칸타타를 실행하거나 콘솔에서 칸타타 명령을 입력하여 실행합니다.


mpd16.png

 

[표준]을 선택하여 [다음] 버튼을 클릭합니다.


mpd17.png


mpd에서 설정한 비밀번호와 포트를 입력합니다.  만일 서버가 로컬이 아닌 내부 네트워크상에 있는 서버나 외부에 있는 서버라 한다면 호스트 입력란에 서버의 주소를 입력합니다.


음악 폴더는 mpd 서버에서 music_directory 옵션으로 명시한 경로에 심볼릭 링크한 경로를 지정합니다. 이를 위해서 음원 파일이 있는 경로를 이 옵션의 경로로 심볼릭 링크하여 심볼릭 링크한 하위 경로를 지정해 주면 됩니다.


[연결] 버튼을 클릭하여 mpd 서버에 연결합니다. 서버에 연결되면 [다음] 버튼이 활성화되는데, [다음] 버튼을 클릭합니다.


mpd18.png


[다음] 버튼을 클릭합니다.


mpd19.png


[완료] 버튼을 클릭하여 칸타타 설정을 완료합니다.



4.4 DB 업데이트


칸타타 오른쪽 상단 느낌표 아이콘옆에 있는 설정 아이콘을 클릭하여 mpd서버에 있는 음원 파일에 대한 데이터베이스를 갱신하기 위해서 [데이터베이스 새로 읽기]를 클릭합니다.


mpd15.png


[새로 고침]을 클릭하여 DB를 갱신합니다.


mpd21.png


4.5 음원 파일 감상하기


[폴더] 메뉴에서 음원이 있는 폴더가 보이면 해당 폴더명을 클릭하여 선곡을 합니다. 파일을 선곡한 후에 플레이 버튼을 클릭합니다.

mpd22.png


mpd 서버로부터 음원 파일이 스트리밍됨을 양 스피커로 확인할 수 있습니다.


4.6 인터넷 라디오 방송국 듣기


칸타타는 Icecast, Shoutcast, Tunein 등의 다양한 스트리밍 서버들을 지원합니다. 이들 서버를 선택하여 여러분이 애호하는 장르의 음악을 감상할 수 있습니다.


mpd23.png


5. 네트워크 펄스오디오 서버 설정


5.1 개요


MPD 서버를 구축한 후 클라이언트 시스템에서 칸타타를 실행하여 MPD 서버에 접속하면 음원이 실행중이어도 사운드가 나오질 않습니다. 이는 펄스오디오 서버 설정이 되어 있지 않아서 사운드 출력이 되질 않는 것이므로, 추가적으로 펄스 오디오와 MPD 서버를 설정해야 합니다.


5.2 MPD 서버 설정


/etc/mpd.conf  파일에 sink 설정을 다음과 같이 추가합니다.


mpd24.png


5.3 MPD서버의 펄스오디오 설정


/etc/pulse/default.pa 파일에서 다음 설정의 주석을 제거합니다.


 load-module module-null-sink sink_name=rtp
 load-module module-rtp-send source=rtp.monitor


5.4 MPD 데몬 재실행


/etc/init.d/mpd restart 명령을 실행하여 데몬을 재실행합니다.


5.5 클라이언트의 펄스오디오 설정


/etc/pulse/default.pa 파일에서 다음 설정의 주석을 제거합니다.


  load-module module-rtp-recv


5.6 클라이언트의 펄스 오디오 데몬 실행


 load-module module-rtp-recv


자, 이제 칸타타를 실행하여 음원을 선택하여 실행하면 클라이언트 시스템으로 사운드가 나올 것입니다. 클라이언트의 사운드 시스템은 정상이지만, 서버쪽에서 음원을 실행하였을 때 사운드가 나오질 않을때는 다음과 같이 설정해 주면 됩니다.


/etc/mpd.conf 파일의 오디오 출력 부분에 server "127.0.0.1"를 추가하고, sink 설정엔 주석 처리합니다. 그리고 /etc/pulse/default.pa 에서 load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1를 추가하거나 주석해제하고 수정합니다.

mpd와 pulseaudio를 재실행주면 됩니다. 이렇게 하면 클라이언트에서 칸타타를 실행하면 사운드는 클라이언트에선 출력되지 않고 서버쪽에서도 사운드가 나오며, 서버쪽에서도 칸타타를 실행해도 서버의 스피커로 출력됩니다.


6. MPD 음원을 ICECAST 서버로 송출하기


6.1 개요


Icecast는 Ogg 음원을 스트리밍을 해 주는 서버 프로그램으로 iceS, Darkice, Mixxx, MPD, Ezstream 등 다양한 음원 클라이언트를 지원하고 있습니다.

Icecast로 인터넷 스트리밍 서버를 구축하여 로컬에 있는 OGG 음원을 네트워크상에서 미디어 플레이어로 재생하여 감상할 수 있으며, iceS와 같은 소스 클라이언트를 사용하여 여러분의 컴퓨터에서 마이크를 이용하여 라이브 방송을 서비스할 수 있습니다. Icecast와 iceS를 이용한 인터넷 스트리밍 서버 구축에 관한 것은 "리눅스의 모든 것"에선 829~835쪽에 기술되어 있습니다.


지금까지 살펴본 MPD 역시 Icecast로 송출할 수 있는 기능을 제공하고 있습니다. 칸타타에서 실행한 음원 파일을 스피커가 아닌 인터넷상으로 송출하여 원격 시스템의 미디어 재생기를 통하여 들을 수 있게 할 수 있습니다. Icecast 서버가 구축되어 있는 상태에서 icecast 서버로 송출하는 방법과 클라이언트 시스템에서 인터넷 스트리밍 서비스를 사용하는 방법에 대해서 알아보겠습니다.


6.2 MPD 서버 설정


mpd25.png


상기 설정에서 Icecast의 host와 port 그리고 password 설정만 수정하면 됩니다. 그리고 나서 mpd 데몬을 재실행하면 icecast 서버로 송출할 준비가 됩니다.


6.3 스트리밍 서비스 감상하기


칸타타를 실행하여 음원을 재생합니다. 그러면 사운드는 스피커로 출력되지 않고 아무런 소리가 나질 않습니다. 음원이 Icecast 서버로 송출되고 있기 때문입니다. vlc이나 인터넷 스트리밍을 지원하는 미디어 재생기를 실행하여 URL주소와 마운트명을 입력하여 접속합니다. 만일 mplayer를 이용한다면 콘솔에서 다음과 같이 입력하여 실행하면 됩니다.


 $ mplayer http://서버주소:포트번호/mpd.ogg 





  • profile
    zharyong 2016.08.30 01:15

    * 플레이 진행 상태바는 돌아가는데 펄스오디오 사운드 출력이 안될 때

    /etc/pulse/client.conf 파일 설정에서 audospawn= yes 설정 앞에 세미콜론(;) 처리한 후 mpd 프로세스를 죽인 후에 펄스오디오 프로세스를 죽이고나서 다시 mpd를 띄워 주면 됩니다.

  • profile
    zharyong 2016.08.30 01:49
    * mpd 데몬을 띄운 후 데이터베이스 갱신할 때마다 mpd 데몬이 죽을 때

    music_directory로 명시된 경로에 지원하는 음원 파일이 아닌 다른 파일이 있을 경우 mpd 데몬이 죽을 수 있으므로 mp3가 아닌 ogg나 다른 음원 파일이 있는지를 확인하여 삭제 또는 이동 조치를 한 후에 다시 DB를 갱신해 봐야 합니다.
  • profile
    zharyong 2016.08.30 18:27

    No1.Linux 리포지토리에 있는 mpd 패키지는 상기 설정 과정없이 바로 서버 운영이 가능하도록 설정되어 있습니다. No1.Linux mpd 패키지를 설치한 후에  데몬을 시작하고 /var/lib/mpd/music 경로로 심볼릭 링크하고 칸타타에서 음원을 불러오면 서비스가 가능해 집니다.


    Icecast 송출은 이에 관련된 설정의 주석만 풀어주고 mpd 데몬을 재시작해 주면 됩니다.

    참고로 펄스오디오 설정에 관련된 부분은 이 패키지로 해결되지 않으므로, 수동으로 펄스오디오는 조절하기 바랍니다.

     

     

  • profile
    zharyong 2016.09.02 18:14 Files첨부 (1)

    네트워크상에서 MPD의 스트리밍을 감상하는 경우 펄스오디오에서는 스트리밍 사운드가 나오질 않거나 끄고자 할 경우에는 펄스오디오의 볼륨조절 도구에서 RTP를 끄는 방법도 있으나, 효율적으로 On/Off 하는 방법은 펄스오디어 서버환경설정 도구(paprefs)를 실행하여 [멀티캐스트/RTP]탭을 클릭하여 [멀티태스트/RTP 수신 허용] 체크 항목을 풀거나 체크하면 됩니다.

    paprefs.png


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 넘버원 리눅스 팁은 FAQ 게시판으로 zharyong 2018.07.15 1866
173 [엑스] No1.Linux 2018 KDE Plasma5의 QT 프로그램 글꼴 비대화 file zharyong 2018.03.19 328
172 [설치] 넘버원 리눅스 부팅 메뉴에 대해서 알아보자 file zharyong 2018.03.19 474
171 [TodayAPP] KDE Plasma와 스마트폰 연동하기 - KDE Connect 4 file zharyong 2018.03.10 7281
170 [TodayAPP] 빨리 파일을 찾고자 한다면 AngrySearch zharyong 2018.03.08 344
169 [KDE5] Latte Dock file zharyong 2018.03.07 633
168 [PLASMA5] KDE5 PLASMA5용 DOCK - KSmoothDock file PourLinux 2018.03.02 354
167 [원격제어] 팀뷰어 잘 사용하세요? AnyDesk는 어떨까요? file zharyong 2017.07.10 2677
166 [한글입력기] KDE5의 iBUS 한글 입력기에서 한영키가 안 될때 file zharyong 2017.07.09 2627
165 [하드웨어] 블루투스 스피커와 블루투스 동글 셋팅하여 음악 감상하기 file PourLinux 2017.07.09 1967
164 [Graphics] No1.Linux에서 사용할 수 있는 페인트 프로그램들 file PourLinux 2017.02.05 1345
163 [Music] 악기(기타)를 좋아하는 리눅서를 위한 프로그램 file PourLinux 2017.02.04 1059
162 [화면캡쳐] scrot를 이용한 콘솔에서 엑스 화면 캡쳐 file PourLinux 2017.02.04 1181
161 [No1.Linux-2016.10.30] 바탕화면을 예쁘게 꾸며보자 file PourLinux 2017.02.01 800
160 [No1.Linux-2016.10.30] 한글 입력기 UIM, Nabi file zharyong 2016.12.30 1515
159 [GUI스크립트] 쉘 스크립트를 GUI로 작동시켜 보자 -- zenity 간단한 메뉴얼 file zharyong 2016.12.29 2825
158 [No1.Linux-2016.10.30] 3D 데스크탑을 즐겨봐요 file zharyong 2016.12.28 697
157 [No1.Linux-2016.10.30] 한컴오피스 뷰어 설치하기 file zharyong 2016.12.27 699
156 [No1.Linux-2016.10.30] 스팀을 이용하여 게임 즐기기 file zharyong 2016.12.26 982
155 [쉬었다가는 코너] cURL를 이용한 콘솔에서 날씨 보기및 그외 file zharyong 2016.10.06 1506
154 [엑스] 엑스에서 고해상도 설정이 안될 경우 설정 방법 file zharyong 2016.10.06 1890
목록
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 12 Next
/ 12