LINUX.ORG.RU

Глюки с проигрыванием видео и музыки в Arch Linux

 , , , ,


0

1

Началось с того, что у меня в Chrome видео адекватно воспроизводиться не хотят. Первые пару секунд нормально, потом фризится, а звук идёт, когда развисает, «перематывается» вперёд, затем каждую секунду прелоадер крутится (это на YouTube, с другими видео примерно тоже самое). Если ставлю паузу, то звук ещё несколько секунд продолжается, даже если закрыть вкладку.

Дальше ещё интереснее: слушал музыку через Rhythmbox, и через несколько минут она начинается быстро перематываться (т.е. в ускоренном режиме; подумал, что файл повреждён, но дело не в нём: с другими песнями тоже самое стало), а когда нажал паузу, музыка остановилась только через несколько секунд, как и в Chrome. Ещё в Rhythmbox «прогресс» неравномерно бежит вперёд музыки.

Открыл видео в Totem, там тоже самое: зависание и отключается через несколько секунд после закрытия окна. В общем, какой-то трэш совсем...

Ещё забыл добавить, что в Firefox этих проблем нет

SurPaul ()

Попробуй погонять mpv с разными бэкэндами с аппаратным ускорением и без него. И смотри что в консоль сыпаться будет.

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

Некоторое время назад диск с этой системой стоял в компе (я иногда по необходимости переставляю). Так вот, на компе такой проблемы почему-то нет ¯\_(ツ)_/¯

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

Это не баг в самом PulseAudio. Дело в том, что по умолчанию PulseAudio использует аудиоустройство в немного другом режиме, чем это принято у классических ALSA-приложений. Он не ждёт события от аудиодрайвера об опустошении буфера, а пополняет этот буфер по таймеру, подстраивая задержки так, чтобы буфер не переполнялся и не опустошался.

У некоторых железок драйвера в таком режиме почему-то глючат.

i-rinat ★★★★★ ()
Ответ на: комментарий от SurPaul

Это заблуждение, и вот почему.

При проигрывании мультимедиа очень важно сохранять синхронизацию между видеорядом и звуковой дорожкой. При использовании раздельных таймеров сделать это очень сложно, потому что видео выводится видеоадаптером, аудио — звуковой картой, а декодированием занимается процессор. У всех устройств свои тактовые генераторы, частоты которых плывут, например, от изменяющейся температуры. (Они могут немного измениться даже от того, что ты в комнате просто с кем-то разговариваешь.)

Самое распространённое решение — синхронизироваться по аудио. Настраиваешь звуковую систему так, чтобы она тебя дёргала каждые 40 мс, а в колбеке заполняешь буфер звуковой карты и выводишь один кадр. Voilà. У тебя синхронизированный с видео звук, даже если задержка поплывёт в ту или иную сторону.

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

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