riprodurre file mp3 o wav tramite riga di comando di Linux


79

Vorrei realizzare un sistema di allarme supportato da una casella Ubuntu (senza interfaccia grafica), che riproduce varie tracce audio di annuncio e allarme (.mp3 o .wav) tramite la riga di comando.

Per esempio:

$ root> audioplay ./hello.wav

L'audio dovrebbe provenire dal jack audio del PC. Potrei anche avvolgerlo con un altro ascoltatore di socket. (ad es. Ruby Sinatra)

Qualche idea su come posso farlo?


1
Nel caso in cui cerchi file di esempio: /usr/share/soundsè un buon posto per cercarli.
Martin Thoma,

Risposte:


48

mpg123 è un'utilità della riga di comando che riproduce file mp3. Puoi installarlo su Ubuntu con:

sudo apt-get install mpg123

7
Questo non riproduce file WAV.
Cerin,

71

Il playcomando dal soxpacchetto riprodurrà qualsiasi formato di file supportato soxutilizzando il dispositivo audio predefinito, ad es

$ play something.mp3
$ play something.wav

Potrebbe essere necessario installare pacchetti aggiuntivi per ottenere supporto per tutti i formati, ad esempio su Ubuntu 11.04 il supporto MP3 non è disponibile fino all'installazione libsox-fmt-mp3.


1
supporta anche i file ogg (e probabilmente altri).
lepe,

1
In Ubuntu Xenial, c'è un libsox-fmt-allpacchetto per installare tutti i formati.
Eugene Gr. Filippov,

60

Il modo più standard per riprodurre un file WAV in Linux è usare il aplaycomando, che fa parte del ALSAsistema.

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

aplay a.wav

Link: (Wikipedia) (pagina man aplay)

(Sia in Fedora che in Ubuntu / Mint fa parte del alsa-utilspacchetto)

Ciò non richiede alcun pacchetto aggiuntivo per l'installazione Linux come sox o mplayer o vlc, ma solo l'ALSA di base che fa parte di qualsiasi sistema al giorno d'oggi.


5
Grazie per il consiglio! Ho aggiunto questo alias alla mia configurazione della shell: alias beep = "aplay --quiet /usr/share/sounds/pop.wav". In questo modo posso ricevere una notifica al termine dei comandi di lunga durata. Ad esempio: compila && run && beep
Jesse Hallett il

1
Sì, Jesse! Faccio esattamente lo stesso con la compilazione (lunghe conversioni di file, ecc.). Uso i suoni da qui: "I suoni di Opilki" (sono sotto la licenza di Creatve Commons), perdonatemi questa pubblicità minore, non sono in alcun modo correlata al progetto :)
Maxim

Morto facile e già installato ovunque. +1
Pitto,

4
Ricorda che non puoi riprodurre un MP3 con aplay. Avrai solo statico.
Starbeamrainbowlabs

@starbeamrainbowlabs, ho scritto solo sui file WAV!
Massimo

23

Installa vlcutilizzando:

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

Assicurati di avere tutti i repository aperti. Eseguire anche quanto segue prima di installare:

sudo apt-get update

VLC ha un metodo operativo da riga di comando invocato da cvlc. La parte successiva sarebbe scrivere un .shche chiamerà il comando. Non sono bravo a scrivere script bash. Il risultato finale sarebbe qualcosa del tipo:

cvlc xyz.mp3
cvlc --play-and-exit done.mp3 

1
cvlc troppo lento per l'avvio? e hai bisogno di essere eseguito da un utente non root?
c2h2

1
cvlc --play-and-exit done.mp3se non vuoi ctrl-c.
Michael Cole,

cvlc --play-and-exit --no-loop done.mp3. Ho bisogno dell'opzione extra --no-loop, in modo che il file audio non venga ripetuto più volte. (vlc 2.2.2, xubuntu 16.04.4)
loved.by.Jesus

nota che vlc di solito dipende da qt5 e X da una certa distribuzione, ma mpg123 dipende solo da alsa-lib.
recolic

8

Puoi semplicemente collegare i tuoi dati audio al dispositivo di altoparlanti del PC:

cat rawsound | /dev/pcsp

1
Dubito fortemente che funzionerà con i file MP3.

2
Ovviamente non funzionerà con l'audio con codifica mp3, ma funzionerà con dati wav grezzi
troelskn,

3
Non ho il dispositivo / dev / pcsp. Cos'altro posso provare?
trusktr,

Ricevo "cat: rawsound: Datei oder Verzeichnis nicht gefunden"
Timo

8

Su Ubuntu 16.04, non è necessario installare nulla. È possibile riprodurre un suono utilizzando paplay [audio]con fa parte del server audio PulseAudio:

paplay mysound.mp3

7

mplayer è un altro lettore che può riprodurre praticamente qualsiasi formato audio / video dalla riga di comando. per installarlo su Ubuntu basta eseguire questo comando:

sudo apt-get install mplayer

è quindi possibile riprodurre il file utilizzando questa sintassi:

mplayer [path to file]

in bocca al lupo!


0

Canberra-gtk-play

Per semplici script bash, mplayer è probabilmente un po 'troppo pesante e troppo dettagliato in termini di output. Un'opzione integrata è quella canberra-gtk-playpreinstallata su Ubuntu:

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

Nota: utilizza il volume degli avvisi ed è necessario passare --file=per riprodurre un file da un percorso.

Può anche riprodurre un suono per id che rappresenta il nome del file senza estensione dei file multimediali in /usr/share/sounds(apparentemente questo funziona solo per i suoni registrati come parte di un tema sonoro):

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

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

gst-launch-1.0 / GST-launch-0.10

Un'altra opzione è usare gli strumenti da riga di comando di gstreamer che sono presenti sulla maggior parte dei moderni box di linux:

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

Per eliminare tutto l'output, reindirizzarlo a /dev/null:

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

Entrambi gst-launch-1.0e gst-launch-0.10potrebbero essere presenti sul tuo sistema.


0

aggiungendo una risposta per le persone che passeranno qui (la domanda è vecchia del 2011, il mio ora è il 2019), perché ho trovato un altro modo:

ffmpeg è installato sul mio ubuntu 19.04

Così:

$ 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

divertiti 🤙

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.