LINUX.ORG.RU

Увеличить максимальную громкость до 150% из консоли

 ,


0

2

Manjaro linux kde. смотрю startrek¹. Звук в этой раздаче тихий, приходится жать в трее динамик и кликать слайдбокс «Увеличить максимальную громкость», увеличивать громкость на 150%. Потом не забывать вернуть как было.

И вот второй сезон я думаю, как это из консоли сделать туда 150% и обратно 100%? Надоело руками. В smplayer может есть такой функционал хоткеями? Или как это из терминала сделать?


¹ Ссылка на нелегально распространяемый контент удалена. —Модератор

★★★

Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от hikikomori

Жаль нельзя автоматизировать это как-то.

?? Программно управляется, что ещё надо для автоматизации?? Выбирай любой известный тебе язык и автоматизируй по самое не хочу.

debugger ★★★★★
()
Ответ на: комментарий от hikikomori

$HOME/.local/bin/smplay-hw

#!/usr/bin/env sh

pactl set-sink-volume 0 150%; # задираем сразу звук до 150%
smplayer $@;                  # смотрим кино
pactl set-sink-volume 0  50%; # опускаем значение звука до 50%
$ smplay-hw мультики.mkv
LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Это конечно понятные азы, но я не совсем это имел ввиду.

Попробую пояснить. Чтобы открыть кино я просто кликаю файл, и он запускается по ассоциации расширения. Мне получается надо написать прокладку, которая для маски «Star.trek» будет менять условия.

Но это костыльное решение. Если я запущу что другое такое же тихое, мне и его в маск добавлять получается. А если там нет общего паттерна, то что?

Так вот, я имел ввиду следующее: если звук видео на максимальной громкости ниже порога средней громкости, то включается 150%. Это при условии, что можно такое событие в smplayer или системе отследить и запускать по нему pactl set-sink-volume 0 150%

hikikomori ★★★
() автор топика
Ответ на: комментарий от hikikomori

Ой, я в этих децибелах запутался, а можешь показать вывод

ffmpeg -i 'твоё_кино.mp4'   -af "volumedetect" -f null /dev/null 2>&1 | grep max_volume

А мимокрокодилы могут меня поправить, вот допустим вывод будет -5 децибел, это вроде по отношению к максимальному звуку системы когда оно на 100%

Тогда получается (гляжу в википедию что разница звука например на 2 децибела это разница на 10 в степени 2 умножить на 0,1), тогда

во сколько раз нужно добавить звук 
3.16 = pow(10,(abs(-5) * 0.1))

Если 100% звука это 1 раз. Значит чтобы звук -5 децибел звучал на полной громкости как 0 децибел (относительно 100% громкости системы) то нужно выкрутить звук в 3,16 раза так? То есть установить звук на 316%?

Или я с дуба рухнул? Но хотя бы приблизительно это так?…

sudo cgminner -u @YAR #вроде видел где-то обсуждал децибелы

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

У меня на твою команду происходит ничего.

ffmpeg -i '/tmp/Star.trek.TOS.s02e26.Assignment.Earth.mkv'   -af "volumedetect" -f null /dev/null 2>&1 | grep max_volume

Хотя нет, дождался:

[Parsed_volumedetect_0 @ 0x7883d8001ec0] max_volume: -16.6 dB
hikikomori ★★★
() автор топика
Последнее исправление: hikikomori (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

Ну тогда… На этом мои полномочия, всё =)

А зачем спрашивал выдачу-то?

Для сравнения попробовал сейчас сделать тоже самое с фильмом, где хорошо всё слышно:

ffmpeg -i 'Ужасающий 3 (Terrifier 3 - Damien Leone - 2024).mkv'   -af "volumedetect" -f null /dev/null 2>&1 | grep max_volume
[Parsed_volumedetect_0 @ 0x785c58001ec0] max_volume: -1.1 dB
hikikomori ★★★
() автор топика
Ответ на: комментарий от hikikomori

Чтобы корректно увеличивать громкость, пропорционально децибелам. Но думаю это лишнее, можно просто взять некое граничное что если ниже -2 dB то задирать звук выше.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от hikikomori

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

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от hikikomori

Для MPV, в конфиге создаёшь профиль с компрессором:

[compress]
profile-desc = "Dynamic range compression ffmpeg for internal spiker use"
af=equalizer=63:o:4:-20,acompressor=1:1:0.02:20:1:70:8:4

