Нет звука
Запускаю MP3 в mplayer — нет звука. Куда копать?
Journalctl выдаёт несколько ошибок при поиске «pulseaudio». (Кстати, как его заставить выводить на stdout вместо less?)
Ubuntu 16.04, позавчера проапдейтил (sudo apt update && sudo apt upgrade).
P.S. Звук встроенный в ноутбук, lspci опознаёт как «Intel Corporation 7 Series/C210 Series Chipset Family High Definition Audio Controller (rev 04)».
Перерыл все настройки pulseaudio, обнаружил, что для mplayer громкость выкручена на 0. Утром понедельника (на 48 часов раньше) всё работало, с тех пор ничего не трогал, только обновлялся apt-ом. Вопрос: как это получилось, и как предотвратить повторение?
Обнаружил, что громкость иногда уходит в 0 после использования mute. (Подробности ниже.) Но в данном случае может быть и другая причина.
И что бы это значило.
Кстати, как его заставить выводить на stdout вместо less?
Не может попасть в домашнюю директорию. А какую директорию он считает домашней? /var/run/pulse ? Если да, куда и почему она исчезла?
А какую директорию он считает домашней? /var/run/pulse ?
У тебя пульса работает от обособленного системного юзера?
У тебя пульса работает от обособленного системного юзера?
По крайней мере, пользователь «pulse» существует.
Сию секунду она вообще не работает 🙂
Ты используешь общесистемный демон пульсы вместо собственного?
Ты используешь общесистемный демон пульсы вместо собственного?
Никаких настроек не трогал, всё по умолчанию.
User pulse, group pulse: if PulseAudio is running as a system daemon (see –system above) and is started as root the daemon will drop privileges and become a normal user process using this user and group. If PulseAudio is running as a user daemon this user and group has no meaning.
Это я понял. Не знаю, как у меня настроено.
Ничего похожего на pulseaudio.service в /etc/systemd/ я не нашёл, зато есть /etc/xdg/autostart/pulseaudio.desktop с Exec=start-pulseaudio-x11. От чьего имени работает он?
ну запусти руками пульсу pulseaudio —start и проверь, будет ли работать.
лично я снёс autostart файл и настроил запуск через systemd user service
Напомнить про самую частую рекомендацию, когда звук не работает или работает не так, как надо, и при этом стоит пшшаудио?
А вообще у тебя с правами доступа что-то не так.
лично я снёс autostart файл и настроил запуск через systemd user service
Какой вообще смысл в запуске через xdg?
Теперь проверить смогу только вечером.
ну это как бы вариант по умолчанию, работает даже там, где systemd вообще нет. ну а чтобы не пыталось запустить две копии пульсы, user service по умолчанию отключен, хоть и устанавливается
Mplayer работает без звука, но в Firefox на Youtube звук есть.
Если прибивать pulseaudio при помощи killall, он тут же перезапускается, при этом mplayer так же не воспроизводит звук и иногда ругается на переполнение.
Обнаружил, что Pulseaudio самопроизвольно выставил громкость mplayer-а в 0. Есть идеи, как это могло произойти?
Заодно, как проверить, не сделал ли он подобной подлянки для других программ? (Не включая каждую программу, потенциально способную воспроизводить звук.)
PulseAudio Control Panel?
pavucontrol? Отсутствовал по умолчанию, поставил. Не показывает громкость в неактивных приложениях. Не показывает громкость в Firefox, если не открыты вкладки с видео. (Если открыты, показывает их как «AudioIPC Server».) По функционалу немного уступает апплету Sound от unity-control-center.
Где хранятся настройки звука в программах, когда они неактивны? Чем их положено смотреть?
А менее маргинальные утилиты так не умеют?
В etc/pulse зайди и удали папку которая там образовалась и пакеты удали типа oss audio если такие притянуты зависимостями OS7.0
В etc/pulse зайди и удали папку которая там образовалась
Это общесистемная. Никаких упоминаний отдельных программ там нет.
и пакеты удали типа oss audio если такие притянуты зависимостями
Стоят osspd osspd-pulseaudio. Они? Притянуты по зависимостям. Чем поможет их удаление?
Столкнулся с похожей проблемой. Причём есть два ноутбука, на одном gentoo, на другом calculate, на первом всё работает, на втором нет. Версии pulseaudio идентичные. Думаю, в чём же может быть беда.
Если вручную запустить из консоли pulseaudio —start и после этого запускать любое приложение, которое использует звук, всё ровно. А вот автоматически не стартует. autospawn=yes выставлен, /etc/xdg/autostart/pulseaudio.desktop присутствует (с Exec=start-pulseaudio-x11). Такое ощущение, что какой-то race condition, и что-то не успевает запуститься — но не могу понять, где искать pulseaudio logs, чтоб посмотреть. log-level = debug выставил.
kmix автоматом запускается и не работает, думает, что в системе alsa, показывает уровни громкости 100%, а звука нет. А если его вырубить и запустить заново, уже тогда покажет уровни громкости из pulseaudio.
Как лучше делать автостарт pulseaudio — не знаю. В Убунту он глобально не стартует, только при логине конкретного пользователя. Я его отключил, прописав в
/.config/pulse/client.conf «autospawn = no», и запускаю только когда он необходим, командой pulseaudio -D
Причин внезапного перевода громкости в 0 в этом конкретном случае я не нашёл. Но было несколько похожих случаев, когда после использования mute в видео в следующий раз mplayer без видео запускался с громкостью 0. Насколько я помню, видео я за эти двое суток не смотрел и mute не пользовался, но могу ошибаться.
Нет, «громкость в 0» у меня не переходит, это kmix врёт. Ну то есть потому что pulseaudio вот через этот autospawn не стартует (на одном ноутбуке с calculate). А на другом с gentoo стартует. Магия.
Есть, конечно, желание сделать eselect profile и превратить calculate в gentoo, да времени на это, увы, нет, долго собираться будет на corei3. А calculate, несомненно, хорош своей тучей прекомпилированных пакетов.
Наверное придётся вырубать autospawn и делать костылик для запуска в KDE autostart, да вот только подозрение, что kmix (или что-то ещё?) стартует раньше, и всё ломает. Вслепую сложно понять, что именно.
Нет, «громкость в 0» у меня не переходит, это kmix врёт.
А у меня громкость 0 показывает сам mplayer.
Так, вот сейчас будет смешно. Или больно. Я разобрался, в чём у меня была проблема. Сомневаюсь, что у вас тоже самое, маловероятно. Жуткий тупак.
В общем, в файлике /etc/pulse/client.conf была закомментированная строка autospawn = (что-то), я пробовал её раскомментировать, ставил yes/no, не помогало — звук автоматически не стартовал, но вручную pulseaudio запустить было можно, что весьма тупо, так как kmix запускался раньше. То есть вело себя как с autospawn=no.
Потом увидел внизу этого файла в самом конце после всех комментариев ЕЩЁ одна строка autospawn = no. То есть если указывать несколько раз их в конфиге, естественно, применяется последняя. Передаю привет разработчикам calculate — возможно, их косяк. каким боком ещё одна строка внизу оказалась. Убрал — после неё заработало, autospawn = yes по умолчанию и kmix показывает сразу правильную громкость.
Ещё один вопрос. А пользователь в группу audio добавлен?
Источник
Alsa mplayer блокирует звук
Все приложения работают нормально, даже с одновременным звуком из разных приложений. Но smplayer стерео фильмы проигрывает нормально, а 5.1 — если выставить в настройках alsa, то звука нет, если выставить alsa(0,0) — номер устройства — то звук есть, но отрубается звук других приложений. ЧЯНТД?
не читаешь man mplayer ?
Но smplayer стерео фильмы проигрывает нормально, а 5.1 — если выставить в настройках alsa, то звука нет…
А если не smplayer а mplayer и изкансольки 😉
[AO_ALSA] Невозможно получить sw-параметры: Invalid argument
Не могу инициализировать аудио драйвер ‘alsa’
Не могу открыть/инициализировать аудиоустройство -> без звука.
Аудио: без звука
Прочитай man mplayer затем ao=alsa в файл
/.mplayer/config И запускай из консольки и именно mplayer. Читай что не так. Гугли, Фикси. 😉
В исходниках mplayer для вывода звука 5.1 захардкожено устройство surround51, которое идет в обход микширования. Так сделано потому, что default (dmix) в конфигурации по умолчанию не понимает 5.1 — т.е. выбор у разработчиков был между обрезкой до стерео и потерей возможности микшировать. У тебя есть выбор между установкой PulseAudio и использованием -ao pulse, или написанием длинного конфига в .asoundrc, который заставляет dmix понимать 5.1. Давай решим, по какому пути пойдем.
Я бы пошел по второму, если бы уже не поставил пульс. Теперь проблема в том, как убрать из пульса дребезги и сделать нормальным его звук. Буду дальше ковырять daemon.conf
PULSE_NO_SIMD=1 в /etc/environment должно убрать глюк со свистом
Пульс такой пульс.
А какой конфиг для dmix’а можно сделать для 5.1?
>написанием длинного конфига в .asoundrc, который заставляет dmix понимать 5.1
Реквестирую длинный конфиг. Очень уж хочется попробовать жить без пульса.
Эй, AEP! Ответь пожалуйста!
Отвечаю. Этот конфиг отличается для различных карт. Т.е. конфиг для ca0106 (X-fi xtreme audio) и для Intel HDA будет разным. Для ca0106 см. http://www.linux.org.ru/forum/desktop/5130232#comment-5132595 , для Intel HDA см. http://www.linux.org.ru/forum/general/5012622#comment-5013911 (к сожалению, с опечаткой — вместо «dsnoop:0,0» надо писать «plug:dsnoop»). Для других карт напишу по требованию. Нужно название карты, название драйвера и вывод команды
aplay -f S16_LE -c 6 -r 48000 -D surround51 -vv /dev/zero
Вдогонку: после составления конфига надо явно отучить mplayer использовать устройство surround51:
mplayer -ao alsa:device=default film.mkv
и если это работает, то приписать в /etc/mplayer/config:
Звук в фильме работает, а в стереомузыке одновременно с ним — нет.
Пока сижу на пульсе, все вроде ничего, но на большой громкости начинает немножко хрипеть. Причем иногда начинает, а иногда нет, и когда — неясно.
Ах да, у меня hda-intel.
> Звук в фильме работает, а в стереомузыке одновременно с ним — нет.
Командную строку mplayer’а, его вывод и название плеера, который проигрывает стереомузыку — в студию
На вылет можно не обращать внимания, это у него всегда при закрытии файла. А стереомузыку играет mpd с дефолтными настройками для альсы.
У mpd есть одна важная настройка — тип запуска (от залогиненного пользователя или init-скриптом). От нее зависит дальнейший ход отладки.
А pastebin.com лежит, так что прошу перепостить,
Уже не лежит. Итого — имеем два вида граблей:
1?) Стандартные грабли с mpd, который запускается не от того же пользователя, что mplayer. Лечится либо перемещением всего из
/.asoundrc в /etc/asound.conf и добавлением в /etc/asound.conf строчки ipc_key_add_uid false после ipc_key 1024, либо заменой mpd на плеер с более классическим способом запуска.
2) mplayer не настроен на 5.1, надо в командную строку добавить -channels 6.
>2) mplayer не настроен на 5.1, надо в командную строку добавить -channels 6.
Теперь он заикается, то есть между секундами звука появляется задержка.
Пробовал параллельно амарок, звука все равно нет.
Значит, у нас разное представление о настройках звука на твоей машине. Для тестов будем использовать только aplay, никаких монстрообразных плееров с настройками. Прошу выполнить команды:
aplay -vv -c 6 -f S16_LE -r 48000 /dev/zero
aplay -vv -c 2 -f S16_LE -r 44100 /dev/zero
в двух терминалах одновременно. Звука, естественно, не будет (т.к. в /dev/zero тишина), интересует вывод в каждой консоли. В зависимости от вывода, будем искать либо опечатку в конфиге alsa (его прошу тоже поместить в pastebin), либо править конфиги плееров.
А это двухканальный, запущенный через секунду после 6-канального: http://pastebin.com/BxbDmzPW
Ничего не понимаю — такого просто не может быть. Прошу проделать опыт с двумя aplay еще раз (есть подозрение, что либо pulseaudio удален не до конца, либо кто-то еще вмешивается в процесс, и надо выяснить, кто именно). Если опять появится «unable to open slave», прошу выполнить команду:
fuser -v /dev/snd/* /dev/dsp
Прошу извинить за такую задержку с рабочим конфигом. Он предполагает, что все программы работают от одного пользователя и настроены на использование ALSA (а не OSS и не pulseaudio) через устройство «default» (а не «hw:0» и не «HDA Intel»), тогда как обеспечение этого условия на практике оказывается самым сложным делом.
Pulseaudio не удален. Это критично? Ведь я в плеерах насильно указываю, что они должны проигрывать pulseaudio. Если да, мне его удалить или просто убрать из USE и перекомпилировать все приложения? А то негоже по двадцать раз в день удалять-ставить пульс чтобы потестить альсу или посмотреть кино.
Таки да, fuser показывает пульс. Попробую выпилить его и отпишусь.
> Pulseaudio не удален. Это критично?
Да. Но достаточно только сделать mv /usr/bin/pulseaudio /usr/bin/pulseaudio.disabled , чтобы он не запускался в неподходящий момент.
$ fuser -v /dev/snd/* /dev/dsp
ПОЛЬЗ-ЛЬ PID ДОСТУП КОМАНДА
/dev/snd/controlC0: vurdalak 12563 F. knotify4
vurdalak 12581 F. kmix
/dev/snd/pcmC0D0p: vurdalak 13046 F. m aplay
/dev/snd/timer: vurdalak 13046 f. aplay
Пульс удален чуть более, чем полностью.
Я здесь вижу только один aplay. Второй дает ту же ошибку «unable to open slave»? Если так — это баг в alsa-lib, обнови до версии 1.0.23 (из
Обновил. Никаких изменений.
Попутно вопрос: что для моей карты указывать в daemon.conf для пульса? А именно sample-formats, default-fragments и default-fragment-size-msec. А то с пульсом все отлично, но он немного создает дребезг звука.
Дребезг (если мы имеем в виду одно и то же) никак не связан с daemon.conf. Это баг в C-коде, который применяет громкость и баланс к звуку с использованием инструкций SSE2.
Насчет неработоспособности dmix и падения mplayer — похоже на переоптимизированную систему. Подробности в jabber (см. мой профиль).
Источник