Рассинхронизация аудио/видео.

Автор Aleksoid1978, 28 мая 2019, 07:02:17

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Aleksoid1978

Из тикета #456 с SF.
У себя не смог воспроизвести. Фильтры все встроенные, настройки дефолтные.

Вот алгоритм(со слов автора):
To see the problem:
1. start video
2. move forward 15 minutes with right arrow
3. pause
4. unpause
5. move forward for dozen of seconds
6. pause
7. unpause
8. repeat 5-7 few times
9. and then you will see some kind of latency between video and audio - the image holds still for a little while after unpause

Может кто-то попробует у себя воспроизвести.
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

Цитата: Aleksoid1978Из тикета #456 с SF.
У себя не смог воспроизвести. Фильтры все встроенные, настройки дефолтные.
Может кто-то попробует у себя воспроизвести.

Воспроизвел таки. К сожалению, есть такая проблема. И ее алгоритм воспроизведения даже еще проще:

1. Запустить видео файл
2. Поставить на паузу
3. Подождать некоторое время (5-10 минут)
4. Возобновить воспроизведение
5. Повторить пункты 2 и 4 несколько раз с интервалом в 5 секунд

В итоге, видео начинает отставать от аудио, причем, чем больше раз мы повторяем пункты 2 и 4, тем сильнее становится рассинхрон. Это называется нарастающий рассинхрон.

Скажу сразу, что данная проблема проявляется только на интегрированных звуковых картах, причем именно на DirectSound. И скажу, что дело здесь не в драйверах, потому что какой бы драйвер не установишь, рассинхрон этот не пропадает.

Что касается WASAPI-рендерера, то он ведет себя по разному, но, в основном, пытается подогнать видео к аудио.
Хотя если посмотреть на статистику и свойства видео-рендерера EVR-CP, становится ясно, что что-то тут не так, поскольку есть достаточно значительные отклонения вида, например: -3 -4 -6 и т.д. но явного рассинхрона, при этом (при WASAPI), - нет.

Сама проблема происходит из-за того, что в момент возобновления воспроизведения, по неизвестной причине, почему-то вдруг резко возрастает Latency. И виноваты тут вовсе не драйверы всех любых интегрированных устройств, а сама операционная система, точнее даже сам BIOS.

Хотелось бы мне узнать, какая у этого иностранного пользователя операционная система и какой BIOS (AMI, или Award Phoenix).

К сожалению, программно такую проблему не исправить. Это вряд ли.

Единственные решения данной проблемы такие:

1. Отключить весь разгон в BIOS\'е
2. Использовать внешнюю звуковую карту
3. Сбросить настройки BIOS\'а по умолчанию
4. Попробовать включить режим повышенной производительности самой операционной системы
5. Проверить напряжение батарейки питания BIOS\'а. Должно быть не ниже 3 вольт.
6. Не использовать Extended Mode, если таковой имеется в BIOS\'е. Только Standard Mode.

Вот только есть одно но, любое из этих решений поможет избавится от данной проблемы, только через определенное время, проблема сама может опять возникнуть. Это можно будет заметить опять же по свойствам и статистике видео-рендерера EVR-CP. И вот тут уже возникает вопрос - а теперь-то что делать? Естественно, никакая перезагрузка, а уж тем более переустановка Windows, тут не помогут. Так что же остается тогда?  Если ни одно из данных решений не помогло и проблема проявляется повторно спустя какое-то время (достаточно продолжительное, или не очень), то в этом случае остается только одно - более радикально и досконально изучить свой BIOS и проверить, какие еще параметры в нем установлены на увеличение производительности по умолчанию, так называемые различные performance mode.  Лучше чтобы везде был именно Standard.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

Aleksoid1978

Т.е. такое поведение при любых фильтрах и видео-выводе ? В MPC-HC или Pot наблюдается такое поведение ?
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

Цитата: Aleksoid1978Т.е. такое поведение при любых фильтрах и видео-выводе ? В MPC-HC или Pot наблюдается такое поведение ?
Именно. Что касается других плееров - то с ними ситуация гораздо лучше, чем с нашим MPC-BE, но не на все 100%.

Дело в том, что данная проблема достаточно непростая и довольно серьезная, при этом очень неприятная.

Вот, для начала, представьте себе такую ситуацию: вы купили компьютер, установили на него операционную систему, поставили все необходимые драйверы, затем установили любимый плеер MPC-BE, запустили видео файл для просмотра и тут начался рассинхрон, при этом никакие настройки BIOS\'а вы не меняли. Т.е. у вас все условия строго по умолчанию, т.е. именно так, как задумывалось инженерами - разработчиками, иначе говоря, все строго по умолчанию. И настройки BIOS\'а и настройки самой операционной системы и настройки всех установленных драйверов и т.д. Т.е. абсолютно все строго по умолчанию. И вы не можете понять почему у вас наблюдается такая проблема и как ее решить, т.е. избавиться от нее. Согласитесь, что вы были бы в полном шоке от увиденного и это еще мягко говоря.