запускаешь плеер с этим профилем. Будет всё одинаково громко, как в рекламе. Можно передавать в командной строке.

andytux ★★★★★
()

По хорошему это решается настройкой фильтра типа gain или amplify и/или компрессора на стороне плеера, тогда всегда все фильмы будут звучать одинаково, но как точно настроить не подскажу.

masa ★★
()

приходится жать в трее динамик и кликать слайдбокс «Увеличить максимальную громкость», увеличивать громкость на 150%. Потом не забывать вернуть как было.

А зачем возвращать как было? Может просто убрать звук каогда надо до 100%, а галочку не отжимать?

В smplayer может есть такой функционал хоткеями?

smplayer из коробки подразумевает возможность повышения громкости до 110%. Хоткей - стрелочка «вверх».

Вообще, я не очень понимаю, почему возникает наобходимость в столь высоких значениях грмокости. Ноутбучные динамики?

t3n3t
()
Ответ на: комментарий от hikikomori

smplayer - это графическая оболочка для mpv. Да, это будет работать. Конфиг находится там, где это указано, например, в арчвики.

Не понимаю, как можно сидеть на дистре, основанном на арче и годами задавать на форуме вопросы, которые разжеваны от и до в арчвики?

t3n3t
()
Последнее исправление: t3n3t (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

pactl set-sink-volume 0 150%

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

Погуглил за вас обоих: man pactl list sink-inputs и pactl set-sink-input-volume, ну и pactl --format=json до кучи.

debugger ★★★★★
()
Ответ на: комментарий от t3n3t

Вот за этим и нужен ограничитель. Чтобы в обычных случаях жмякая громкость не целиться ровно в 100%, а просто втопил тапок в пол и сто. Буст это же не норма, а подтягивание тихого звука. Если так сделать с нормальным, то будет перегруз.

hikikomori ★★★
() автор топика
Ответ на: комментарий от hikikomori

Чтобы в обычных случаях жмякая громкость не целиться ровно в 100%, а просто втопил тапок в пол и сто.

Медиа-клавиши на клавиатуре придумали масоны? Потому что другого повода ими не пользоваться в такой ситуации я не вижу.

t3n3t
()
Ответ на: комментарий от t3n3t

Вообще, я не очень понимаю, почему возникает наобходимость в столь высоких значениях грмокости. Ноутбучные динамики?

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

У меня после 3.5джека компа стоит микшер Pioneer DJM600, у него очень красиво визуально скачут уровни каналов, по ним сразу и определяю исходный уровень. Если звук тихий, я конечно могу его запбустить на микшере, или на конечном усилителе (использую два sharp939 с не менее красивыми столбиками эквы), но каждый раз крутить там или в ПК не хочется. Это же компьютер - пусть он сам определяет низкий уровень звука и бустит его, а нормальны уровень не трогает. Но так, чтобы я знал об этом, и мог написать релизерам раздачи, что неплохо бы нормализировать звук в самом релизе.

КДПВ: мой уголок с описываемыми девайсами https://0x0.st/89Cz.JPG

hikikomori ★★★
() автор топика
Ответ на: комментарий от t3n3t

наверное потому, что…

  • нужную статью в арчвики ещё надо найти.
  • всех статей всё равно не прочитаешь
  • на форуме можно понять что именно на самом деле нужно
  • можно ещё понедоумевать о непрочтённых манах и прочих скрижалях с 100500 пунктов ещё.
hikikomori ★★★
() автор топика
Последнее исправление: hikikomori (всего исправлений: 1)
Ответ на: комментарий от hikikomori

Тогда зачем вообще поднимать звук с компа выше 100%? У меня подключены довольно простенькие колонки с сабом, и не возникает нужды поднимать громкость выше 50% практически никогда.

неплохо бы нормализировать звук

Что-то мне подсказывает что стоит в smplayer тыкнуть на звуковой нужный профиль - там очень часто по умолчанию идет 5.1 или 7.1, когда для нормального вывода на 2.0 или 2.1 нужно выбрать тупо «Stereo».

t3n3t
()
Ответ на: комментарий от hikikomori

нужную статью в арчвики ещё надо найти

https://wiki.archlinux.org/title/Mpv

всех статей всё равно не прочитаешь

Там навигация по статьям есть. По разделам. Один из них называется «Configuration».

на форуме можно понять что именно на самом деле нужно

Получается?

можно ещё понедоумевать о непрочтённых манах и прочих скрижалях с 100500 пунктов ещё.

Арчвики обновляется практически ежедневно. И уж точно удобнее манов.

t3n3t
()
Ответ на: комментарий от debugger

Спасибо, но не очень понял с какими параметрами set-sink-input-volume и как указать, что громкость именно для smplayer

–format=json

что это и зачем не понял. В мане нет.

hikikomori ★★★
() автор топика
Ответ на: комментарий от hikikomori

Спасибо, но не очень понял с какими параметрами set-sink-input-volume

А что конкретно тут тебе не понятно:

set-sink-input-volume INPUT VOLUME [VOLUME ...]
    Set the volume of the specified sink input (identified
    by its numerical index). VOLUME can be specified as an
    integer (e.g. 2000, 16384), a linear factor (e.g. 0.4,
    1.100), a percentage (e.g. 10%,  100%)  or  a  decibel
    value  (e.g.  0dB,  20dB). If the volume specification
    start with a + or - the volume adjustment will be rel‐
    ative to the current sink input volume. A single  vol‐
    ume  value  affects  all  channels; if multiple volume
    values are given their number has to  match  the  sink
    input's number of channels.

Первый параметр — приложение, выводящее звук, второй — громкость. Если вражеским не владеешь, воспользуйся услугами гугло- или яндексперевода.

и как указать, что громкость именно для smplayer

Откуда взять sink input, который идентифицируется целым числом, я уже писал — достаточно исполнить команду pactl list sink-inputs — получишь список всех sink input, из которого выберешь свой плеер.

Ты хотя бы попробовал запустить эту команду? Что конкретно в её выводе тебе не понятно?

–format=json
что это и зачем не понял. В мане нет.

Ну, у нас или маны разные, или глаза. В моём мане есть:

$ man pactl
OPTIONS
    ...
    -f | --format=FORMAT
        Choose output format, available options are "text" or "json".
...

Это для того, чтоб ты мог всё как-то автоматизировать.

debugger ★★★★★
()

Есть ещё один способ рулить громкостью плеера.

Практически у всех плееров есть D-Bus интерфейс (у смплейера точно есть), гуглить/яндексить ключевое слово MPRIS (Media Player Remote Interfacing Specification). Среди всего барахла, предоставляемого этим интерфейсом, есть свойство Volume, которое можно читать и записывать.

D-Bus команды можно посылать откуда угодно, хоть из консоли, man dbus-send. Для экспериментов можно воспользоваться гуёвой прикладухой d-feet. Можно сделать хоткеи для изменения громкости в конкретном плеере (если, например, родные хоткеи не настраиваются). (Не знаю, можно ли выставить громкость в 150% — надо пробовать.)

Дальше сам нагуглишь или жевать?

P. S.

В русской вики есть коротенькая статья MPRIS, в которой можно найти ссылку на спецификацию MPRIS.

debugger ★★★★★
()
Последнее исправление: debugger (всего исправлений: 1)
Ответ на: комментарий от hikikomori

Если я правильно понял твою проблему, то она такая же как и была у меня. Решил я ее просто, в mplayer указал soft volume. И теперь после открытия видео просто подкручиваю звук в самом плеере вверх-вниз, как обычно.

$ cat ~/.config/mpv/mpv.conf | grep vol
volume-max=200

urxvt ★★★★★
()
Последнее исправление: urxvt (всего исправлений: 1)
Ответ на: комментарий от urxvt

Я выше писал на чём, и даже фото показал. если давать 200%, чтобы тихий звук был как нормальный на 100, а на конечном усилке в колонках громкость на макс (УНЧ будет постоянно жрать Амперы как не в себя, зачем мне его греть так 24/7?), если я тебя правильно понял, то будет засранный тракт и фон, клянусь Оккамом. Повышать надо только заниженный звук, нормальный увеличивать это плодить пердёж. Ты или теоретизируешь и заблуждаешься, либо какой-то цифровой опыт с оптоволокном хочешь натянуть на аналоговый глобус. Или это просто такая форма постибаться. Я из своей локации не вижу.

p.s. в третьем сезоне Стартрека звук сделали получше, почти не бустю, разве что 120%.

hikikomori ★★★
() автор топика
Ответ на: комментарий от hikikomori

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

urxvt ★★★★★
()
Последнее исправление: urxvt (всего исправлений: 1)