reproducir archivos mp3 o wav a través de la línea de comandos de Linux

79

Me gustaría crear un sistema de alarma respaldado por un cuadro de Ubuntu (sin interfaz gráfica), que reproduzca varias pistas de audio de avisos y alarmas (.mp3 o .wav) a través de la línea de comandos.

Por ejemplo:

$ root> audioplay ./hello.wav

El audio debe provenir del conector de audio de la PC. También podría envolverlo con otro escucha de socket. (por ejemplo, Ruby Sinatra)

¿Alguna idea de cómo puedo hacer esto?

c2h2
fuente
1
En caso de que esté buscando archivos de ejemplo: /usr/share/soundses un buen lugar para buscarlos.
Martin Thoma

Respuestas:

48

mpg123 es una utilidad de línea de comandos que reproduce archivos mp3. Puedes instalarlo en Ubuntu con:

sudo apt-get install mpg123
pavium
fuente
77
Esto no reproduce archivos wav.
Cerin
71

El playcomando del soxpaquete reproducirá cualquier formato de archivo compatible soxcon el dispositivo de audio predeterminado, por ejemplo

$ play something.mp3
$ play something.wav

Es posible que necesite instalar paquetes adicionales para obtener soporte para todos los formatos, por ejemplo, en Ubuntu 11.04, el soporte para MP3 no estará disponible hasta que lo instale libsox-fmt-mp3.


fuente
1
También es compatible con archivos OGG (y probablemente otros).
lepe
1
En Ubuntu Xenial, hay un libsox-fmt-allpaquete para instalar todos los formatos.
Eugene Gr. Philippov
60

La forma más estándar de reproducir un archivo WAV en Linux es usar el aplaycomando, que es parte del ALSAsistema.

aplay [flags] [filename [filename]] ...

aplay a.wav

Enlaces: (Wikipedia) (aplay man page)

(Tanto en Fedora como en Ubuntu / Mint es parte del alsa-utilspaquete)

Esto no requiere ningún paquete adicional para su instalación de Linux como sox o mplayer o vlc, solo el ALSA básico que forma parte de cualquier sistema hoy en día.

Máxima
fuente
55
¡Gracias por el consejo! Agregué este alias a mi configuración de shell: alias beep = "aplay --quiet /usr/share/sounds/pop.wav". De esa forma puedo recibir una notificación cuando finalicen los comandos de ejecución larga. Por ejemplo: compilar && run && beep
Jesse Hallett
1
Si Jesse! Hago exactamente lo mismo con la compilación (conversiones de archivos largos, etc.). Utilizo sonidos de aquí: "Opilki sounds" (están bajo la licencia de Creatve Commons) perdóname esta pequeña publicidad, no estoy relacionado con el proyecto de ninguna manera :)
Maxim
Muy fácil y ya está instalado en todas partes. +1
Pitto
44
Recuerda que no puedes reproducir un MP3 con aplay. Simplemente te volverás estático.
starbeamrainbowlabs
@starbeamrainbowlabs, ¡escribí solo sobre archivos WAV!
Maxim
23

Instalar vlcusando:

sudo apt-get install vlc vlc-plugin-pulse mozilla-plugin-vlc

Asegúrese de tener todos los repositorios abiertos. También ejecute lo siguiente antes de instalar:

sudo apt-get update

VLC tiene un método de operación de línea de comandos invocado por cvlc. La siguiente parte sería escribir un .shque llamará al comando. No soy bueno escribiendo guiones de bash. El resultado final sería algo como:

cvlc xyz.mp3
cvlc --play-and-exit done.mp3 
prometheuspk
fuente
1
cvlc demasiado lento para arrancar? y necesita ser ejecutado por un usuario no root?
c2h2
1
cvlc --play-and-exit done.mp3si no quieres ctrl-c.
Michael Cole
cvlc --play-and-exit --no-loop done.mp3. Necesito la opción extra --no-loop, para que el archivo de sonido no se repita una y otra vez. (vlc 2.2.2, xubuntu 16.04.4)
loved.by.Jesus
tenga en cuenta que vlc generalmente depende de qt5 y X en alguna distribución, pero mpg123 depende solo de alsa-lib.
Recolic
8

Simplemente puede canalizar sus datos de sonido al dispositivo de altavoz de la PC:

cat rawsound | /dev/pcsp
troelskn
fuente
1
Dudo mucho que funcione con archivos MP3.
2
No funcionará con sonido codificado en mp3, por supuesto, pero funcionará con datos wav sin procesar
Troelskn
3
No tengo el dispositivo / dev / pcsp. ¿Qué más puedo probar?
trusktr
Me sale "cat: rawsound: Datei oder Verzeichnis nicht gefunden"
Timo
8

En Ubuntu 16.04, no hay necesidad de instalar nada. Puede reproducir un sonido paplay [audio]con es parte del servidor de sonido PulseAudio:

paplay mysound.mp3
mxdsp
fuente
7

mplayer es otro reproductor que puede reproducir prácticamente cualquier formato de audio / video desde la línea de comandos. para instalarlo en ubuntu solo ejecuta este comando:

sudo apt-get install mplayer

A continuación, puede reproducir el archivo con esta sintaxis:

mplayer [path to file]

¡buena suerte!

Ali Parsai
fuente
0

canberra-gtk-play

Para scripts de bash simples, mplayer es probablemente demasiado pesado y demasiado detallado en términos de salida. Una opción incorporada es la canberra-gtk-playque viene preinstalada en ubuntu:

canberra-gtk-play --file=/usr/share/sounds/gnome/default/alerts/drip.ogg

Nota: utiliza el volumen de alertas y debe pasar --file=para reproducir un archivo desde una ruta.

También puede reproducir un sonido por id que representa el nombre del archivo sin extensión de archivos multimedia /usr/share/sounds(aparentemente esto solo funciona para sonidos que están registrados como parte de un tema de sonido):

canberra-gtk-play --id="desktop-login"

canberra-gtk-play --id="message"

gst-launch-1.0 / gst-launch-0.10

Otra opción es usar las herramientas de línea de comando gstreamer que están presentes en la mayoría de los cuadros modernos de Linux:

gst-launch-1.0 playbin uri=file:///usr/share/sounds/ubuntu/stereo/message.ogg

Para suprimir todo el resultado, rediríjalo a /dev/null:

gst-launch-1.0 playbin uri=file:///usr/share/sounds/ubuntu/stereo/message.ogg > /dev/null 2>&1

Ambos gst-launch-1.0y gst-launch-0.10pueden estar presentes en su sistema.

ccpizza
fuente
0

agregando una respuesta para las personas que pasarán aquí (la pregunta tiene 2011 años, mi ahora es 2019), porque encontré otra forma:

ffmpeg está instalado en mi ubuntu 19.04

Entonces:

$ ffplay music.mp3 

-nodisp
hide spectrum analyzer

-nostats
hide cursor/file informations

-hide_banner
hide build informations


hide all (no output):
$ ffplay music.mp3 -nodisp -nostats -hide_banner

disfruta 🤙

Gromish
fuente