通过 Linux 命令行播放 MP3 或 WAV 文件

c2h*_*2h2 98 audio linux ubuntu

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

例如:

$ root> audioplay ./hello.wav
Run Code Online (Sandbox Code Playgroud)

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

我怎样才能做到这一点?

小智 82

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

$ play something.mp3
$ play something.wav
Run Code Online (Sandbox Code Playgroud)

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

  • 在 Ubuntu Xenial 中,有“libsox-fmt-all”包来安装所有格式。 (2认同)

Max*_*xim 70

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

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

aplay a.wav
Run Code Online (Sandbox Code Playgroud)

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

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

这不需要像 sox 或 mplayer 或 vlc 之类的 Linux 安装任何额外的包,只需要基本的 ALSA,它是当今任何系统的一部分。

  • 请记住,您 **不能** 使用 `aplay` 播放 MP3。你只会得到静态。 (7认同)
  • 谢谢你的提示!我将此别名添加到我的 shell 配置中: alias beep="aplay --quiet /usr/share/sounds/pop.wav" 。这样我就可以在长时间运行的命令完成时收到通知。例如:compile && run && beep (6认同)
  • 是的,杰西!我对编译(长文件转换等)完全相同。我使用这里的声音:[“Opilki 声音”](http://addons.miranda-im.org/details.php?action=viewfile&id=3379)(它们在 Creatve Commons 许可下)请原谅我这个小广告,我与该项目没有任何关系:) (2认同)
  • 非常容易并且已经安装在任何地方。+1 (2认同)
  • @马克西姆我知道!我刚刚添加该评论是因为我尝试播放 mp3 :P (2认同)
  • 这是一个正确的答案。是的,你可以安装太多的 CLI 多媒体播放器,为什么不使用内置的。 (2认同)

pav*_*ium 52

mpg123 是一个命令行实用程序,用于播放 mp3 文件。您可以使用以下命令在 Ubuntu 中安装它:

sudo apt-get install mpg123
Run Code Online (Sandbox Code Playgroud)

  • 这不会播放 wav 文件。 (12认同)

小智 25

vlc使用以下方法安装:

sudo apt-get install vlc vlc-plugin-pulse mozilla-plugin-vlc
Run Code Online (Sandbox Code Playgroud)

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

sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

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

cvlc xyz.mp3
cvlc --play-and-exit done.mp3 
Run Code Online (Sandbox Code Playgroud)

  • cvlc 启动太慢?并且需要由非 root 用户运行? (2认同)
  • `cvlc --play-and-exit done.mp3` 如果你不想 ctrl-c 它。 (2认同)

tro*_*skn 12

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

cat rawsound | /dev/pcsp
Run Code Online (Sandbox Code Playgroud)

  • 我没有 /dev/pcsp 设备。我还能尝试什么? (5认同)
  • 它当然不适用于 mp3 编码的声音,但它适用于原始 wav 数据 (2认同)

小智 9

Ubuntu 16.04 (Xenial Xerus) 上,不需要安装任何东西。您可以使用paplay [audio]PulseAudio 声音服务器的一部分来播放声音:

paplay mysound.mp3
Run Code Online (Sandbox Code Playgroud)

  • 我认为只有当“paplay --list-file-formats”在格式列表中包含 MP3 时,这才有效,但在我的机器上却没有(诚然,这不是 Ubuntu)。 papplay 真的包含 MP3 吗? (2认同)

小智 8

MPlayer是另一个可以从命令行播放几乎任何音频/视频格式的播放器。要在 Ubuntu 中安装它,只需执行以下命令:

sudo apt-get install mplayer
Run Code Online (Sandbox Code Playgroud)

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

mplayer [path to file]
Run Code Online (Sandbox Code Playgroud)


小智 5

我找到了另一种方法:

FFmpeg安装在我的Ubuntu 19.04 (Disco Dingo) 上

所以:

$ ffplay music.mp3

-nodisp
hide spectrum analyzer

-nostats
hide cursor/file information

-hide_banner
hide build information


Hide all (no output):

$ ffplay music.mp3 -nodisp -nostats -hide_banner
Run Code Online (Sandbox Code Playgroud)