음악 네트웍 스트리밍, 스피커 출력 – 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(안드, 맥, 윈도)의 네트워크 스트리밍 기능을 이용해 감상할 수도 있습니다. 원하는 방식으로 사용하세요.
참고자료
- http://mpd.wikia.com/wiki/Install
- http://ko.goldenears.net/board/3155439
- http://www.berrycracker.net/archives/871
- http://mpd.wikia.com/wiki/Clients