如何让 vlc 以 50% 的音量播放所有视频?

如何让 vlc 以 50% 的音量播放所有视频?

有没有办法让 vlc 默认以 50% 的音量播放所有视频?我查看了在线文档,但没有说明是否有我可以调整的配置文件。

有没有办法,通过编辑配置文件或任何其他方法,将 vlc 的默认音量设置为 50%?

答案1

首先,让我们偷懒一下:这可以使用 GUI 来完成。然而,使用哪种 GUI 取决于您所使用的音频输出系统。打开 VLC,然后转到工具 > 首选项 > 音频。这输出模块设置会告诉您正在使用什么。

  • 如果您使用的是脉冲,那么您的默认音量级别由 Pulse 本身处理。最简单的配置方法是使用pavucontrol.使用包管理器安装它,启动 VLC(带音频),然后打开pavucontrol.到达回放选项卡,然后设置 VLC 的新值(在您的情况下为 50%)。

  • 如果您使用 ALSA,您可以直接在VLC中设置您的值。就在上面输出模块选项,检查始终将音频起始电平重置为框,然后在旁边的滑块中选择 50%。


如果您想在不使用 VLC/pavucontrol 的情况下配置音量级别,那么该方法又取决于您的音频输出。我们看一下VLC的代码:

static int getDefaultAudioVolume(vlc_object_t *obj, const char *aout)
{
    if (!strcmp(aout, "pulse"))
        return -1;
    else if (!strcmp(aout, "alsa") && module_exists("alsa"))
        return cbrtf(config_GetFloat(obj, "alsa-gain")) * 100.f + .5f;
    else if (!strcmp(aout, "sndio"))
        return -1;
    return -1;
}

我稍微简化了一下,但基本上是:

如果您使用的是脉冲,VLC的配置没有影响。您需要配置 Pulse 本身。看一下pactl(或者可能帕命令用于交互界面)。这是设置 VLC 默认级别的“小”一行:

$ pactl set-sink-input-volume $(pactl list short sink-inputs | grep $(pactl list short clients | grep vlc | cut -f1) | cut -f1) 50%

是的,那很丑。基本上,我获取 VLC 的索引(作为客户端),并找到关联的接收器输入的索引。然后我将该索引注入set-sink-input-volume,并将值设置为 50%。看一下pactl(1)有关这些pactl命令的更多信息。请记住,您还可以使用pavucontrolGUI 在 GUI 中配置 Pulse :)

如果您使用 ALSA,您的默认音量级别是使用alsa-gain中的设置确定的~/.config/vlc/vlcrc。对于默认体积x,您应该将此值设置为((x - 0.5) / 100) ^ 3,因为cbrtf是立方根。就你而言,这意味着alsa-gain = (49.5 / 100) ^ 3 = 0.121287375.您还需要将该volume-save设置设置为 0 (false),以便每次都应用新的默认值,无论您上次关闭 VLC 时的音量级别如何。

相关内容