用于最大化音频音量的 bash 命令 - 尤其等同于所示的 gui 滑块

用于最大化音频音量的 bash 命令 - 尤其等同于所示的 gui 滑块

我正在使用 ffplay 在 bash 脚本中播放音频文件,我需要将音量调到最大。我发现了 2 个独立命令,它们可以解决影响音量的链中某个部分的问题:

这让我大概了解了一半:

pactl set-sink-volume alsa_output.pci-0000_00_14.2.analog-stereo 200%

-af "volume=1250" 在 ffplay 命令字符串中添加这样的选项 并没有产生任何明显的区别。

0、1 或 2pacmd set-source-volume I 65536 也是如此 。I

我需要相当于 pavucontrol 中播放选项卡中的第二个滑块,就在该图片中的箭头上方:

当然,如果有一个命令可以最大化音量,而我不必将它们堆叠起来,那就太好了,但也许不存在。但这个滑块肯定有一个可编写脚本的等效命令。

答案1

我理解您的问题是“如何在‘播放’选项卡中设置相当于应用程序流音量滑块的功能pavucontrol”。

总音量取决于应用程序流音量和接收器音量,后者通常应保持恒定在 100%(或最大化 ALSA 控制的声卡放大器所需的任何值)。

看一下pacmd list-sink-inputs。这将显示所有当前正在播放的流。使用它来查找要控制的流的索引。pacmd list-sink-inputs | egrep '(index)|(name)'如果有很多流,那么像 from 这样的简化输出更容易阅读或解析。

找到索引后,使用

pactl set-sink-input-volume index_you_found '100%'

将音量设置为 100%。这也适用于pacmd,但仅适用于原始值,而不适用于绝对或相对百分比,所以我更喜欢pactl。(不要问我为什么有两个不同的工具......)。

猜测索引是行不通的。使用set-source-volume也行不通,因为这会设置音频输入的音量。

您无法设置未播放的流的音量。在大多数发行版中,使用默认的 Pulseaudio 设置,将为每个应用程序保存流音量(使用应用程序名称),并在下次启动应用程序时恢复。因此,除非您使用不同的应用程序名称,否则您只需设置一次音量(您也可以直接在 中执行此操作pavucontrol)。

答案2

“我理解您的问题是“如何在 pavucontrol 的‘播放’选项卡中设置相当于应用程序流音量滑块的功能”。"

是的。这就是要点。其余部分是上下文,以防问题基于错误的假设或有人想提出更好的方法。

“查看 pacmd list-sinks-inputs。”

“未知命令”但在 Snynaptic 中搜索了一下,我发现这是我拥有的 pulseaudio-utils 的一部分,再搜索了一下,我尝试了这个:pacmd list-sink-inputs 看起来正确。此外:pacmd list-sink-inputs | grep index 只返回一行,所以一定是正确的。然后,按照指示:pactl set-sink-input-volume 1 '100%' 哦,天哪。声音好大。

有趣的是,每次我启动 ffplayer 时它都会出现一个不同的索引,即使它是唯一正在播放的音频流,所以我必须 grep 并进行一些字符串操作才能将其放入我的脚本中,但这应该没有任何问题。

谢谢,Dirkt。

顺便说一句,我不知道我从哪里得到了这个命令的印象:

pactl 设置接收器音量 alsa_output.pci-0000_00_14.2.analog-stereo 200%

最大为 200%。它还可以更高。虽然他们告诉我,如果你把它推高,可能会损坏扬声器。我猜想这个想法是,如果你不把它设置得超过 100%,你可以安全地推

pactl 设置接收器输入量 I 'N%'

(最高也未达到 100)

你想调多高就调多高,这对我来说没什么意义,所以也许这不是真的。不管怎样,我现在有两种方法可以唤醒死人并磨损我的扬声器。

相关内容