Music Player Daemon (Español)
MPD (Music Player Daemon) es un reproductor de audio que maneja una arquitectura servidor-cliente. MPD se ejecuta en el fondo como un demonio, gestiona listas de reproducción y una base de datos, y hace uso de muy pocos recursos. Para hacer uso de una interfaz gráfica, es necesario un cliente adicional. Más información puede obtenerse en su página web.
Procedimiento de Instalación del demonio
Instale el paquete mpd, o la versión en desarrollo mpd-gitAUR.
Instrucciones de Configuración
Para más información de la configuración de MPD, por favor visite https://mpd.wikia.com/wiki/Configuration
Linea de Tiempo del Comportamiento Habitual de MPD
- MPD es iniciado al cargar el sistema operativo por medio de
/etc/rc.conf
, incluyéndole en el apartado DAEMONS. (O, esto puede ser hecho manualmente ejecutando/etc/rc.d/mpd start
con privilegios de root). - Al ser iniciado MPD como root, leerá el archivo
/etc/mpd.conf
. - MPD lee la variable usuario en el archivo
/etc/mpd.conf
, y cambia de root a este usuario. - MPD continúa leyendo el contenido del archivo
/etc/mpd.conf
y se configura de acuerdo a este.
Recuerde que MPD cambia el usuario de root a aquel mencionado en el archivo /etc/mpd.conf
. Siendo asi, el uso de "~" en el archivo de configuracion hace referencia al directorio home del usuario, y no al directorio de root. Podria ser de utilidad cambiar todos los "~" a "/home/username" para prevenir cualquier confusion sobre este aspecto del comportamineto de MPD. Si no se espeifica un usuario, cuando este se ejecute lo hara como el usuario actual.
Correcta Configuración de Sonido
Para que la salida de audio funcione, asegúrese de haber configurado la tarjeta de sonido y el mixer correctamente. Vea ALSA. No olvide activar los canales requeridos en alsamixer, incrementar el volumen y guardar los cambios con alsactl store. Vea ~/.mpd/error
si aún no funciona.
Asegúrese que su tarjeta pueda hacer mezclas por hardware (la mayoría de ellas pueden, incluidas aquellas integradas de la board), si no, esto podría traer problemas con múltiples reproducciones de sonido. Por ejemplo, Mplayer no podría reproducir sonido mientras el demonio se esté ejecutando, mostrando un mensaje de error indicando que el dispositivo se encuentra ocupado.
Configuracion General
- Como root, verifique si
/etc/mpd.conf
existe y elimine el archivo en caso de que exista. Esto es hecho por seguridad.
MPD viene con un archivo de configuración de ejemplo, disponible en /usr/share/doc/mpd/mpdconf.example
. Este archivo contiene abundante información acerca de la configuración de MPD, y contiene valores predeterminados para el mixer, que simplemente pueden ser descomentados.
- Como root, copie este archivo de ejemplo a
/etc/mpd.conf
.
# cp /usr/share/doc/mpd/mpdconf.example /etc/mpd.conf
Para editar el archivo, como root:
# SUEDITOR /etc/mpd.conf
Edite /etc/mpd.conf
para que se vea de la siguiente manera.
music_directory "/home/usuario/música" # Su directorio de música. playlist_directory "/var/lib/mpd/playlists" db_file "/var/lib/mpd/db" log_file "/var/log/mpd/mpd.log" error_file "/var/log/mpd/mpd.error" pid_file "/var/run/mpd/mpd.pid" state_file "/var/lib/mpd/mpdstate" # Ediciones a la dirección y el puerto causan problemas en mpd-0.14.2 es preferible dejarlos # comentados. # bind_to_address "127.0.0.1" # port "6600"
Las direcciones de los archivos son los que por defecto se crean al istalar MPD, pero se pueden crear en otro lugar, por ejemplo si se desea tener todos los archivos bajo una misma carpeta.
- Ahora como root, cree los archivos especificados en {Filename|/etc/mpd.conf}}, si los directorios no existen también deben ser creados.
# touch /var/lib/mpd/db # touch /var/lib/mpd/mpdstate # touch /var/run/mpd/mpd.pid # touch /var/log/mpd/mpd.log # touch /var/log/mpd/mpd.error
- Si su colección musical está contenida en múltiples directorios, puede crear enlaces simbólicos en /var/lib/mpd y luego dirigir la variable 'music_dir' en mpd.conf a el directorio que contiene los enlaces.
- Crear la base de datos ahora es realizado por medio de la opción "update" del cliente, por ejemplo, si ejecuta ncmpcpp, por medio de la tecla 'U'.
- El método anterior, crear la base de datos de MPD como root (# mpd --create-db), es obsoleto.
Configuración Por Usuario
MPD no necesita ser iniciado con permisos de root. La única razón por la cual MPD necesita ser iniciado como root (siendo llamado por medio de /etc/rc.conf
) es porque los archivos y directorios mencionados por defecto en el archivo de configuración son propiedad de root (el directorio /var). Una menos común, pero quizás mas sensible configuración, consiste en hacer que MPD trabaje con archivos y directorios que sean propiedad de un usuario normal. Ejecutar MPD como un usuario normal tiene varias ventajas:
- Puede manejar un solo directorio ~/.mpd (o cualquier otro directorio bajo /home/usuario) para todos los archivos de configuración de MPD
- No hay errores de lectura/escritura
- llamado más flexible a MPD haciendo uso de
~/.xinitrc
en vez de incluir MPD en la sección DAEMONS en/etc/rc.conf
.
Los siguientes pasos indican como iniciar MPD como un usuario normal. Debe realizar todos los pasos como usuario.
- Copie el contenido del archivo de configuración por defecto de MPD, ubicado en
/usr/share/doc/mpd/mpdconf.example
a su directorio home.
cp /usr/share/doc/mpd/mpdconf.example ~/.mpdconf
- Siga los pasos de la configuración anterior, ignorando la primer parte, que hace referencia a copiar el archivo de configuración a
/etc/mpd.conf
. - Cree todos los archivos necesarios en
"/home/user/.mpd/"
:
"~/.mpd/playlists" "~/.mpd/db" "~/.mpd/mpd.log" "~/.mpd/mpd.error" "~/.mpd/mpd.pid" "~/.mpd/mpdstate"
- Haga que MPD inicie al arranque de sesión (esto depende de su entorno de escritorio para su correcta configuracion).
Finalmente, elimine MPD de la sección DAEMONS en /etc/rc.conf
, ya que no será ejecutado como root nunca más.
Configuración Multi-MPD
Útil si desea ejecutar un servidor icecast, por ejemplo.
Si desea un segundo demonio MPD (ej., con una salida icecast para compartir su música a través de una red) que haga uso de la música y listas de reproducción del primero, simplemente copie el archivo de configuración anterior y cree uno nuevo (ej., /home/username/.mpd/config-icecast
), y solo cambie los parámetros de log_file, error_file, pid_file, y state_file (ej., mpd-icecast.log
, mpd-icecast.error
, y demás); hacer uso de los mismos directorios de música y listas de reproducción asegurará que este segundo demonio MPD hará uso de la misma colección musical del primero (ej., crear y editar una lista de reproducción bajo el primer demonio afectará también al segundo demonio, de modo que no sea necesario crear la misma lista de nuevo para el segundo demonio). Finalmente, ejecute este segundo demonio por medio de su archivo ~/.xinitrc
. (Asegúrese de utilizar un numero de puerto diferente, para evitar conflictos con su primer demonio MPD).
Instalando Clientes para MPD
Los mas populares son:
- mpc – Cliente para línea de comandos. Lo mas común es instalar este en paralelo a otro cliente más avanzado.
- ncmpc – Cliente que emplea la librería ncurses. Muy útil para usar en consola. Pagina oficial de ncmpc[enlace roto 2020-08-04]
- ncmpcpp – Clon de ncmpc con algunas nuevas opciones escrito en C++. Sitio oficial de ncmpcpp[enlace roto 2020-08-04]
- pms – Otro cliente que utiliza ncurses. Altamente configurable y accesible. Pagina Sourceforge de pms
- ario – Cliente GTK+ con un manejo de librerías similar a la de Rythmbox. Sitio oficial de Ario
- sonata – Cliente Python GTK+. Sitio oficial de Sonata
- gmpc – Cliente GNOME. Sitio oficial de gmpc[enlace roto 2020-08-04]
- QMPDClient – Cliente escrito en Qt 4. Sitio oficial de QMPDClient[enlace roto 2020-08-04]
Instálelos usando:
# pacman -S mpc # pacman -S ncmpc # pacman -S ncmpcpp # pacman -S pms # pacman -S ario # pacman -S sonata # pacman -S gmpc # pacman -S qmpdclient
Más Opciones
Envío de Canciones a Last.fm
Para enviar los títulos de las canciones hacia Last.fm con MPD existen varias alternativas.
Mpdscribble
mpdscribble es otro demonio, pero sólo está disponible en AUR[enlace roto 2020-08-04]. Suele ser la mejor alterativa, ya que sería el scrobbler semi-oficial de MPD y, además, usa el nuevo "idle" en MPD para mejorar el scrobbling.
No es necesario el acceso root para su configuración, porque no necesita realizar ningún cambio dentro del directorio /etc
. Para más información, se puede visitar sitio oficial de Mpdscribble[enlace roto 2020-08-04].
Para instalar mpdscribble, solo instálelo desde AUR y luego, sin ser root, haga:
$ mkdir ~/.mpdscribble
- Cree el archivo
~/.mpdscribble/mpdscribble.conf
y añada lo siguiente:
username = <su nombre de usuario de last.fm> password = <Número de verificación md5 de su password de last.fm> # Se genera ejecutándo "echo -n password | md5sum" host = <su mpd host> # por defecto $MPD_HOST o localhost port = <su mpd port> # por defecto $MPD_PORT o 6600 log = ~/.mpdscribble/mpdscribble.log journal = ~/.mpdscribble/mpdscribble.cache verbose = 2 sleep = 1 musicdir = <su directorio de música>
- Añada
mpdscribble
a su~/.xinitrc
.
Sonata
La forma más sencilla, pero implica usar una interfaz gráfica, es usar Sonata. Este programa es un frontend gráfico para MPD, que incluye de serie el soporte para scrobbling hacia Last.fm dentro de sus opciones. El punto negativo, es que como Sonata no realiza cache de los temas reproducidos, se necesita tener una conección activa durante la reproducción para que el scrobble se realice.
Lastfmsubmitd
lastfmsubmitd es un demonio disponible dentro del repositorio "community". Para instalarlo, primero edite /etc/lastfmsubmitd.conf
y luego añada lastfmsubmitd
y lastmp
a la sección DAEMONS
dentro de su /etc/rc.conf
.
Reproducción Desde Last.fm
Reproducción Nativa
Desde la versión 0.16 MPD tiene un método para reproducir desde last.fm[enlace roto 2020-08-04].
/etc/mpd.conf
playlist_plugin { name "lastfm" user "my_username" password "my_password" }
Por Ejemplo:
$ mpc load "lastfm://artist/Beatles"
Reproducir Desde Last.fm con Lastfmproxy
Lastfmproxy es un script escrito en python que permite reproducir música desde last.fm hacia cualquier otro reproductor. Para instalarlo lastfmproxyAUR[enlace roto: package not found] desde AUR debe editar /usr/share/lastfmproxy/config.py
.
Para iniciar lastfmproxy
debe ir a http://localhost:1881/
en su navegador. Para gregar una estacion a last.fm navegue desde http://localhost:1881/
seguido por lastfm:// (por ejemplo: http://localhost:1881/lastfm://globaltags/punk
). Vuelva a http://localhost:1881/
y descargue el archivo m3u seleccionando el enlace de Start Listening. Sólo tiene que añadirlo a su biblioteca de música.
No reanudar play al inicio
Esta opción ha sido recientemente añadida a mpd git por Martin Kellerman, ver commits b57330cf75bcb339e3f268f1019c63e40d305145
y 2fb40fe728ac07574808c40034fc0f3d2254d49d
. Desde Septiembre 2011, esta opción todavía no ha llegado en una versión de mpd en los repositorios oficiales. Si se necesita soporte para esta función, compruebe las siguientes alternativas
Instalar mpd desde el AUR
Este es el mejor método disponible actualmente, pero está actualmente (a Abril 2011) activado en la versión de git. Instala mpd-gitAUR desde el AUR y añade restore_paused "yes"
a tu archivo mpd.conf
.
Si tienes problemas conectado tu cliente a mpd-gitAUR, comprueba #Otros errores intentando conectar con MPD con un cliente
Método 1
Si no quieres que MPD reanude la reproducción siempre al inicio del sistema, pero quieres preservar el resto de información del estado, añade las siguientes lineas a tu archivo /etc/rc.d/mpd
:
Método 1.1
Método simple y funcional (desactiva la reproducción automática al inicio del demonio mpd):
start)
...
mpc -q pause #add this line only add_daemon mpd stat_done
Método 1.2
Este método ha sido descrito aquí anteriormente al Método 1.1, y es mucho mas complicado:
... stat_busy "Starting Music Player Daemon"
# always start in paused state awk '/^state_file[ \t]+"[^"]+"$/ { match($0, "\".+\"") sfile = substr($0, RSTART + 1, RLENGTH - 2) } /^user[ \t]+"[^"]+"$/ { match($0, "\".+\"") user = substr($0, RSTART + 1, RLENGTH - 2) } END { if (sfile == "") exit; if (user != "") sub(/^~/, "/home/" user, sfile) system("sed -i \x27s|^\\(state:[ \\t]\\{1,\\}\\)play$|\\1pause|\x27 \x27" sfile "\x27") }' /etc/mpd.conf
/usr/bin/mpd /etc/mpd.conf &> /dev/null ...
Esto cambiará el estado del reproductor a "paused", si fue interrumpido en reproducción. Después, necesitas que este archivo sea preservado, de forma que actualizaciones de MPD no borren la edición. Añade (o edita) esta linea a tu /etc/pacman.conf
:
NoUpgrade = etc/rc.d/mpd
Método 2
Otro método más simple sería añadir mpd a tu array de demonios en rc.conf
, y añadir mpc stop
o mpc pause
a /etc/rc.local.shutdown
y a /etc/rc.local
. (Recuerda que necesitas mpc instalado para este método.
Añadir solo el comando en {ic|/etc/rc.local}} no puede garantizar que mpd no reproduzca nada, ya que puede haber una pausa antes de que el comando de pausa sea ejecutado.
Por otra parte, si solo añades el comando a /etc/rc.local.shutdown
, eso asegurará que mpd no reproducirá nada, siempre y cuando apagues correctamente tu sistema.
A pesar de que sea redundante, añadirlo a /etc/rc.local
serviría como una garantía para esas (supuestamente) raras ocaciones en las que no apagues el sistema correctamente.
Método 3
La idea general es pedirle a mpd que pause la música tras el log out del usuario, de forma que mpd mantendrá su estado de pausa tras un reinicio. Mandar tal señal puede ser logrado utilizando mpc, la interfaz de linea de comandos para MPD.
Los usuarios de GDM pueden añadir /usr/bin/mpc pause
a /etc/gdm/PostSession/Default
(asegúrate de añadirlo antes de exit 0
):
Los no usuarios de GDM pueden utilizar el método de su propio gestor de login para ejecutar la linea en el logout.
MPD y Alsa
A veces, con el uso de otros programas de audio, por ejemplo: páginas web que contienen applets de Flash, MPD se vuelve incapaz de reproducir (hasta que se reinicie). El error aparece en los log's de MPD de esta forma:
Error opening alsa device "hw:0,0": Device or resource busy
Las razones de esto pueden ser:
- La placa no soporta la mezcla de audio por hardware (use el plug-in dmix )
- La configuración predeterminada de ALSA no es adecuada.
Para mas detalles puede ir a este link.
El problema se puede resolver editando:
mpd.conf
audio_output { type "alsa" name "Sound Card" options "dev=dmixer" device "plug:dmix"
Para que los cambios tengan efecto debe reiniciar MPD.
Alto uso de CPU con Alsa
Cuando se utiliza MPD con ALSA, los usuarios pueden experimentar un elevado consumo de CPU (alrededor de 20-30%). Esto es causado por la mayoría de las placas de audio que soportan 48kHz y la mayoria de los temas son en 44kHz, lo que obliga a MPD para volver a muestrear (resample). Esta operación requiere de muchos ciclos de CPU.
En la mayoría de las veces se soluciona indicándole a MPD que no realice resample. Agregue la linea auto_resample "no"
en audio_output. Con esto disminuye la calidad de sonido.
mpd.conf
audio_output { type "alsa" name "My ALSA Device" auto_resample "no" }
Puede que no allá un cambio significativo pero agregando use_map "yes"
disminuye aun mas el uso de CPU:
mpd.conf
audio_output { type "alsa" name "My ALSA Device" use_mmap "yes" }
En Tuning MPD puede encontrar mas información.
Ejemplo de Configuración: Salida con 44.1 KHz a una profundidad de 16 bit, con múltiples programas
Este formato es un estándar CDA. ALSA permite la reproducción de mas de un programa con dmix — cuyo algoritmo de resample es inferior — ademas dmix, por defecto, realiza resamples todo aquello por debajo de 48 KHz. Ademas se pueden escuchar chasquidos sino se aplica esta configuración.
Esta configuración hace que todo (si es necesario) se vuelva a muestrear (resample) a este formato, como los DVD de video o la televisión, que generalmente es de 48 KHz. Pero no hay forma conocida de que ALSA cambie de forma dinámica de formato, y en particular, si usted escucha CD mucho más que cualquier otra cosa, 48 → 44,1 no es muy grande la pérdida.
Se supone que no hay otras configuraciones por resmple, ya que puede entrar en conflicto. Esto se aplica a nivel de usuario en ~/.asoundrc
pero MPD ignora este archivo por lo que tiene que especificar estas configuraciones en /etc/asound.conf
:
/etc/asound.conf
defaults.pcm.dmix.rate 44100 # Force 44.1 KHz defaults.pcm.dmix.format S16_LE # Force 16 bits
/etc/mpd.conf
audio_output { type "alsa" # Use the ALSA output plugin. name "HDA Intel" # Can be called anything or nothing tmk, but must be present. options "dev=dmixer" device "plug:dmix" # Both lines cause MPD to output to dmix. format "44100:16:2" # the actual format auto_resample "no" # This bypasses ALSA's own algorithms, which generally are inferior. See below how to choose a different one. use_mmap "yes" # Minor speed improvement, should work with all modern cards. } samplerate_converter "0" # MPD's best, most CPU intensive algorithm. See 'man mpd.conf' for others — for anything other than the poorest "internal", libsamplerate must be installed.
Si quiere que la profundida de bits sea decidido por ALSA, quite o comente la linea dmix.format y cambiar la linea format to "44100:*:2".
MPD y PulseAudio
Editar /etc/mpd.conf
f, y descomentar la sección audio_output para el tipo de pulse
.
A continuación, agregue el usuario a los grupos de pulse
necesarios. El grupo de pulse-access
de acceso debería ser suficiente, pero es posible que desee agregar pulse-rt
también. El grupo de pulse
no parece ser necesario.
# gpasswd -a mpd pulse-access # gpasswd -a mpd pulse-rt
Control de MPD con lirc
Ya hay algunos clientes diseñado para las comunicaciones entre lircd y MPD, sin embargo, en cuanto a la utilidad práctica, no son muy útiles ya que sus funciones son limitadas.
Se recomienda el uso de MPC con irexec. MPC es un reproductor de línea de comandos que sólo le envía la orden a MPD y se cierra inmediatamente, lo cual es perfecto para irexec, el ejecutor de comandos incluidas en lirc. Lo que hace irexec es ejecutar un comando especificado una vez recibió una señal de algun control remoto.
Si asi lo desea, lea primero el articulo LIRC.
Edite el archivo de configuración, por defecto se encuentra en ~/.lircrc
.
Agregue las lineas:
~/.lircrc
begin prog = irexec button = <button_name> config = <command_to_run> repeat = <0 or 1> end
Un ejemplo útil:
~/.lircrc
## irexec begin prog = irexec button = play_pause config = mpc toggle repeat = 0 end begin prog = irexec button = stop config = mpc stop repeat = 0 end begin prog = irexec button = previous config = mpc prev repeat = 0 end begin prog = irexec button = next config = mpc next repeat = 0 end begin prog = irexec button = volup config = mpc volume +2 repeat = 1 end begin prog = irexec button = voldown config = mpc volume -2 repeat = 1 end begin prog = irexec button = pbc config = mpc random repeat = 0 end begin prog = irexec button = pdvd config = mpc update repeat = 0 end begin prog = irexec button = right config = mpc seek +00:00:05 repeat = 0 end begin prog = irexec button = left config = mpc seek -00:00:05 repeat = 0 end begin prog = irexec button = up config = mpc seek +1% repeat = 0 end begin prog = irexec button = down config = mpc seek -1% repeat = 0 end
Para mas información de mpc ejecute mpc(1).
Control de MPD por medio del teléfono con Bluetooth
También puede controlar MPD (hasta cierto punto) con un teléfono con Bluetooth. Tiene que hacer lo siguiente:
- instalar remuco - un control remoto inalámbrico para varios reproductores multimedia de Linux (aur[enlace roto 2020-08-04])
- transferir del cliente de remuco los archivos jar/jad de
/usr/share/remuco/client/
a tu teléfono e instalarlo - ejecutar remuco-mpd (como el usuario actual)
- ejecutar remuco en su teléfono, definir una nueva conexión Bluetooth con remuco y explorar sus capacidades
Más información acerca de remuco (incluyendo solución a problemas) que se encuentran en su página[enlace roto 2020-08-04].
Archivos Cue
Para usar estos archivos, debe evitar un error de libcue. Libcue copia archivos desde libcdio, por lo que puede trare conflictos, para solucionarlo:
* Quitar libcdio temporalmente (pacman -Rdd libcdio) * Instalar libcue (pacman -S libcue) * Instalar MPD desde ABS o AUR. * Reinstalar libcdio (pacman -S libcdio)
En el momento de escribir este articulo no analiza tracknumbers de los archivos cue. Hay un parche disponible.
HTTP Streaming
Since version 0.15 there is a built-in HTTP streaming daemon/server that comes with MPD. To activate this server simply set it as output device in mpd.conf:
audio_output { type "httpd" name "My HTTP Stream" encoder "vorbis" # optional, vorbis or lame port "8000" # quality "5.0" # do not define if bitrate is defined bitrate "128" # do not define if quality is defined format "44100:16:1" }
Then to listen to this stream simply open the URL of your mpd server (along with the specified port) in your favorite music player. Note: You may have to specify the file format of the stream using an appropriate file extension in the URL. For example, using Winamp 5.5, You would use http://192.168.1.2:8000/mpd.ogg rather than http://192.168.1.2:8000/.
To use mpd to connect to the stream from another computer.
mpc add http://192.168.1.2:8000
Troubleshooting
Falla en Auto-detección
Durante el inicio de MPD, el intentará detectar automáticamente y configurar su salida de audio y control de volumen. Aunque en la mayoría de los casos esto suele funcionar, en otros sistemas puede fallar. Podría ser de ayuda para MPD especificar que utilizar como salida y mixer de sonido. Si su archivo /etc/mpd.conf
es una copia de /etc/mpd.conf.example
como se mencionó anteriormente, simplemente des-comente estas lineas:
Ejemplo de una salida tipo ALSA:
audio_output { type "alsa" name "My ALSA Device" device "hw:0,0" # optional format "44100:16:2" # optional mixer_type "hardware" mixer_device "default" mixer_control "PCM" }
Nota: en caso de problemas con los permisos usando ESD con MPD, ejecute esto como root:
# chsh -s /bin/true mpd
MPD se cuelga en el primer inicio
Este es un error común causado por etiquetas mp3 dañadas. Esta es una manera experimental para resolver este problema. Requisitos:
- kid3
- easytag
Este método es tedioso, especialmente con bases de datos enormes. Para que entiendan, tomó 2.5 horas arreglar una una base de datos de 16Gb.
Easy Tag
easytag aparece aquí porque detecta los errores en las etiquetas mp3, pero igual que MPD, se cuelga y muere. El truco es que easytag te dice cual es el archivo problemático en su barra de estado. Antes de empezar, asegúrate de iniciar easytag en una terminal para estar listo para cerrarlo por si se cuelga. Cuando estés listo, en la vista ramificada selecciona el directorio donde tienes tu música. Como opción predeterminada, busca archivos mp3 en todos los subdirectorios. Cuando veas que easytag dejó de escanear canciones, toma nota del culpable y mata a easytag.
KID3
Aquí es donde usamos kid3. Con kid3, busca la canción dañada y reescribe una de sus etiquetas, guarda el archivo y ya. Esto forzará a kid3 a reescribir todas las etiquetas y arreglara el problema con mpd.
Repite hasta que tu biblioteca musical este limpia.
Cannot connect to mpd: host "localhost" not found: Temporary failure in name resolution
Este error aparece cuando no puedes conectarte a MPD (con ncmpcpp) si estás desconectado de la red. La solución la encuentras en disable IPv6, o bien puedes añadir estas lineas en /etc/hosts
::1 localhost.localdomain localhost
Otros errores intentando conectar con MPD con un cliente
Algunos usuarios han reportado tener problemas conectando mpd con varios clientes.
$ ncmpcpp Cannot connect to mpd: Connection closed by the server $ sonata 2011-02-13 18:33:05 Connection lost while reading MPD hello 2011-02-13 18:33:05 Not connected 2011-02-13 18:33:05 Not connected
Por favor revisa los posts relacionados a ncmpcpp en el foro aquí y aquí. También revisa el reporte de errores de Arch aquí.
Primera solución
Revisa mpd.conf
por una línea como mpd.error
y bórrela. El archivo de error de mpd ha sido descontinuado.
Segunda solución
Si lo anterior no funciona, agrega las siguientes líneas a mpd.conf
:
bind_to_address "127.0.0.1" port "6600"
Luego, dile a tu cliente que conecte a 127.0.0.1. Por ejemplo, agrega esto a tu configuración de ncmpcpp:
mpd_host "127.0.0.1" mpd_port "6600"
Enlazando a IPV6 antes de IPV4
Si al iniciar ve este mensaje:
listen: bind to '0.0.0.0:6600' failed: Address already in use (continuing anyway, because binding to '[::]:6600' succeeded)
MPD está intentando vincularse a la interfaz ipv6 antes de vincularse a ipv4. Si quiere usar ipv4, escriba en mpd.conf
, así:
bind_to_address "127.0.0.1"
O, puedes especificar varios enlaces, por ejemplo, para que MPD escuche en localhost y en la IP externa de tu tarjeta de red:
bind_to_address "127.0.0.1" bind_to_address "192.168.1.13"
daemon: cannot setgid for user "mpd": Operation not permitted
El error es declarar que el usuario que inicia el proceso no tiene permisos para convertirse en otro usuario (mpd) con el que la configuración le ha dicho al proceso que se ejecute.
Para resolver este problema, simplemente inicie mpd como root.
# systemctl start mpd
daemon: fatal_error: Failed to set group NN: Operation not permitted
El error indica que mpd no puede establecer el grupo. Esto es si ha configurado cualquier otro grupo en /etc/mpd.conf
que el predeterminado: mpd. Esto se debe al archivo mpd.service
por defecto. Inicia mpd como usuario mpd (y si no se ha especificado ningún grupo con el grupo predeterminado de este usuario como se indica en su /etc/passwd
) y por lo tanto mpd no tiene ningún derecho a cambiar su grupo.
Primera solución
En /etc/mpd.conf
comente la parte group=
o cámbiela a group=mpd
Segunda solución
Crea un archivo mpd.service
personalizado en /etc/systemd/system/
y agregue el grupo que desee. P.ej. inicie mpd con el grupo "audio":
/etc/systemd/system/mpd.service
.include /usr/lib/systemd/system/mpd.service [Service] Group=audio
Tercera solución
Cambia el grupo por defecto del usuario mpd en tu /etc/passwd
.
MPD & ALSA
A veces, usando otras salidas de audio, p.ej: Algunas páginas web con subprogramas Flash, MPD no se puede reproducir (hasta que se reinicia). El error aparece en el log de mpd:
Error opening alsa device "hw:0,0": Device or resource busy
Razones para esto pueden ser:
- La tarjeta de sonido no soporta la mezcla de hardware (usa el plugin dmix)
- Una aplicación no funciona con los ajustes por defecto de ALSA'
Para una descripción detallada, se recomienda echar un vistazo a este sitio.
Este problema puede ser resuelto agregando las siguientes líneas a mpd.conf
:
mpd.conf
audio_output { type "alsa" name "Sound Card" options "dev=dmixer" device "plug:dmix" }
Para que el cambio surta efecto, reinicia mpd (p.ej. systemctl restart mpd
, si es una configuración global).
Alto consumo de CPU con ALSA
Usando MPD con ALSA, los usuarios pueden experimentar que MPD consume mucha CPU (alrededor de 20-30%). La causa de esto es que la mayoría de tarjetas de sonido soportan 48kHz y la mayoría de la música está a 44.1kHz, por lo tanto forzando a MPD a volver a muestrearlo. Esta operación conlleva muchos ciclos de CPU y resulta en un alto consumo.
Para la mayoría de usuarios el problema se puede solucionar diciéndole a MPD que no vuelva a muestrear añadiendo auto_resample "no"
en la parte de audio_output en /etc/mpd.conf
.
mpd.conf
audio_output { type "alsa" name "My ALSA Device" auto_resample "no" }
Aunque puede no acelerar tanto, habilitar mmap aún puede acelerar las cosas:
mpd.conf
audio_output { type "alsa" name "My ALSA Device" use_mmap "yes" }
Algunos usuarios querrían decirle a dmix que use 44kHz también. Puede buscar más información acerca del rendimiento de su MPD en MPD wiki
Reproduciendo archivos de audio con diferente ritmo (funciona para EMU 0202/0204/0404)
Para reproducir archivos de audio con diferente ritmo con el cambio automático de frecuencia instale pulseaudio y pulseaudio-alsa y siga usando ALSA como salida:
mpd.conf
audio_output { type "alsa" name "Emu 0202 USB" device "hw:2,0" }
Cambiando de usuario
Cambiar el grupo que ejecuta MPD puede resultar en errores como:
output: Failed to open "My ALSA Device"
[alsa]: Failed to open ALSA device "default": No such file or directory
o
player_thread: problems opening audio device while playing "Song Name.mp3"
Esto se debe a que los usuarios de MPD necesitan formar parte del grupo audio para acceder a dispositivos bajo /dev/snd/
. Para solucionarlo, haga que el usuario MPD sea parte del grupo audio:
# gpasswd -a 'MPD' audio
MPD incluye música de carpetas ocultas en la base de datos
MPD incluye carpetas ocultas en su base de datos como copias de seguridad de música repetitiva realizadas mediante sincronización como .stfolder
. Para corregir esto, cree un archivo .mpdignore
en el mismo directorio con una lista de archivos y carpetas para ignorar en cada línea, según la documentación de mpd.
Véase también
- Foro de MPD
- Manual de usuario de MPD
- Artículo en Wikipedia de MPD
- Repositorio en GitHub de MPD
- mopidy es una alternativa a MPD escrita en Python. Nótese que no es un reemplazo completo de MPD, su ventaja es que tiene extensiones para reproducir música en servicios de la nube, como Spotify, SoundCloud y Google Play Music.