відтворити mp3 або WAV-файл через командний рядок Linux


79

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

Наприклад:

$ root> audioplay ./hello.wav

Звук повинен надходити з аудіороз'єму ПК. Я також можу обернути його іншим слухачем сокетів. (наприклад, Ruby Sinatra)

Будь-які ідеї, як я можу це зробити?


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

Посилання: (Вікіпедія) (сторінка із заявою)

(І в Fedora, і в Ubuntu / Mint це частина alsa-utilsпакета)

Для вашої установки Linux для цього не потрібні додаткові пакети, такі як sox, mplayer або vlc, просто базовий ALSA, який сьогодні є частиною будь-якої системи.


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

1
Так, Джессі! Я точно так само роблю з компілюванням (довгі перетворення файлів тощо). Звідси я використовую звуки: "Звуки Опілки" (вони під ліцензією Createve Commons) вибачте мене за цю незначну рекламу, я жодним чином не пов'язаний з проектом :)
Максим

Мертві легко і вже встановлені скрізь. +1
Пітто

4
Пам’ятайте, що з MP3 не можна відтворювати MP3 aplay. Ви просто отримаєте статику.
starbeamrainbowlabs

@starbeamrainbowlabs, я писав лише про файли WAV!
Максим

22

Встановити vlcза допомогою:

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

Переконайтесь, що у вас відкриті всі сховища. Перед встановленням також виконайте наступне:

sudo apt-get update

VLC має метод роботи командного рядка, на який посилається cvlc. Наступною частиною буде написати a, .shяке буде викликати команду. Мені непогано писати баш сценарії. Кінцевий результат буде таким:

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)
loved.by. Ісус

зауважте, що vlc зазвичай залежить від qt5 і X від деякого розподілу, але mpg123 залежить лише від alsa-lib.
спогад

8

Ви можете просто передати свої звукові дані на комп'ютерний динамічний пристрій:

cat rawsound | /dev/pcsp

1
Я дуже сумніваюся, що буде працювати з MP3-файлами.

2
Звичайно, він не працюватиме з кодованим mp3-звуком, але він працюватиме із сирими WAV-даними
troelskn

3
У мене немає пристрою / dev / pcsp. Що ще я можу спробувати?
trusktr

Я отримую "cat: 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

canberra-gtk-play

Для простих сценаріїв 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-start-1.0 / gst-start-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.