Linux для всех

индекс
247,20

Лечим треск при проигровании звуков в Pidgin

Публикую статью от guglez.

Часто сталкиваюсь с неприятной проблемой — при проигровании Pidgin-ом звуков идет неприятный треск. Проблему эту наблюдал не только у себя. Сегодня решил наконец-то разобраться в чем дело.

Погуглив я не нашел никаких решений кроме как снести pulseaudio. По причине того, что кроме глючного звука в Pidgin я у себя проблем со звуком не наблюдаю, я решил что мне этот способ не подходит и я принялся искать корень проблемы.
Методом проб и ошибок я выяснил, что для воспроизведения звуков Pidgin использует утилиту aplay. Выглядит это примерно так:
aplay /usr/share/sounds/purple/login.wav

Если мы выполним эту команду в терминале, мы получим тот же треск, что издает Pidgin. Идем в ман aplay и находим там два интересных пункта:
-L, --list-pcms
List all PCMs defined

-D, --device=NAME
Select PCM by name

Первый ключ выводит список всех доступных аудио устройств, а второй заставляет проигрывать звук через заданное устройство. Методом тыка я нашел устройство, при выводе звука на которое треска не наблюдается. В моем случае это было устройство с именем surround41. В итоге получилось вот что:
aplay -D surround41 /usr/share/sounds/purple/login.wav

Теперь мы умеем проигрывать чистый звук и нам надо рассказать об этом Pidgin :)

Идем в настройки Pidgin (ctrl+p), заходим во вкладку звук, в поле метод воспроизведения звука выбираем пункт «команда». Ниже вбиваем aplay -D surround41 %s, где вместо surround41 вписываем ваше устройство. Наслаждаемся чистым звуком в Pidgin!
_________
Текст подготовлен в ХабраРедакторе
+31
27 августа 2009, 00:53
23

комментарии (31)

0
lunatik42 #
Хорошо, мне вроде бы еще помогала замена aplay на mplayer, он тоже вроде справляется хорошо и без треска. Сейчас, правда, пересел на qutim.
+1
catdog #
mplayer и libav достаточно тяжелые для таких операций:
там сначала идет проба потока на предмет какой именно кодек нужен для декодиорвания, ну и помимо этого надо подгрузить и инициализировать библиотеки в том числе и не маленькие типа libav.
Это создает дополнительные задержки
0
satsura #
Спасибо помогло!
0
Screatch #
А я просто поигрался с настройками звука, Pulse Audio на OSS (или наоборот, лень смотреть) поменял и всё норм вроде стало.
+2
guglez #
OSS вроде как почти мертв и почти не развивается, не?
0
Screatch #
Посмотрел, стоит сейчас ESD на воспроизведении звуков, вроде норм.
0
guglez #
5.1 этом работает?
НЛО прилетело и опубликовало эту надпись здесь
0
TeAnton #
А я все же снес PulseAudio.
0
stolen #
Я наблюдаю картину, когда это не помогает.
0
Iboong #
Расскажите как :)
0
TeAnton #
зашел в синаптик набрал pulse в поиске и удалил все пакеты со словом pulse. как-то так.
+1
non7top #
когда они уже допилят эту пульсу. задумка хороша, а уже который год ничего внятного сделать не могут.
0
catdog #
эмм, пульсаудио же дохлое: все вроде как jack используют.
0
non7top #
скорее jack умерло. пульса используется по дефолту в убунте и федоре. может еще где. я лично не использую ни пульсу ни джек и доволен жизнью.
0
catdog #
JACK 1.9.3 released — Submitted by letz on Tue, 2009-07-21 09:45.

сейчас готовится к выходу 2ка. Какбэ ему умереть не дадут только за то что он умеет делать для низколатентных аудио приложений. Вот пульс аудио здесь както не ахти. Плюс интерконнект между приложениями и другие плюшки.

ну и главный аргумент против пульс аудио:
На данный момент (версия 0.9.14) нет ни одного звукового редактора для Linux, непосредственно поддерживающего запись с PulseAudio устройства, а утилита padsp не работает с 24-битным звуком, что делает невозможной в редакторах запись 24-битного звука; пока поддерживается лишь 16 бит.[3]
0
non7top #
я не к тому что он не развивается, а к тому что не используется. пульса почти в каждой убунте, а джек это специфичная редкоиспользуемая штука штука
+3
moadib #
Опечатка в заголовке. ПроигрОвание?
0
qmax #
для полноты картины ещё бы хорошо разобраться почему именно surround41 трещит.
это реальное устройство (в которое воткнуто 4 физических колонки и сабвуфер) или виртуальное, сделанное скриптами алсы, с переплетением каналов?
0
guglez #
Почему surround41 трещит? У меня он как раз не трещит. А карточка да — многоканальная. В зависимости от того, на какое устройство играть, будут звучать те или иные колонки.
+1
qmax #
пардон.
я попутал.
surround41 у автора поста какраз и не трещал.

а трещало дефолтовое устройство, которое вполне могло оказаться не «нативным» а с какими-нибудь алсовыми фильтрами — которые возможно и производили треск.

автор собирался «искать корень проблемы» в начале поста, но так до него и не докопался.
0
guglez #
Есть вообще люди, у которых этот баг не проявлялся?
0
qmax #
… и котрые смогли решить эту проблему не методом проб и ошибок и переключением каналов.
0
alternativshik #
у меня не трещит ничего, как ни странно.
0
qmax #
на встроенном AC'97?
0
alternativshik #
так точно
0
korynd #
$ aplay -D surround41 /usr/share/sounds/purple/receive.wav
aplay: main:608: audio open error: Устройство или ресурс занято

И так с любым устройством, кроме default.
0
guglez #
.asoundrc меняли? Настройки звука вообще какие-нибудь трогали?
0
korynd #
Нет, не трогал. Забыл сказать, что у меня нет pulseaudio, но всё равно трещит.
0
alisfen #
Трещит и дефолтая виртуалка, и CK804 хардварный, где-то секунд через 40-50, а бывает и минуты через три(( непостоянный, блин, pulseaudio
0
hoitytoity #
хм, в версии 2.6.1 подобное ни разу не наблюдалось.

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