Помните, я как-то хотел расписать для вас ужас нашего WASAPI-рендерера. Так это он собственно и есть.
Я  уже говорил, но повторюсь еще раз, что WASAPI-рендерер ведет себя (может вести себя) по разному, в зависимости от видео файлов и их форматов. На одних рассинхрон на DirectSound, на других - наоборот - рассинхрон на WASAPI, при этом там где не видно явного рассинхрона, все равно есть достаточно значительные отклонения в свойствах и статистике видео-рендерера, что говорит нам о том, что дело здесь нечисто, что-то идет (работает) не так, как должно.

Если на такой вот машине с такой вот неприятной, непростой и серьезной проблемой, особенно когда абсолютно все строго по умолчанию, запускать различные видео файлы в системных проигрывателях, вроде Windows Media Player, или же "Кино и ТВ", то они будут всегда воспроизводиться нормально. Такой вот парадокс.

Вы спросите, а почему же тогда с другими плеерами все гораздо лучше обстоит? Ну тут ответы будут очевидными:

MPC-HC использует Sanear в связке с LAV Filters. А мы знаем прекрасно на что способен LAV Splitter Source, содержащий полноценный libavformat, который любую неизвестность распарсит как надо, да в придачу еще и Sanear, который работает, даже без методов синхронизации.

Аналогично и Pot, несмотря на то, что он использует наш WASAPI, у него также имеются как свои собственные фильтры, так и фильтры на базе ffmpeg. И тут также он может похвастаться неким (некоторым) превосходством.
Его собственные фильтры чуть ли не на уровне тех же ffmpeg-фильтров, а некоторые даже и лучше ffmpeg и возможно даже libavformat. Уж больно они в некотором смысле и плане - "навороченные", если можно так сказать.

Вот отсюда и видно, что с ними поведение более стабильное на машинах такого плана, т.е. с данной проблемой рассинхронизации. Но не полностью. На них тоже есть рассинхрон. Но, мама дорогая, как же он на них проявляется - это еще увидеть надо. А проявляется он необычно - чисто во время воспроизведения различных видео файлов, при этом всегда строго с произвольными интервалами. Нельзя точно определить и запомнить конкретное время начала проявления рассинхрона. Даже мне пришло полностью пересмотреть два различных фильма, один в MPC-HC, другой в Pot, чтобы увидеть проявление нарастающего рассинхрона. И как же он медленно нарастает. А если еще и присутствуют различные спец-эффекты в фильмах, то заметить и услышать его становится вообще практически невозможно.

Все это я вам рассказал к тому, чтобы вы знали, как многие (некоторые) пользователи довольно серьезно страдают и не знают, как им быть в такой вот ситуации, когда со всеми параметрами по умолчанию у них вдруг из ниоткуда - рассинхроны появляются.

И я - один из таких вот "страдальцев". Но я не новичок, а опытный пользователь, естественно, я найду способы и решения обойти такую неприятную проблему, но опять же - все решения - временные. Через определенное время данная проблема себя проявит снова. Я уже давно знаком с этой проблемой, давно ломаю над ней голову.

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

Вообще, если говорить честно, прямо и открыто, то прежде всего, виновата Корпорация Майкрософт, которая перелопатила механизмы электропитания самой операционной системы, после чего перелопатила звуковой системный микшер. Вот это и есть первоисточник возникновения данной проблемы. А приложения, те же различные плееры и прочие мультимедийные - это уже "второе". Так как у всех свои реализации, то и поведения то же свои соответственно.

Но, к сожалению, так уж вышло, что именно MPC-BE в такой ситуации ведет себя хуже всех, в том плане, что если внимательно посмотреть на происходящее, то кажется, что он вообще потерял какие-либо все свои имеющиеся механизмы синхронизации (A/V Sync Correction).

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

В моем случае - это машина GIGABYTE GA-EP35C-DS3R, с BIOS\'ом "Award Bios Modular".
На других своих машинах ASUS P5Q и ASUS P5QC с BIOS\'ами AMI, данной проблемы нет вообще.

Условия проявления проблемы рассинхрона в моем случае:

1. GIGABYTE GA-EP35C-DS3R
2. Windows 10 любой разрядности
3. Интегрированная звуковая карта (аудио-чип) Realtek ALC888
4. Все настройки BIOS\'а, системы, драйверов и прочих параметров - строго по умолчанию

Вот при таких условиях, я и получаю рассинхрон, причем не только после возобновления воспроизведения, а даже сразу, т.е. с постепенным нарастанием.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

Aleksoid1978

Чё за бред. Если бы было такое массово - уже бы во всю писали/кричали...
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

Цитата: Aleksoid1978Чё за бред. Если бы было такое массово - уже бы во всю писали/кричали...
Я знал, что вы так скажете. В том-то и дело, что только на определенных машинах присутствует данная проблема.

