Отрегулируйте громкость звука с помощью CLI omxplayer - Raspberry Pi
У меня есть скрипт bash, который воспроизводит файлы.mp3 на моем Raspberry Pi через omxplayer. Но не может контролировать локальную (наушники) громкость звука с графическим интерфейсом. Есть ли команда для CLI, которую я могу реализовать в скрипте bash? Я искал совсем немного, но не могу найти такую команду.
Код:
omxplayer Song_Title.mp3
Установить звук для локального (наушникового) выхода:
sudo modprobe snd_bcm2835
sudo amixer cset numid=3 1
omxplayer -o local
Спасибо!
4 ответа
Чтобы предоставить более точную информацию для игры через скрипты, в текущей версии omxplayer есть 3 способа изменить громкость звука, а значения не настолько интуитивны:
- в стартовой командной строке, param
--vol YYY
, двойной миллибел, по умолчанию 0, диапазон [-6000:0] - по интерфейсу stdin отправка +/- в omxplayer увеличит / уменьшит громкость на 300 дбелей
- с интерфейсом DBUS, cmd "установить громкость", значение
double:XXX
по умолчанию 1, диапазон [0:1]
Отношение ххх к ггг: XXX = 10 ^ (YYY / 2000)
... согласно исходному коду omxplayer.cpp, обратная формула будет: YYY = 2000 * (log XXX)
,
так что если нам нужно:
- объем 1%, XXX=0,01 и YYY=-4000
(10^(-4000/2000)=10^-2=0.01
- объем 10%, XXX=0,1 и YYY=-2000
(10^(-2000/2000)=10^-1=0.1
- объем 50%, XXX=0,5 и YYY=-602
(10^(-602/2000))~=0.5
- объем 100%, XXX=1 и YYY = 0
(10^(0/2000)=10^0=1)
- громкость 150%, XXX=1,5 и YYY=352 ... (для теста повышения нормальные значения <=100%)
рабочий скрипт bash для команды громкости dbus:
export DBUS_SESSION_BUS_ADDRESS=$(cat /tmp/omxplayerdbus.${USER:-root})
dbus-send --print-reply --session --reply-timeout=500 \
--dest=org.mpris.MediaPlayer2.omxplayer \
/org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Set \
string:"org.mpris.MediaPlayer2.Player" \
string:"Volume" double:0.5 # <-- XXX=0.5 (50% sound volume)
равно параметру громкости при запуске:
omxplayer --vol -602 mediaFileName.mp4
... оба устанавливают громкость звука на 50%.
Я не уверен, как настроить уровень громкости с помощью команды. Но при использовании интерфейса командной строки omxplayer просто нажмите - или +, чтобы увеличить или уменьшить громкость.
Omxplayer не использует alsa для вывода звука, но есть возможность использовать интерфейс stdin
Увеличить громкость:
echo -n "+" > /proc/$(pidof omxplayer.bin)/fd/0
Убавить звук:
echo -n "-" > /proc/$(pidof omxplayer.bin)/fd/0
Вы можете установить начальную громкость, добавив опцию --vol
:
omxplayer --vol N Sogn_title.mp3
куда N
число, обозначающее миллибели Допустимые значения для N, например:
5000 (увеличить громкость)
-15000 (уменьшить громкость)
В Raspberry Pi 3 мне удалось отрегулировать громкость звука с помощью alsamixer.
В командной строке введите
alsamixer
Просто используйте стрелки вверх или вниз для увеличения или уменьшения громкости. Нажмите Esc. Громкость установлена.