使用 CLI omxplayer 调整音频音量级别 - Raspberry Pi

Posted

技术标签:

【中文标题】使用 CLI omxplayer 调整音频音量级别 - Raspberry Pi【英文标题】:Adjust audio volume level with CLI omxplayer - Raspberry Pi 【发布时间】:2016-01-14 18:06:30 【问题描述】:

我有一个 bash 脚本,可以通过 omxplayer 在我的 Raspberry Pi 上播放 .mp3 文件。但无法通过GUI控制本地(耳机)音量。我可以在 bash 脚本中实现 CLI 的命令吗?找了好久,没找到这样的命令。

代码:

omxplayer Song_Title.mp3

为本地(耳机)输出设置音频:

sudo modprobe snd_bcm2835 sudo amixer cset numid=3 1

omxplayer -o local

谢谢!

【问题讨论】:

【参考方案1】:

为了给通过脚本播放提供更精确的信息,当前版本的omxplayer有3种改变音量的方法,数值不太直观:

    在启动命令行上,参数--vol YYY,双毫,默认0,范围[-6000:0] 通过标准输入接口,向 omxplayer 发送 +/- 将增加/减少 300 dmbels 的音量 带DBUS接口,cmd 'set volume',值double:XXX,默认1,范围[0:1]

xxx 与 yyy 的关系为: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) volume 150%, XXX=1.5 and YYY=352 ...(对于升压测试,正常值为

dbus 卷命令的工作 bash 脚本:

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%。

【讨论】:

很好的解释【参考方案2】:

我不确定如何使用命令调节音量。但在使用 omxplayer CLI 时,只需按 - 或 + 即可调高或调低音量。

【讨论】:

这适用于调整音量。谢谢!【参考方案3】:

Omxplayer 不使用 alsa 进行声音输出,但可以使用 stdin 接口

提高音量:

echo -n "+" > /proc/$(pidof omxplayer.bin)/fd/0

降低音量:

echo -n "-" > /proc/$(pidof omxplayer.bin)/fd/0

【讨论】:

【参考方案4】:

您可以通过添加选项--vol来设置初始音量:

omxplayer --vol N Sogn_title.mp3

其中N 是一个表示毫贝尔的数字。 N 的有效值例如:

5000(加大音量)

-15000(降低音量)

【讨论】:

【参考方案5】:

在树莓派 3 中, 我可以通过 alsamixer 调整音量。

在命令行中 输入

alsamixer

你会看到

只需使用向上或向下箭头来增加或减少音量。 按 Esc。音量已设置。

【讨论】:

您可以通过智能手机直接 ssh 到 alsamixer,例如使用ssh -t pi alsamixer(其中 pi 是您在~/.ssh/config 中的条目)。您还可以使用触摸屏上的垂直滑动来更改音量(在 termux 中测试)。您也可以使用数字键,例如7 设置 70% 的音量。

以上是关于使用 CLI omxplayer 调整音频音量级别 - Raspberry Pi的主要内容,如果未能解决你的问题,请参考以下文章

在 Linux 中导出音频文件音量 dB 级别

FFMPEG调整音频文件音量大小

在 Python 中调整 OSX 系统音频音量

如何在javascript中调整音频文件的音量[重复]

java使用Sonic 算法对音频变速不变声变调调整音量

使用 SOX 按百分比值减少音频文件的音量