LINUX.ORG.RU

Alsa mplayer блокирует звук


0

0

Все приложения работают нормально, даже с одновременным звуком из разных приложений. Но smplayer стерео фильмы проигрывает нормально, а 5.1 - если выставить в настройках alsa, то звука нет, если выставить alsa(0,0) - номер устройства - то звук есть, но отрубается звук других приложений. ЧЯНТД?

★★★★★

ЧЯНТД?

не читаешь man mplayer ?

Но smplayer стерео фильмы проигрывает нормально, а 5.1 - если выставить в настройках alsa, то звука нет…

А если не smplayer а mplayer и изкансольки ;)

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

Кстати, вывод:

[AO_ALSA] Невозможно получить sw-параметры: Invalid argument

Не могу инициализировать аудио драйвер 'alsa'

Не могу открыть/инициализировать аудиоустройство -> без звука.

Аудио: без звука

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

Прочитай man mplayer затем ao=alsa в файл ~/.mplayer/config И запускай из консольки и именно mplayer. Читай что не так. Гугли, Фикси. ;)

init_6 ★★★★★ ()

В исходниках mplayer для вывода звука 5.1 захардкожено устройство surround51, которое идет в обход микширования. Так сделано потому, что default (dmix) в конфигурации по умолчанию не понимает 5.1 - т.е. выбор у разработчиков был между обрезкой до стерео и потерей возможности микшировать. У тебя есть выбор между установкой PulseAudio и использованием -ao pulse, или написанием длинного конфига в .asoundrc, который заставляет dmix понимать 5.1. Давай решим, по какому пути пойдем.

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

Я бы пошел по второму, если бы уже не поставил пульс. Теперь проблема в том, как убрать из пульса дребезги и сделать нормальным его звук. Буду дальше ковырять daemon.conf

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

>написанием длинного конфига в .asoundrc, который заставляет dmix понимать 5.1

Реквестирую длинный конфиг. Очень уж хочется попробовать жить без пульса.

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

Отвечаю. Этот конфиг отличается для различных карт. Т.е. конфиг для 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

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

Вдогонку: после составления конфига надо явно отучить mplayer использовать устройство surround51:

mplayer -ao alsa:device=default film.mkv

и если это работает, то приписать в /etc/mplayer/config:

ao=alsa:device=default

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

Пока сижу на пульсе, все вроде ничего, но на большой громкости начинает немножко хрипеть. Причем иногда начинает, а иногда нет, и когда - неясно.

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

> Звук в фильме работает, а в стереомузыке одновременно с ним - нет.

Командную строку mplayer'а, его вывод и название плеера, который проигрывает стереомузыку - в студию

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

У mpd есть одна важная настройка - тип запуска (от залогиненного пользователя или init-скриптом). От нее зависит дальнейший ход отладки.

А pastebin.com лежит, так что прошу перепостить,

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

Уже не лежит. Итого - имеем два вида граблей:

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.

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

>2) mplayer не настроен на 5.1, надо в командную строку добавить -channels 6.

Теперь он заикается, то есть между секундами звука появляется задержка.

Пробовал параллельно амарок, звука все равно нет.

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

> заикается

Решим потом

звука все равно нет

Значит, у нас разное представление о настройках звука на твоей машине. Для тестов будем использовать только 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), либо править конфиги плееров.

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

Ничего не понимаю - такого просто не может быть. Прошу проделать опыт с двумя aplay еще раз (есть подозрение, что либо pulseaudio удален не до конца, либо кто-то еще вмешивается в процесс, и надо выяснить, кто именно). Если опять появится «unable to open slave», прошу выполнить команду:

fuser -v /dev/snd/* /dev/dsp

Прошу извинить за такую задержку с рабочим конфигом. Он предполагает, что все программы работают от одного пользователя и настроены на использование ALSA (а не OSS и не pulseaudio) через устройство «default» (а не «hw:0» и не «HDA Intel»), тогда как обеспечение этого условия на практике оказывается самым сложным делом.

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

Pulseaudio не удален. Это критично? Ведь я в плеерах насильно указываю, что они должны проигрывать pulseaudio. Если да, мне его удалить или просто убрать из USE и перекомпилировать все приложения? А то негоже по двадцать раз в день удалять-ставить пульс чтобы потестить альсу или посмотреть кино.

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

Таки да, fuser показывает пульс. Попробую выпилить его и отпишусь.

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

> Pulseaudio не удален. Это критично?

Да. Но достаточно только сделать mv /usr/bin/pulseaudio /usr/bin/pulseaudio.disabled , чтобы он не запускался в неподходящий момент.

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

vurdalak@vurdalak-pc ~ $ 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

Пульс удален чуть более, чем полностью.

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

Я здесь вижу только один aplay. Второй дает ту же ошибку «unable to open slave»? Если так - это баг в alsa-lib, обнови до версии 1.0.23 (из ~x86 или ~amd64).

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

Попутно вопрос: что для моей карты указывать в daemon.conf для пульса? А именно sample-formats, default-fragments и default-fragment-size-msec. А то с пульсом все отлично, но он немного создает дребезг звука.

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

Дребезг (если мы имеем в виду одно и то же) никак не связан с daemon.conf. Это баг в C-коде, который применяет громкость и баланс к звуку с использованием инструкций SSE2.

Насчет неработоспособности dmix и падения mplayer - похоже на переоптимизированную систему. Подробности в jabber (см. мой профиль).

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

Когда-то давно мне AEP тоже помогал с конфигом для альсы, вот собственно сам конфиг http://pastebin.com/QF6dQpfC. Работает уже почти 2 года, 5.1+стерео.

ivanich ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.