?

Log in

No account? Create an account
Previous Entry Поделиться Next Entry
Качество звука в bluetooth
tux
oyx wrote in ru_linux
Имеется вот такой девайс: SVEN AP-B550MV. Под win7 никаких проблем со звуком нет. Но под Mint 18 просто днище: звук как будто из ведра, накрытого кучей тряпок. С другими гарнитурами/колонками etc всё хорошо. Куда копать? Да, Pulse.

  • 1
чота у вас ссылка получилась мегахитрожопая..

(Анонимно)
Имею такие же уши и с качеством звука проблем не имею.
Возможно, что у вас используется bluetooth-профиль HSP, а не A2DP (это справедливо независимо от ОС). В HSP поддерживается запись и воспроизведение звука (но только в моно и ужасном качестве). В A2DP нет поддержки микрофона, но качество воспроизведения хорошее. Можно посмотреть через pavucontrol -> configuration -> AP-B550MV -> Profile; через pactl тоже как-то можно посмотреть/поменять профиль.

В каком bluetooth-профиле дейвайс работает в Mint? Возможно, нужно пнуть для работы через A2DP.

Edited at 2017-12-10 16:44 (UTC)

плюсую этот камент, должно быть a2dp

Да, смена профиля качество улучшила. Но при этом накапливается отставание звука :( За полчаса секунд на 5 взад звук уходит при просмотре видео...

Увы, тут мало чем смогу помочь, плохо знаю bluetooth-стек и нет подходящего аудио-устройства для экспериментов (имеющиеся смартфоны умеют только транслировать звук, а соседи пугаются, когда кто-то подключается через bluetooth к их телевизору Samsung и использует его как аудиосистему, поэтому выключают телевизор раньше, чем я начинаю слышать рассинхронизацию). Лезть в исходники стека не имея под рукой устройства - слишком многое придется перекопать. Попробуйте погуглить что-то навроде "A2DP audio video synchronization".

Мои домыслы таковы: в профиле A2DP происходит дополнительная перекодировка звука, процесс кодирования неизбежно вносит небольшую задержку, но по какой-то причине видеоплеер не получает информации о задержке, поэтому не компенсирует ошибку синхронизации и она накапливается. Вполне возможно, что механизм компенсации вообще в bluetooth отсутствует, либо не реализован под Linux, но тогда единственным вариантом окажется принудительная установка задержки вывода видео в плеере, а величину задержки придется подбирать вручную.

Попробуйте в видеоплеере сделать вывод аудио сразу на аудиопорт Bluetooth, без промежуточных слоев. Или запустить видео под Windows. Есть какая-то разница?

Update: Приятель подтверждает проблему, глубоко он так же не копал, для решения под Linux с Pulse он использовал следующую магию: принудительно переводил bluetooth-аудиоустройство сначала в профиль headset_head_unit и уже потом в a2dp_sink. Что-то навроде "pactl set-card-profile CARD_NAME headset_head_unit && pactl set-card-profile CARD_NAME a2dp_sink", где вместо CARD_NAME нужно подставить имя аудиопорта, узнать его можно из вывода "pactl list cards". На iPhone тоже жалуется, там он применяет какую-то другую магию с включением-выключением Airplane-mode и последующим спариванием, то есть проблема не ограничивается одним Linux. Кстати, даже если с синхронизацией все будет Ок, то все равно будет какая-то постоянная задержка из-за наличия внутренних буферов декодера в приемнике, на китайских дешевых гарнитурах встречал запаздывание до полусекунды, лечить через "pactl set-port-latency-offset CARD_NAME speaker-output ТРЕБУЕМАЯ_ЗАДЕРЖКА_В_МИКРОСЕКУНДАХ".

Edited at 2017-12-12 13:13 (UTC)

Элементарно убить поцтерошлак. Под чистой alsa или oss4 проблем не будет скорее всего (хотя, я с блютусом вообще ни разу в жизни не сталкивался, т.к. днище же!).

А дело, скорее не в самих наушниках, но в драйвере Блютус наушников под Линукс.
Блютус - сам по себе не работает.


Я тоже с этим столкнулся, подключая беспроводную коллонку. Есть два режима, выбирать надо Audio Sink (a2dp)

Попробуйте установить PulseAudio Multiband EQ и поколдовать над звуком.

  • 1