воспроизводить mp3 или wav файл через командную строку Linux


79

Я хотел бы создать систему сигнализации с поддержкой окна Ubuntu (без графического интерфейса), которое воспроизводит различные звуковые дорожки объявлений и сигналов тревоги (.mp3 или .wav) через командную строку.

Например:

$ root> audioplay ./hello.wav

Звук должен поступать из аудиоразъема ПК. Я мог бы также обернуть это с другим слушателем сокета. (например, Руби Синатра)

Есть идеи, как я могу это сделать?


1
На всякий случай, если вы ищете примеры файлов: /usr/share/soundsэто хорошее место для их поиска.
Мартин Тома

Ответы:


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 (и, возможно, другие).
Лепе

1
В Ubuntu Xenial есть libsox-fmt-allпакет для установки всех форматов.
Евгений Гр. Филиппов

60

Самый стандартный способ воспроизведения WAV-файла в Linux - использование aplayкоманды, которая является частью ALSAсистемы.

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

aplay a.wav

Ссылки: (Википедия) (man-страница aplay)

(И в Fedora, и в Ubuntu / Mint он входит в alsa-utilsпакет)

Это не требует каких-либо дополнительных пакетов для вашей установки Linux, таких как sox, mplayer или vlc, просто базовый ALSA, который в настоящее время является частью любой системы.


5
Спасибо за чаевые! Я добавил этот псевдоним в свою конфигурацию оболочки: alias beep = "aplay --quiet /usr/share/sounds/pop.wav". Таким образом, я могу получить уведомление, когда продолжительные команды заканчиваются. Например: скомпилировать && run && beep
Джесси Халлетт

1
Да, Джесси! Я делаю то же самое с компиляцией (длинные преобразования файлов и т. Д.). Я использую звуки отсюда: «Звуки Opilki» (они находятся под лицензией Creatve Commons), прости мне эту незначительную рекламу, я никоим образом не связан с проектом :)
Максим

Мертвый легкий и уже установлен везде. +1
Питто

4
Помните, что вы не можете воспроизводить MP3 с aplay. Вы просто станете статичным.
starbeamrainbowlabs

@starbeamrainbowlabs, я писал только о файлах WAV!
Максим

23

Установите 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 это.
Майкл Коул

cvlc --play-and-exit --no-loop done.mp3, Мне нужна дополнительная опция --no-loop, чтобы звуковой файл не повторялся снова и снова. (vlc 2.2.2, xubuntu 16.04.4)
love.by.Iesus

обратите внимание, что vlc обычно зависит от qt5 и X в некотором дистрибутиве, но mpg123 зависит только от alsa-lib.
Реколик

8

Вы можете просто передать ваши звуковые данные на динамик компьютера:

cat rawsound | /dev/pcsp

1
Я очень сомневаюсь, что буду работать с файлами MP3.

2
Конечно, он не будет работать со звуком в формате mp3, но он будет работать с необработанными wav-данными
troelskn

3
У меня нет устройства / dev / pcsp. Что еще я могу попробовать?
trusktr

Я получаю "кошка: rawsound: Datei oder Verzeichnis nicht gefunden"
Тимо

8

На Ubuntu 16.04 ничего устанавливать не нужно. Вы можете воспроизводить звук, используя paplay [audio]часть звукового сервера PulseAudio:

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=, чтобы воспроизвести файл с пути.

Он также может воспроизводить звук по идентификатору, который представляет имя файла без расширения медиа-файлов /usr/share/sounds(очевидно, это работает только для звуков, которые зарегистрированы как часть звуковой темы):

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

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

GST-старт-1.0 / GST-старт-0,10

Другой вариант - использовать инструменты командной строки gstreamer , которые есть в большинстве современных Linux-пакетов:

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

наслаждайся

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.