通过Linux命令行播放mp3或wav文件


79

我想制作一个由Ubuntu(无图形界面)框支持的报警系统,该框可通过命令行播放各种公告和报警音轨(.mp3或.wav)。

例如:

$ root> audioplay ./hello.wav

音频应来自PC音频插孔。我也可以用另一个套接字监听器包装它。(例如Ruby Sinatra)

有什么想法可以做到吗?


1
以防万一,您在寻找示例文件:/usr/share/sounds是查找它们的好地方。
Martin Thoma 2014年

Answers:


48

mpg123是播放mp3文件的命令行实用程序。您可以使用以下方法在Ubuntu中安装它:

sudo apt-get install mpg123

7
这不会播放WAV文件。
塞林

71

软件包中的play命令sox将播放sox使用默认音频设备支持的任何文件格式,例如

$ play something.mp3
$ play something.wav

您可能需要安装额外的软件包才能获得对所有格式的支持,例如,在Ubuntu 11.04上,直到安装MP3支持才可用libsox-fmt-mp3


1
它还支持ogg文件(可能还有其他文件)。
lepe 2015年

1
在Ubuntu Xenial中,有libsox-fmt-all用于安装所有格式的软件包。
尤金(Eugene Gr)。Philippov

60

在Linux中播放WAV文件的最标准方法是使用aplay命令,该命令是ALSA系统的一部分。

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

aplay a.wav

链接:(维基百科) (娱乐手册页)

(在Fedora和Ubuntu / Mint中都是alsa-utils软件包的一部分)

这不需要在Linux安装中添加任何额外的软件包,例如sox或mplayer或vlc,只需基本的ALSA,它已成为当今任何系统的一部分。


5
谢谢你的提示!我将此别名添加到了我的shell配置中:alias beep =“ aplay --quiet /usr/share/sounds/pop.wav”。这样,我可以在长时间运行的命令完成时得到通知。例如:compile && run && beep
Jesse Hallett

1
是的,杰西!我在编译(长文件转换等)上做的完全一样。我从这里使用声音:“ Opilki声音”(它们受Creatve Commons许可)原谅我这个小小的广告,我与该项目没有任何关系:)
Maxim

很容易安装,并且已经安装在各处。+1
Pitto

4
请记住,您无法使用播放MP3 aplay。您将变得静态。
starbeamrainbowlabs

@starbeamrainbowlabs,我只写过WAV文件!
Maxim

22

vlc使用以下方法安装:

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

确保已打开所有存储库。在安装之前,还请运行以下命令:

sudo apt-get update

VLC具有由调用的命令行操作方法cvlc。下一部分将是编写.sh将调用命令的。我不擅长编写bash脚本。最终结果将类似于:

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

1
cvlc启动太慢了吗?并需要由非root用户运行?
c2h2

1
cvlc --play-and-exit done.mp3如果您不想ctrl-c。
Michael Cole

cvlc --play-and-exit --no-loop done.mp3。我需要额外的选项--no-loop,以便声音文件不会一遍又一遍地重复。(vlc 2.2.2,xubuntu 16.04.4)
耶稣

请注意,vlc通常在某些发行版上取决于qt5和X,但mpg123仅取决于alsa-lib。
朗诵

8

您可以简单地将声音数据传输到PC扬声器设备:

cat rawsound | /dev/pcsp

1
我非常怀疑这是否可以处理MP3文件。

2
当然,它不能使用mp3编码的声音,但是可以处理原始的wav数据
troelskn 2011年

3
我没有/ dev / pcsp设备。我还能尝试什么?
trusktr

我收到了“猫:生病的声音:Datei oder Verzeichnis nicht gefunden”
Timo

8

在Ubuntu 16.04上,无需安装任何程序。您可以使用paplay [audio]PulseAudio声音服务器中的with 播放声音:

paplay mysound.mp3

7

mplayer是另一个可以从命令行播放几乎所有音频/视频格式的播放器。要将其安装在ubuntu中,只需执行以下命令:

sudo apt-get install mplayer

然后,您可以使用以下语法播放文件:

mplayer [path to file]

祝好运!


0

堪培拉gtk播放

对于简单的bash脚本,mplayer在输出方面可能有点太笨重和太冗长。内置选项是canberra-gtk-play预装在ubuntu上的:

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

注意:它使用警报量,您必须通过--file=才能播放路径中的文件。

它也可以播放id表示的声音,该声音代表文件名,而无需在其下扩展媒体文件/usr/share/sounds(显然,这仅适用于注册为声音主题一部分的声音):

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

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

gst-launch-1.0 / gst-launch-0.10

另一个选择是使用大多数现代linux机器上提供的gstreamer命令行工具:

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

要取消所有输出,请将其重定向到/dev/null

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

两者gst-launch-1.0和都gst-launch-0.10可能出现在您的系统上。


0

为将要通过的人添加一个答案(问题是2011年,现在是2019年),因为我发现了另一种方法:

ffmpeg安装在我的ubuntu 19.04上

所以:

$ 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

享受🤙

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.