MPC Audio Renderer - рассинхрон после перемотки [Исправлено]

Автор Evgeniy1990, 21 февраля 2018, 23:52:13

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

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

Evgeniy1990

Тема: "MPC Matroska Source" - необычный рассинхрон, после перемотки и дальнейшего нормального воспроизведения, при использовании "MPC Audio Renderer".

Описание проблемы:

При использовании встроенного фильтра - источника "MPC Matroska Source", на некоторых видео файлах - матрешках проявляется очень необычный рассинхрон, который очень непросто сразу заметить и получить, но способ получения все же есть. Проявляется при перемотке на ключевые отметки времени кадра.

Условия воспроизведения:

1. Встроенный фильтр-источник: "MPC Matroska Source"
2. Встроенный аудио-рендерер: "MPC Audio Renderer"
3. Определенные ключевые отметки времени кадра (в данном случае: ключевая отметка: 00:00:12)

Алгоритм воспроизведения:

1. Скачать этот видео файл
2. Запустить его
3. После его открытия, во время его воспроизведения, перемотать именно мышкой на ключевой кадр с отметкой времени: 00:00:12
4. После перемотки, очень внимательно просмотреть видео файл, хотя бы до отметки времени: 00:03:20

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

Ожидаемый результат: после перемотки на ключевую отметку времени: 00:00:12 и дальнейшего спокойного просмотра данного видео файла, особенно после опенинга, рассинхрона быть не должно.

Причина данного необычного рассинхрона - встроенный фильтр-источник: "MPC Matroska Source".
Если заменить его на "LAV Splitter Source", то данного рассинхрона, по указанному алгоритму, расписанному выше, - нет и не наблюдается/не проявляется.

P.S. Я сразу смело и абсолютно точно скажу, что данный баг - это очередная поломка.
Раньше точно такого не было. Из-за переделки кода во встроенном фильтре-источнике "MPC Matroska Source" и появился данный баг.
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

Проверил по данному алгоритму пару раз - честно говоря понять что есть какой-то рассинхрон так и не смог, вроде бы все нормально. Сравнил с LAV Source - поведение одинаковое. Так же посмотрел в отладчике - после перемотки временные метки и пакеты данных совпадают.

Если уж и искать рассинхрон - то файлы должны быть с нормальной речью или песней, русский ну или хотя бы инглишь.
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Проверил по данному алгоритму пару раз - честно говоря понять что есть какой-то рассинхрон так и не смог, вроде бы все нормально. Сравнил с LAV Source - поведение одинаковое. Так же посмотрел в отладчике - после перемотки временные метки и пакеты данных совпадают.

Если уж и искать рассинхрон - то файлы должны быть с нормальной речью или песней, русский ну или хотя бы инглишь.
Странно... Несколько раз открывал данный видео файл и внимательно просматривал свойства EVR-CP.
Заметил, что один раз, во время воспроизведения, частота кадров была 23.52 FPS, а это уже неправильно.

Я проверял на конфигурации: "Win7(x64)" + "ATI Radeon HD 5770" + "ASUS Xonar DG" + "MPC-BE(x64)".

Самое странное, что видео файл имеет постоянную частоту кадров, но тем не менее, как ни странно, во время воспроизведения, она скачет, причем, как при "MPC Matroska Source", так и при "LAV Splitter Source".

Выглядит это примерно так: 23.88 -> 23.73 -> 23.92 -> 23.87. Хотя, может так и должно быть...

P.S. Ощущение, как будто что-то не так, только в чем? В общем, еще понаблюдаю....
[merge_posts_bbcode]Добавлено: 2018-03-12 15:17:15[/merge_posts_bbcode]

Aleksoid1978
Цитата: Evgeniy1990[В общем, еще понаблюдаю....
Наконец-то я выяснил (разгадал), как проявляется это странный и загадочный рассинхрон.
Дело вовсе не в конкретном cплиттере, а в самом "MPC Audio Renderer".

Данный рассинхрон проявляется при многократной чередующейся цепочке:
"Пауза" -> "Воспроизведение" -> "Пауза" -> "Воспроизведение" -> "Пауза" -> "Воспроизведение" -> и т.д.

Т.е. чем больше раз мы поставим воспроизводимый видео файл на паузу и чем больше раз продолжим его воспроизведение, тем скорее проявится рассинхрон в "MPC Audio Renderer" на обоих режимах "WASAPI: Shared / Exclusive".

Как его (рассинхрон) воспроизвести?

Алгоритм воспроизведения:

1. Скачать выложенный видео файл
2. Выбрать "MPC Audio Renderer"
3. Выбрать звуковую карту "Realtek HD"
4. Запустить данный видео файл
5. Во время его воспроизведения, нажать и удерживать клавишу пробел несколько секунд, хотя бы подержать примерно 10 секунд.

Фактический результат:

После данного алгоритма, после возобновления воспроизведения, проявится рассинхрон.

Ожидаемый результат:

Рассинхрона, после возобновления воспроизведения, быть не должно.

[merge_posts_bbcode]Добавлено: 2018-03-12 15:32:41[/merge_posts_bbcode]

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

Он присутствует на любых звуковых картах. Также может проявляться, при перемотке, но для этого, чтобы его получить, надо очень много раз мотать воспроизводимый видео файл туда-сюда. На практике, при использовании "MPC Audio Renderer", рассинхрон также может проявиться при однократной перемотке, или при однократной остановке и возобновлении воспроизведения, но для этого нужно попасть в определенные участки кадров, что также проблематично. Вот почему он в таких случаях являлся плавающим.

А если попробовать воспроизвести его, т.е. сам рассинхрон, при данном алгоритме, описанном выше, тогда рассинхрон не заставит себя ждать, он обязательно проявится. Это один из алгоритмов его стабильного получения (воспроизведения).
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Ну не знаю, не знаю. Я очень часто ставлю на паузу и потом снимаю. Не разу не ловил рассинхрон при этом. Я конечно не делал так - вопрос зачем ?? Просто чтобы найти баг - ну тогда может быть. Но в реале такой ситуации не будет :)
Это необходимо сделать, чтобы воспроизвести баг и устранить его. Это один из его способов получения.

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

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

Вот вам, пожалуйста, типичная ситуация. :)
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Ну и как я уже говорил - по выложенному файлу я вообще не могу понять когда там звук должен совпадать в картинкой.
Самое четкое это либо виде-клип или нарезка с фильма или новостей, где четко будет видно как речь совпадает с мимикой лица.
Ок, я подберу для вас наиболее подходящий видео файл.
[merge_posts_bbcode]Добавлено: 2018-03-12 15:48:48[/merge_posts_bbcode]

По поводу моего примера - обратить внимание на опенинг, фразы, типа - "пам-папам"...
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

Не надо сэмплов - нашел. Да подтверждаю - если долго жать плей/пауза, то потом рассинхрон. Посмотрим - будет время займусь. А пока - записываем в баги и откладываем в долгий ящик.
[merge_posts_bbcode]Добавлено: 2018-03-13 10:34:43[/merge_posts_bbcode]

Проверяем - https://yadi.sk/d/0MS7_giI3TJCtZ
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Проверяем - https://yadi.sk/d/0MS7_giI3TJCtZ
Проверил тестовый билд на трех разных звуковых картах (Realtek HD / C-Media / ASUS Xonar DG), на обоих режимах WASAPI: Shared / Exclusive - рассинхрона больше нет, больше он не проявляется. Основная проблема полностью исправлена. :)
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.