phát tệp mp3 hoặc wav qua dòng lệnh Linux


79

Tôi muốn tạo một hệ thống báo động được hỗ trợ bởi hộp Ubuntu (không có giao diện đồ họa), phát các bản nhạc thông báo và âm thanh báo động khác nhau (.mp3 hoặc .wav) thông qua dòng lệnh.

Ví dụ:

$ root> audioplay ./hello.wav

Âm thanh phải đến từ giắc âm thanh PC. Tôi cũng có thể bọc nó với một người nghe ổ cắm khác. (ví dụ: Ruby Sinatra)

Bất kỳ ý tưởng làm thế nào tôi có thể làm điều này?


1
Chỉ trong trường hợp bạn đang tìm kiếm các tệp ví dụ: /usr/share/soundslà một nơi tốt để tìm kiếm chúng.
Martin Thoma

Câu trả lời:


48

mpg123 là một tiện ích dòng lệnh phát các tệp mp3. Bạn có thể cài đặt nó trong Ubuntu với:

sudo apt-get install mpg123

7
Điều này không chơi các tập tin wav.
Cerin

71

Các playlệnh từ soxgói sẽ chơi bất kỳ định dạng tập tin được hỗ trợ bởi soxviệc sử dụng thiết bị âm thanh mặc định, ví dụ như

$ play something.mp3
$ play something.wav

Bạn có thể cần cài đặt các gói bổ sung để có được hỗ trợ cho tất cả các định dạng, ví dụ như trên Ubuntu 11.04, hỗ trợ MP3 không khả dụng cho đến khi bạn cài đặt libsox-fmt-mp3.


1
nó cũng hỗ trợ các tệp ogg (và có thể là các tệp khác).
ngày

1
Trong Ubuntu Xenial, có libsox-fmt-allgói để cài đặt tất cả các định dạng.
Eugene Gr. Philippov

60

Cách tiêu chuẩn nhất để phát tệp WAV trong Linux là sử dụng aplaylệnh, đây là một phần của ALSAhệ thống.

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

aplay a.wav

Liên kết: (Wikipedia) (trang aplay man)

(Cả trong Fedora và Ubuntu / Mint, đây là một phần của alsa-utilsgói)

Điều này không yêu cầu bất kỳ gói bổ sung nào cho cài đặt Linux của bạn như sox hoặc mplayer hoặc vlc, chỉ ALSA cơ bản là một phần của bất kỳ hệ thống nào hiện nay.


5
Cảm ơn vì tiền hỗ trợ! Tôi đã thêm bí danh này vào cấu hình shell của mình: alias beep = "aplay --quiet /usr/share/sound/pop.wav". Bằng cách đó tôi có thể nhận được thông báo khi các lệnh chạy dài kết thúc. Ví dụ: biên dịch && run && beep
Jesse Hallett

1
Vâng, Jesse! Tôi làm chính xác như vậy với việc biên dịch (chuyển đổi tệp dài, v.v.). Tôi sử dụng âm thanh từ đây: "Opilki âm thanh" (chúng thuộc giấy phép Creatve Commons) tha thứ cho tôi quảng cáo nhỏ này, tôi không liên quan đến dự án theo bất kỳ cách nào :)
Maxim

Chết dễ dàng và đã được cài đặt ở khắp mọi nơi. +1
Pitto

4
Hãy nhớ rằng bạn không thể chơi MP3 aplay. Bạn sẽ nhận được tĩnh.
starbeamrainbowlabs

@starbeamrainbowlabs, tôi chỉ viết về các tệp WAV!
Maxim

22

Cài đặt vlcbằng cách sử dụng:

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

Hãy chắc chắn rằng bạn có tất cả các kho lưu trữ mở. Cũng chạy như sau trước khi bạn cài đặt:

sudo apt-get update

VLC có một phương thức hoạt động dòng lệnh được gọi bởi cvlc. Phần tiếp theo sẽ là viết một .shlệnh sẽ gọi lệnh. Tôi không giỏi viết kịch bản bash. Kết quả cuối cùng sẽ là một cái gì đó như:

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

1
cvlc quá chậm để khởi động? và cần phải chạy bởi một người dùng không root?
c2h2

1
cvlc --play-and-exit done.mp3nếu bạn không muốn ctrl-c nó.
Michael Cole

cvlc --play-and-exit --no-loop done.mp3. Tôi cần tùy chọn bổ sung --no-loopđể tập tin âm thanh không bị lặp đi lặp lại. (vlc 2.2.2, xubfox 16.04.4)
love.by.Jesus

lưu ý rằng vlc thường phụ thuộc vào qt5 và X trên một số phân phối, nhưng mpg123 chỉ phụ thuộc vào alsa-lib.
recolic

8

Bạn chỉ có thể chuyển dữ liệu âm thanh của mình sang thiết bị loa pc:

cat rawsound | /dev/pcsp

1
Tôi rất nghi ngờ rằng sẽ làm việc với các tệp MP3.

2
Tất nhiên nó sẽ không hoạt động với âm thanh được mã hóa mp3, nhưng nó sẽ hoạt động với dữ liệu wav thô
troelskn

3
Tôi không có thiết bị / dev / pcsp. Tôi có thể thử cái gì khác?
trusktr

Tôi nhận được "cat: rawsound: Datei oder Verzeichnis nicht gefunden"
Timo

8

Trên Ubuntu 16.04, không cần cài đặt gì cả. Bạn có thể phát âm thanh bằng paplay [audio]một phần của máy chủ âm thanh PulseAudio:

paplay mysound.mp3

7

mplayer là một trình phát khác có thể phát khá nhiều định dạng âm thanh / video từ dòng lệnh. Để cài đặt nó trong Ubuntu, chỉ cần thực hiện lệnh này:

sudo apt-get install mplayer

sau đó bạn có thể phát tệp bằng cú pháp này:

mplayer [path to file]

chúc may mắn!


0

can Miller-gtk-play

Đối với các tập lệnh bash đơn giản, mplayer có lẽ hơi quá nặng và quá dài dòng về mặt đầu ra. Tùy chọn tích hợp canberra-gtk-playsẵn được cài đặt sẵn trên Ubuntu:

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

Lưu ý: nó sử dụng âm lượng cảnh báo và bạn phải vượt qua --file=để phát tệp từ một đường dẫn.

Nó cũng có thể phát âm thanh theo id đại diện cho tên tệp mà không cần mở rộng tệp phương tiện /usr/share/sounds(dường như điều này chỉ hoạt động đối với âm thanh được đăng ký như một phần của chủ đề âm thanh):

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

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

gst-launch-1.0 / gst-launch-0.10

Một tùy chọn khác là sử dụng các công cụ dòng lệnh guxer có mặt trên hầu hết các hộp linux hiện đại:

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

Để chặn tất cả đầu ra chuyển hướng nó đến /dev/null:

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

Cả hai gst-launch-1.0gst-launch-0.10có thể có mặt trên hệ thống của bạn.


0

thêm một câu trả lời cho những người sẽ vượt qua đây (câu hỏi là năm 2011 cũ, bây giờ là năm 2019), vì tôi đã tìm thấy một cách khác:

ffmpeg được cài đặt trên Ubuntu 19.04 của tôi

Vì thế:

$ 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

thưởng thức

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.