web-dev-qa-db-fra.com

lire des fichiers mp3 ou wav via la ligne de commande Linux

Je souhaite créer un système d’alarme reposant sur un boîtier Ubuntu (sans interface graphique), qui diffuse diverses pistes audio d’annonce et d’alarme (.mp3 ou .wav) via la ligne de commande.

Par exemple:

$ root> audioplay ./hello.wav

Le son doit provenir de la prise audio du PC. Je pourrais aussi l'envelopper avec un autre écouteur de socket. (par exemple, Ruby Sinatra)

Des idées comment je peux faire ceci?

75
c2h2

mpg123 est un utilitaire de ligne de commande qui lit les fichiers mp3. Vous pouvez l'installer dans Ubuntu avec:

Sudo apt-get install mpg123
48
pavium

La commande play du package sox lira tout format de fichier pris en charge par sox en utilisant le périphérique audio par défaut, par exemple.

$ play something.mp3
$ play something.wav

Vous devrez peut-être installer des packages supplémentaires pour pouvoir prendre en charge tous les formats. Par exemple, sur Ubuntu 11.04, la prise en charge MP3 n'est pas disponible avant l'installation de libsox-fmt-mp3.

67
user89061

La manière la plus standard de lire un fichier WAV sous Linux consiste à utiliser la commande aplay, qui fait partie du système ALSA.

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

aplay a.wav

Liens: (Wikipedia)(page de manuel aplay)

(À la fois dans Fedora et dans Ubuntu/Mint, il fait partie du paquetage alsa-utils)

Cela ne nécessite aucun package supplémentaire pour votre installation Linux, comme sox, mplayer ou vlc, mais simplement l'ALSA de base qui fait partie de tout système de nos jours.

56
Maxim

Installez vlc en utilisant:

Sudo apt-get install vlc vlc-plugin-Pulse mozilla-plugin-vlc

Assurez-vous que tous les référentiels sont ouverts. Exécutez également les éléments suivants avant d’installer:

Sudo apt-get update

VLC a une méthode d'opération de ligne de commande appelée par cvlc. La prochaine partie serait d'écrire un .sh qui appellera la commande. Je ne suis pas bon pour écrire des scripts bash. Le résultat final serait quelque chose comme:

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

Sur Ubuntu 16.04, il n’est pas nécessaire d’installer quoi que ce soit. Vous pouvez jouer un son en utilisant paplay [audio] avec qui fait partie du serveur de son PulseAudio:

paplay mysound.mp3
8
mxdsp

mplayer est un autre lecteur pouvant lire à peu près tous les formats audio/vidéo à partir de la ligne de commande. pour l'installer dans Ubuntu, exécutez cette commande:

Sudo apt-get install mplayer

vous pouvez alors lire le fichier en utilisant cette syntaxe:

mplayer [path to file]

bonne chance!

7
Ali Parsai

Vous pouvez simplement diriger vos données audio vers le haut-parleur du PC:

cat rawsound | /dev/pcsp
7
troelskn

canberra-gtk-play

Pour les scripts bash simples, mplayer est probablement un peu trop lourd et trop détaillé en termes de sortie. canberra-gtk-play est une option intégrée préinstallée sur Ubuntu:

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

Remarque: il utilise le volume des alertes et vous devez transmettre --file= pour pouvoir lire un fichier à partir d'un chemin.

Il peut également jouer un son par identifiant représentant le nom du fichier sans extension des fichiers multimédias sous /usr/share/sounds (apparemment, cela ne fonctionne que pour les sons enregistrés dans le cadre d'un thème sonore):

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

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

gst-launch-1.0/gst-launch-0.10

Une autre option consiste à utiliser les outils de ligne de commande -gstreamer présents sur la plupart des boîtes de linux les plus modernes:

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

Pour supprimer toute sortie, redirigez-le vers /dev/null:

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

gst-launch-1.0 et gst-launch-0.10 peuvent être présents sur votre système.

0
ccpizza