memutar file mp3 atau wav melalui baris perintah Linux

79

Saya ingin membuat sistem alarm yang didukung oleh kotak Ubuntu (tanpa antarmuka grafis), yang memutar berbagai pengumuman dan trek audio alarm (.mp3 atau .wav) melalui baris perintah.

Sebagai contoh:

$ root> audioplay ./hello.wav

Audio harus berasal dari jack audio PC. Saya mungkin juga membungkusnya dengan pendengar soket lainnya. (mis. Ruby Sinatra)

Ada ide bagaimana saya bisa melakukan ini?

c2h2
sumber
1
Kalau-kalau Anda mencari file contoh: /usr/share/soundsadalah tempat yang baik untuk mencarinya.
Martin Thoma

Jawaban:

48

mpg123 adalah utilitas baris perintah yang memutar file mp3. Anda dapat menginstalnya di Ubuntu dengan:

sudo apt-get install mpg123
pavium
sumber
7
Ini tidak memutar file wav.
Cerin
71

The playperintah dari soxpaket akan memainkan format file yang didukung oleh soxmenggunakan perangkat audio default, misalnya

$ play something.mp3
$ play something.wav

Anda mungkin perlu menginstal paket tambahan untuk mendapatkan dukungan untuk semua format, misalnya pada Ubuntu 11.04 dukungan MP3 tidak tersedia sampai Anda menginstal libsox-fmt-mp3.


sumber
1
ini juga mendukung file ogg (dan mungkin yang lain).
lepe
1
Di Ubuntu Xenial, ada libsox-fmt-allpaket untuk menginstal semua format.
Eugene Gr. Philippov
60

Cara paling standar untuk memutar file WAV di Linux adalah menggunakan aplayperintah, yang merupakan bagian dari ALSAsistem.

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

aplay a.wav

Tautan: (Wikipedia) (halaman manual aplay)

(Baik di Fedora dan di Ubuntu / Mint itu adalah bagian dari alsa-utilspaket)

Ini tidak memerlukan paket tambahan untuk instalasi Linux Anda seperti sox atau mplayer atau vlc, hanya ALSA dasar yang merupakan bagian dari sistem apa pun saat ini.

Pepatah
sumber
5
Terima kasih atas tipnya! Saya menambahkan alias ini ke shell config: alias beep = "aplay --quiet /usr/share/sounds/pop.wav". Dengan begitu saya bisa mendapat notifikasi ketika perintah yang berjalan lama selesai. Misalnya: kompilasi && jalankan && beep
Jesse Hallett
1
Ya, Jesse! Saya melakukan hal yang persis sama dengan kompilasi (konversi file panjang, dll). Saya menggunakan suara dari sini: "Suara Opilki" (mereka di bawah lisensi Creatve Commons) maafkan saya iklan minor ini, saya tidak ada hubungannya dengan proyek dengan cara apa pun :)
Maxim
Mati mudah dan sudah terpasang di mana-mana. +1
Pitto
4
Ingatlah bahwa Anda tidak dapat memutar MP3 aplay. Anda hanya akan menjadi statis.
starbeamrainbowlabs
@ starbeamrainbowlabs, saya menulis tentang file WAV saja!
Maxim
23

Instal vlcdengan menggunakan:

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

Pastikan Anda memiliki semua repositori terbuka. Jalankan juga yang berikut sebelum Anda menginstal:

sudo apt-get update

VLC memiliki metode operasi baris perintah yang dipanggil oleh cvlc. Bagian selanjutnya adalah menulis a .shyang akan memanggil perintah. Saya tidak pandai menulis skrip bash. Hasil akhirnya akan seperti:

cvlc xyz.mp3
cvlc --play-and-exit done.mp3 
prometheuspk
sumber
1
cvlc terlalu lambat untuk boot? dan perlu dijalankan oleh pengguna non-root?
c2h2
1
cvlc --play-and-exit done.mp3jika Anda tidak ingin ctrl-c itu.
Michael Cole
cvlc --play-and-exit --no-loop done.mp3. Saya perlu opsi tambahan --no-loop, sehingga file suara tidak berulang-ulang. (vlc 2.2.2, xubuntu 16.04.4)
loved.by.Yesus
perhatikan bahwa vlc biasanya tergantung pada qt5 dan X pada beberapa distribusi, tetapi mpg123 hanya bergantung pada alsa-lib.
recolic
8

Anda hanya dapat menyalurkan data suara Anda ke perangkat speaker pc:

cat rawsound | /dev/pcsp
troelskn
sumber
1
Saya sangat ragu apakah itu akan berfungsi dengan file MP3.
2
Itu tidak akan bekerja dengan suara yang disandikan mp3 tentu saja, tetapi itu akan bekerja dengan data mentah wav
troelskn
3
Saya tidak memiliki perangkat / dev / pcsp. Apa lagi yang bisa saya coba?
trusktr
Saya mendapatkan "cat: rawsound: Datei oder Verzeichnis nicht gefunden"
Timo
8

Di Ubuntu 16.04, tidak perlu menginstal apa pun. Anda dapat memainkan suara menggunakan paplay [audio]bagian dari server suara PulseAudio:

paplay mysound.mp3
mxdsp
sumber
7

mplayer adalah pemain lain yang dapat memainkan hampir semua format audio / video dari baris perintah. untuk menginstalnya di ubuntu cukup jalankan perintah ini:

sudo apt-get install mplayer

Anda kemudian dapat memutar file menggunakan sintaks ini:

mplayer [path to file]

semoga berhasil!

Ali Parsai
sumber
0

canberra-gtk-play

Untuk skrip bash sederhana, mplayer mungkin agak terlalu berat dan terlalu bertele-tele dalam hal output. Opsi bawaan adalah canberra-gtk-playyang sudah diinstal sebelumnya di ubuntu:

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

Catatan: ini menggunakan volume peringatan, dan Anda harus lulus --file=untuk memutar file dari jalur.

Itu juga dapat memutar suara dengan id yang mewakili nama file tanpa ekstensi file media di bawah /usr/share/sounds(tampaknya ini hanya berfungsi untuk suara yang terdaftar sebagai bagian dari tema suara):

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

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

gst-launch-1.0 / gst-launch-0.10

Opsi lain adalah menggunakan alat-alat baris perintah gstreamer yang ada di sebagian besar kotak linux modern:

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

Untuk menekan semua output, arahkan kembali ke /dev/null:

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

Keduanya gst-launch-1.0dan gst-launch-0.10mungkin ada di sistem Anda.

ccpizza
sumber
0

menambahkan jawaban untuk orang-orang yang akan lulus di sini (pertanyaan adalah 2011, sekarang saya 2019), karena saya menemukan cara lain:

ffmpeg diinstal pada ubuntu 19.04 saya

Begitu:

$ 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

selamat menikmati 🤙

Gromish
sumber