Как воспроизвести звук из терминала?

Вопрос или проблема

Мне интересно, существует ли команда, которую я могу установить, чтобы воспроизвести аудиофайл из терминала, или я могу сделать это с помощью Python или какого-либо другого кода? Я просто хочу ввести команду, чтобы звук проигрывался до окончания, а затем вернуться к командной строке. Я не хочу графический интерфейс.

Да, вы можете сделать это с помощью многих инструментов командной строки, таких как mpg123, aplay, cvlc и mplayer, но я предлагаю использовать команду play. Чтобы установить её:

sudo apt install sox

А для воспроизведения специальных форматов, таких как mp3, нужно установить соответствующие библиотеки:

sudo apt install libsox-fmt-mp3

И чтобы использовать её:

play music.mp3

Если вы хотите использовать её с полным набором библиотек, вам нужно установить пакет libsox-fmt-all:

sudo apt install libsox-fmt-all

Используйте Gstreamer, он должен быть предустановлен. Он есть в текущей версии Ubuntu Live Media.

gst-play-1.0 /usr/share/sounds/Yaru/stereo/system-ready.oga

Я сравнил это с несколькими другими ответами здесь: https://askubuntu.com/a/1511952/40581

Системы на базе Pipewire, такие как Kubuntu 24.04, могут использовать pw-play, который уже установлен в базовой операционной системе.

Вы можете сделать то же самое с помощью другого инструмента под названием mpg123, чтобы установить его,

sudo apt install mpg123

а затем использовать его следующим образом,

mpg123 file.mp3

paplay оказался более подходящим вариантом для меня, так как он имел самый понятный и стабильный (не изменяется при перезагрузке) способ выбора звукового устройства. И он установлен по умолчанию.

Чтобы посмотреть доступные устройства, используйте

pactl list | grep Name

Я не уверен, что это всегда будет так, но обычно нужные вам устройства будут содержать слово “output” и не будут содержать слово “monitor” (которое является виртуальным устройством ввода, созданным на основе выходного устройства).

В моем случае, устройство, которое я использую, это мой HDMI экран, называется “alsa_output.pci-0000_00_03.0.hdmi-stereo”. Найдите то, которое вам нужно, и в результате у вас будет команда:

paplay --d="alsa_output.pci-0000_00_03.0.hdmi-stereo" filename.ogg

Вы можете использовать cvlc (консольный VLC):

для воспроизведения аудиофайла: cvlc file.wave

для воспроизведения аудиопотока: cvlc https://qurango.net/radio/tarateel

Вы также можете запланировать выполнение файла или аудиопотока в crontab с некоторыми настройками:

Используйте настройки среды pulseaudio:
env | grep -E 'XDG_RUNTIME_DIR|PULSE'
для добавления в crontab с помощью cvlc:

0 9 * * * XDG_RUNTIME_DIR=/run/user/1000 PULSE_SERVER=/run/user/1000/pulse/native DISPLAY=:0 cvlc https://qurango.net/radio/tarateel

или вы можете сохранить это в shell-файл и запланировать его в crontab:

Создайте shell-скрипт play-radio.sh со следующим содержимым:

#!/bin/bash
export DISPLAY=:0
export XDG_RUNTIME_DIR=/run/user/1000
export PULSE_SERVER=/run/user/1000/pulse/native
cvlc https://qurango.net/radio/tarateel

и сделайте его исполняемым: chmod +x play_radio.sh
затем добавьте его в crontab:
0 9 * * * /path/to/play_radio.sh

.

Ответ или решение

Чтобы воспроизвести аудиофайл из терминала без применения графического интерфейса, существует множество командных инструментов и программных решений, которые могут быть использованы в различных системах Linux. Рассмотрим несколько из них, подходящих как для простых, так и для специальных случаев.

Использование sox и команды play

Одним из наиболее универсальных инструментов является sox, который предоставляет команду play для проигрывания аудиофайлов. Вот шаги для использования этого инструмента:

  1. Установка sox:

    sudo apt install sox
  2. Установка поддержки форматов, например, MP3:

    sudo apt install libsox-fmt-mp3
  3. Команда воспроизведения:

    play music.mp3

Если вам нужно поддерживать все возможные форматы файлов, установите пакет libsox-fmt-all.

sudo apt install libsox-fmt-all

Использование GStreamer

GStreamer может быть уже предустановлен на современных дистрибутивах Ubuntu. Чтобы воспроизвести звук, выполните команду:

gst-play-1.0 /usr/share/sounds/Yaru/stereo/system-ready.oga

Использование pw-play на системах PipeWire

Используйте pw-play, если ваша система основана на PipeWire, например, Kubuntu 24.04:

pw-play filename.wav

Использование mpg123 для MP3 файлов

Для воспроизведения MP3-файлов используется mpg123, который можно установить командой:

sudo apt install mpg123

И выполните:

mpg123 file.mp3

Использование paplay в системах с PulseAudio

Команда paplay обеспечивает стабильный выбор устройств воспроизведения. Чтобы узнать доступные устройства, выполните:

pactl list | grep Name

Затем можно воспроизвести файл с указанием устройств:

paplay --d="alsa_output.pci-0000_00_03.0.hdmi-stereo" filename.ogg

Использование VLC в режиме консоли (cvlc)

VLC также предоставляет возможность воспроизведения аудиофайлов через командную строку:

  • Для файла:
    cvlc file.wave
  • Для потокового вещания:
    cvlc https://example.com/stream

Можно автоматизировать воспроизведение через cron, применив скрипт bash для установок окружения PulseAudio и его выполнения по расписанию.

Заключение

В зависимости от ваших нужд и конфигурации операционной системы, выбирайте инструменты с учётом поддерживаемых форматов и доступных библиотек. Надёжность, простота использования, совместимость с системой и поддержка требуемых форматов являются ключевыми факторами при выборе решения в командной строке для проигрывания аудио.

Оцените материал
Добавить комментарий

Капча загружается...