음악 네트웍 스트리밍, 스피커 출력 – MPD, MPC

 

MPD(Music Player Daemon) 는 음악파일을 재생, 관리해주는 서비스입니다. 스피커 출력, 네트웍 스트리밍을 지원할 뿐 아니라 linux shell 또는 안드로이드 앱을 통해 재생 및 playlist 관리를 할 수 있는 가볍고 편리한 프로그램입니다.

거실 혹은 매장을 염두에 두고 사용하기 딱 좋은 플레이어로 원격관리가 가능합니다.

 

 

설치과정

 

먼저 필요한 패키지부터 설치합니다.

  • sudo apt-get install mpd ncmpc mpc

mpd 는 백그라운드로 실행되는 플레이어 core 입니다. mpc는 mpd의 동작을 제어할 수 있는 쉘 스크립트 – 명령어 기반 관리도구(클라이언트) 입니다. ncmpc는 쉘 환경에서 좀 더 편하게 키보드로 조작할 수 있도록 해주는 클라이언트 입니다.

GUI 환경을 원하신다면 sonata 등을 사용할 수 있고 안드로이드는 MPDroid, 아이폰(팟)은 MPod, 패드는 MPad 클라이언트를 사용하심 됩니다. 이 외에도 굉장히 다양한 클라이언트들이 있으니 링크를 참고하세요.

 

설치가 끝나면 MPD 설정 파일을 만져줘야 합니다.

  • sudo nano /etc/mpd.conf

아래 항목들을 찾아 바꿔줍니다.

music_directory "/home/pi/music"

음악 파일이 저장될 디렉터리, 자신의 계정 아래에 두는게 FTP 등으로 파일을 첨삭하기 편하실 듯…

#user "mpd"
#group "nogroup"
bind_to_address "any"
port "6600"
metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"
auto_update "yes"
password "your_password@read,add,control,admin"
default_permissions "read,add,control,admin"

user, group 항목은 주석처리(#을 앞에 붙여서) 해주시면 됩니다. mpd 데몬 실행시 권한을 설정하는 부분입니다.

bind_to_address 항목은 “any”로 바꿔서 어디서든 접근 가능하게 해줍니다.

port 항목은 절대 바꾸지 마세요. 외부에서 MPD 설정을 바꿀 때 사용하는 포트인데, 이거 바꾸니 동작을 원격제어가 안되는 문제가 발생합니다.

metadata_to_use 항목은 주석을 풀어주면 됩니다.

auto_update 는 yes로 설정

password, default_permissions 항목은 위 처럼 주석을 풀어주고 password 항목의 비밀번호를 원하는대로 바꿔줍니다.

 

#input {
# plugin "curl"
# proxy "proxy.isp.com:8080"
# proxy_user "user"
# proxy_password "password"
#}

input 항목은 특별히 원하는 경우가 아니라면 주석처리

 

audio_output {
type "alsa"
name "My ALSA Device"
device "hw:0,0" # optional
# format "44100:16:2" # optional
# mixer_device "default" # optional
# mixer_control "PCM" # optional
# mixer_index "0" # optional
}

출력 설정을 하는 audio_output 항목은 중요합니다. type “alsa”는 스피커 출력을 말합니다. 스피커 출력을 사용하고 싶다면 이 항목의 주석을 위와 같이 맞춰줍니다.

device “hw:0,0″ 에서 첫 번째 0이 디바이스 넘버입니다. 이걸 정확히 맞춰줘야 스피커 출력이 됩니다. 쉘에서 아래 명령어를 실행하면 오디오 디바이스 목록이 나옵니다.

  • $ sudo aplay -l

목록에서 각 오디오의 디바이스 넘버를 확인 한 뒤, hw:0,0 <– 여기에 넣어주면 됩니다.

 

audio_output {
type "httpd"
name "My HTTP Stream"
encoder "lame" # optional, vorbis or lame
port "8881"
# quality "5.0" # do not define if bitrate is defined
bitrate "128" # do not define if quality is defined
format "44100:16:1"
}

내외부 네트워크로 음악 스트리밍을 하고 싶을 때는 위 처럼 type “httpd” 인 audio_output 항목을 바꿔주면 됩니다.

vorbis는 ogg, lame은 mp3입니다. lame으로 맞춰주면 됩니다.

 

mixer_type "disable"
volume_normalization "yes"
audio_buffer_size "2048"
filesystem_charset "UTF-8"
id3v1_encoding "UTF-8"

위 항목들도 찾아서 똑같이 맞춰주세요. 설정이 끝났으니 저장해주시고…

 

재생할 음악 파일부터 넣어둬야 인식이 됩니다. 설정 파일에서 음악파일 경로를 /home/pi/music 으로 맞춰줬으니 그대로 디렉터리를 만들어줍니다.

 

  • $ cd ~
  • $ mkdir music
  • $ chmod 755 music

이제 music 디렉터리 안에 파일을 FTP 등으로 넣어줍니다. 파일을 넣어주고 MPD 데몬을 재시작.

  • $ sudo /etc/init.d/mpd restart

음악파일을 인식하도록 업데이트를 해줘야 합니다. mpc 클라이언트 명령어를 통해 간단히 할 수 있습니다.

  • $ mpc update

음악파일을 이용해 재생목록을 만들어 두는 것이 좋습니다. mpc 를 이용해서 작업을 할 수도 있겠지만 명령어 기반이라 엄청 불편하므로 ncmpc 클라이언트를 이용해서 합니다.

  • $ ncmpc

여전히 불편하긴 하지만;;; 아래 키를 참고해서 여러가지 조작을 해보세요.

  • 1: 도움말 탭, 2: 재생목록, 3: 파일열람
  • 3을 눌러 파일열람 탭으로 이동
  • 원하는 파일을 커서로 선택하고 a 키를 누르면 재생목록에 등록됨
  • v키를 눌러 여러 파일을 선택할 수 있고, a 키를 눌러 한번에 재생목록에 추가 가능
  • 2번 키를 눌러 재생목록으로 이동, 엔터키를 누르면 재생이 시작됨
  • shift+s 키(S)를 눌러 재생목록을 playlist로 저장할 수 있음.
  • d (or delete)키를 눌러 원하는 항목을 삭제 가능
  • q 키를 누르면 종료

 

이제 다양한 경로를 통해 음악을 즐기세요. 스피커 출력을 하도록 해놓고 MPDroid 안드로이드 앱으로 제어를 해도 되고, mpc 클라이언트 명령어를 이용해 자동화 하도록 스크립트를 만들 수도 있습니다.

브라우저에서 http://IP:8881 접속해서 음악을 들을 수 있고, VLC player(안드, 맥, 윈도)의 네트워크 스트리밍 기능을 이용해 감상할 수도 있습니다. 원하는 방식으로 사용하세요.

 

 

참고자료

 

You may also like...