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


Je voudrais créer un système d’alarme soutenu par une boîte Ubuntu (sans interface graphique), qui lit 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 auditeur de socket. (par exemple Ruby Sinatra)

Des idées comment je peux faire ça?


64
2018-04-27 12:58


origine


Alors, quelle est votre question? - Quentin
Juste au cas où vous cherchiez des exemples de fichiers: /usr/share/sounds est un bon endroit pour les chercher. - Martin Thoma


Réponses:


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

42
2018-04-27 13:14



Cela ne joue pas les fichiers wav. - Cerin


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

$ play something.mp3
$ play something.wav

Vous devrez peut-être installer des packages supplémentaires pour obtenir un support pour tous les formats, par exemple sur Ubuntu 11.04. Le support MP3 n'est pas disponible tant que vous n'avez pas installé libsox-fmt-mp3.


60
2017-07-09 12:10



Il supporte également les fichiers ogg (et probablement d’autres). - lepe
Dans Ubuntu Xenial, il y a libsox-fmt-all package pour installer tous les formats. - Evgeniy Philippov


Le moyen le plus courant de lire un fichier WAV sous Linux est d'utiliser aplay commande, qui fait partie de la ALSA système.

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

aplay a.wav

Liens: (Wikipédia)  (page de manuel aplay)

(Dans Fedora, il fait partie de la alsa-utils, et dans Ubuntu, le paquet a probablement le même nom.)

Cela ne nécessite aucun paquet supplémentaire tel que sox ou mplayer ou vlc, juste ALSA.


47
2017-11-28 06:20



Merci pour le conseil! J'ai ajouté cet alias à ma configuration shell: alias beep = "aplay --quiet /usr/share/sounds/pop.wav". De cette façon, je peux recevoir une notification lorsque les commandes longues se terminent. Par exemple: compile && run && beep - Jesse Hallett
Oui, Jesse! Je fais exactement la même chose avec la compilation (longues conversions de fichiers, etc.). J'utilise des sons d'ici: "Opilki sonne" (ils sont sous la licence Creatve Commons) pardonne-moi cette petite publicité, je ne suis pas lié au projet de quelque manière que ce soit :) - Maxim
Dead easy et déjà installé partout. +1 - Pitto
Rappelez-vous que vous ne peut pas jouer un MP3 avec aplay. Vous obtiendrez juste statique. - starbeamrainbowlabs
@ Starbeamrainbowlabs, j'ai écrit sur les fichiers WAV seulement! - Maxim


Installer 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 opérations suivantes 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 doué pour écrire des scripts bash. Le résultat final serait quelque chose comme:

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

19
2018-04-28 04:48



cvlc trop lent pour démarrer? et doit être exécuté par un utilisateur non root? - c2h2
cvlc --play-and-exit done.mp3 si vous ne voulez pas ctrl-c il. - Michael Cole
cvlc --play-and-exit --no-loop done.mp3 . J'ai besoin de l'option supplémentaire --no-loop, afin que le fichier son ne soit pas répété à plusieurs reprises. (vlc 2.2.2, xubuntu 16.04.4) - loved.by.Jesus


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

cat rawsound | /dev/pcsp

7
2018-04-27 13:03



Je doute fort que cela fonctionne avec les fichiers MP3.
Il ne fonctionnera pas avec le son encodé mp3 bien sûr, mais il fonctionnera avec des données wav brutes - troelskn
Je n'ai pas le périphérique / dev / pcsp. Que puis-je essayer d'autre? - trusktr
Je reçois "chat: rawsound: Datei oder Verzeichnis nicht gefunden" - Timo


mplayer est un autre lecteur qui peut jouer pratiquement n'importe quel format audio / vidéo en ligne de commande. pour l'installer dans ubuntu, il suffit d'exécuter cette commande:

sudo apt-get install mplayer

vous pouvez ensuite lire le fichier en utilisant cette syntaxe:

mplayer [path to file]

bonne chance!


7
2017-08-20 13:35





Sur Ubuntu 16.04, il n'y a pas besoin d'installer quoi que ce soit. Vous pouvez jouer un son en utilisant paplay [audio] avec fait partie du serveur de son PulseAudio:

paplay mysound.mp3

3
2018-03-08 11:16





canberra-gtk-play

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

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

Remarque: il utilise le volume d'alertes et vous devez passer --file= pour lire un fichier depuis un chemin.

Il peut également jouer un son par id qui représente le nom du fichier sans extension de fichier multimédia 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 utilise le gstreamer Les outils en ligne de commande présents sur la plupart des boîtes linux modernes:

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

Pour supprimer toutes les sorties, redirigez-le vers /dev/null:

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

Tous les deux gst-launch-1.0 et gst-launch-0.10 peut être présent sur votre système.


0
2017-11-16 08:05