Ради интереса, я проверил поведение других систем - Windows 7 и Windows 8.1 на своей GIGABYTE GA-EP35C-DS3R.
Вот с ними как раз-то данной проблемы и не наблюдается. А вот если установить Windows 10 с нуля, или просто развернуть образ (снимок), то тут же появляется данная проблема. И это, я повторюсь, со всеми параметрами по умолчанию.

Складывается такой вывод, что Windows 10 просто не хватает питания, при сбалансированной схеме управления питанием, которая является схемой питания по умолчанию. Проблема, в моем случае, пропадает на Windows 10, если я выберу схему питания "Высокая производительность". Вот тогда другое дело. Статистика и свойства видео-рендерера становятся идеальными - всегда 0,0,0 и никакого рассинхрона ни на DirectSound, ни на WASAPI.

А раз такой ужас творится именно на Windows 10, то как говорится, делайте свои выводы сами, насколько эта система корректно и идеально работает. Даже исходя только из этой одной проблемы с рассинхроном на Windows 10, уже можно сказать, что такую дрянную систему, работающую через одно место, еще поискать надо.

Теперь что касается повторного проявления данной проблемы. Не знаю, как у других, но в моем случае, в BIOS\'е есть параметр, отвечающий за ускорение производительности оперативной памяти. Там три варианта - Extreme, Turbo и Standard. По умолчанию стоит Turbo, т.е. уже идет с неким частичным разгоном. Если верить инструкции, то режим Turbo должен использоваться когда нет никакого разгона. Если используется разгон, тогда переключать в Standard. Именно так советуют нам производители этого BIOS\'а. Про Extreme-режим и сказать нечего, он видимо только для оверклокерской памяти создан, ибо у меня он не работает вообще (мать с ним не стартует).

Сам Award BIOS достаточно интересно устроен в том плане, что если изменить какой-либо параметр, даже зная за что он отвечает, то тут же начинает мигать сообщение красного цвета, говорящее нам о нестабильной работе.

Отсюда и возможно повторное проявление данной проблемы.

Но факт остается фактом, Windows 10 не способна нормально работать на некоторых машинах, что является огромным минусом для нее, особенно это касается ее измененных схем управления питанием.

Я сразу и абсолютно точно скажу, что сбалансированный режим питания работает нормально на любой операционной системе, но только не на Windows 10. А это уже косяк корпорации Майкрософт и далеко не единственный.

Почему именно эти схемы управления питанием? Да потому, что именно от них, в первую очередь, и зависят эти все Latency. Естественно, при "высокой производительности" никаких сверх высоких Latency просто нет, да и быть не может.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

V0lt

Цитата: Aleksoid1978Чё за бред. Если бы было такое массово - уже бы во всю писали/кричали...
Кричать про Latency начали, когда MS полностью переделала аудиосистему на Висте и 7-ке. У меня нормально работающая на XP звукашка от Creative начала хрепеть на 7-ке. Помогают танцы с бубном (Я в настройках драйвера и системы чего-то менял). Такое длилось несколько лет. Потом Daniel_K начал делать нормальные паки драйверов и жить стало легче.

Есть ли влияние на рассинхрон? Возможно, но думаю оно не так драматично, как Evgeniy1990 пишет. :)

Добавлено: 2019-06-04 10:07:35

Evgeniy1990, выложи ссылку на измеритель Latency.


Добавлено: 2019-06-04 10:13:59

Хотя вот - DPC Latency Checker


Добавлено: 2019-06-04 12:19:57

У меня на Win8.1 столбики желтые, latency примерно 1 секунда.

Aleksoid1978

У себя не разу не наблюдал - такого что тут Evgeniy1990 пишет. Ну и ладно - у кого есть, тому не повезло :)
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

V0lt

Ну и "чудо-волшебные" машины же у вас. Latency перевалило за 1000 и никакого, при этом, у вас рассинхрона нет.

Да уж, мне бы такую же заиметь... А то, при Latency ниже даже 300, я получаю рассинхрон, которого и близко быть не должно и не может по здравой логике, поскольку "зеленое" Latency на графике - это норма, идеал.

Добавлено: 2019-06-10 16:49:14

Цитата: Aleksoid1978У себя не разу не наблюдал - такого что тут Evgeniy1990 пишет. Ну и ладно - у кого есть, тому не повезло :)
Жаль у меня нет, как у вас, "волшебной" машины. Я бы тогда также говорил, отвечал бы вам, вашими же словами. )))
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

V0lt

Evgeniy1990
На пустом месте рассинхрона нет. А повторять алгоритм бага, у меня столько времени нет (по прикидкам нужно полчаса на одну проверку). Может когда-нибудь соберусь и проверю.

Желтые столбики в DPC Latency Checker могут не влиять на звук при обычном прослушивании. Вот когда красные попрут, то звук начнет хрипеть.