MPC-BE forum

MPC-BE => Баг Репорт / The bug report => Архив / Archive => Тема начата: Evgeniy1990 от 20 октября 2017, 19:43:01

Название: Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]
Отправлено: Evgeniy1990 от 20 октября 2017, 19:43:01
Тема: "WASAPI Exclusive" - треск и рассинхрон, при ускоренном / замедленном воспроизведении.

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

При использовании режима "WASAPI: Exclusive", при увеличенной, или уменьшенной скоростях воспроизведения различных видео файлов, можно получить трекс и рассинхрон, поскольку в ускоренном / замедленном режиме, сам звук воспроизводится быстрее / более ускореннее, чем медленнее заявленной увеличенной / уменьшенной скоростях воспроизведения.
То есть, допустим стоит 1.2х, а по факту и слуху - гораздо выше. Отсюда и треск и рассинхрон.
Или наоборот, допустим стоит 0.5х, а по факту и слуху - чуть более ускоренее, нежели замедленнее.

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

1. Треск и рассинхрон проявляются только на встроенном "MPC Audio Renderer" и только в режиме "WASAPI: Exclusive".
2. Особенно хорошо заметно их проявление на видео файлах, содержащих аудио дорожки с частотой выше 48000 Гц (например: 96000 Гц, или 84100 Гц), но это не значит, что их нет на аудио с частотой 48000 Гц и ниже.

Алгоритм воспроизведения (для увеличения скорости воспроизведения):

1. Скачать этот видео файл: https://yadi.sk/d/b6gbyTui3NwBJd
2. В настройках плеера выбрать "MPC Audio Renderer"
3. В настройках "MPC Audio Renderer" выбрать режим "WASAPI: Exclusive"
4. Запустить скаченный видео файл
5. Во время его воспроизведения, увеличить скорость до 1.2х и т.д. выше

Алгоритм воспроизведения (для уменьшения скорости воспроизведения):

1. Скачать этот видео файл: https://yadi.sk/d/b6gbyTui3NwBJd
2. В настройках плеера выбрать "MPC Audio Renderer"
3. В настройках "MPC Audio Renderer" выбрать режим "WASAPI: Exclusive"
4. Запустить скаченный видео файл
5. Во время его воспроизведения, уменьшить скорость до 0.5х и т.д. ниже

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

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

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

После увеличения, или наоборот, уменьшения скорости воспроизведения, на данном видео файле не должно быть треска и рассинхрона.
Название: Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]
Отправлено: V0lt от 20 октября 2017, 21:16:01
Рассинхрона не заметил. Есть искажения звука из-за алгоритма изменяющего скорость звука с сохранением тональности.
Название: Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]
Отправлено: Evgeniy1990 от 20 октября 2017, 22:08:56
Цитата: V0ltРассинхрона не заметил. Есть искажения звука из-за алгоритма изменяющего скорость звука с сохранением тональности.
У меня есть рассинхрон, причем стоит скорость 1.2х, а звук мчится вперед так, что скорость словно гораздо выше.
Отсюда и рассинхрон, т.е. звук бежит быстрее кадров видео.
И в обратную сторону - также. Скорость 0.5х, а звук все-равно бежит быстрее видео.
По поводу тональности - согласен.

Обратите пожалуйста внимание на эту видеозапись с рассинхроном.

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

Да и сам звук, при ускоренном воспроизведении, совершенно неестественный, трещащий и режущий какой-то.
Название: Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]
Отправлено: Aleksoid1978 от 21 октября 2017, 03:07:06
Проверил - рассинхрона нет, скорость изменяется как положено. Искажений нет.
Название: Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]
Отправлено: Evgeniy1990 от 21 октября 2017, 05:05:44
Цитата: Aleksoid1978Проверил - рассинхрона нет, скорость изменяется как положено. Искажений нет.
В том-то и дело, что это только у вас. У меня совершенно не так. Проверял на внешней аудиокарте "ASUS Xonar DG".

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

В общем, я нашел причину - это опция "Использовать побитовый вывод".

Если она включена, то присутствует рассинхрон, звук мчится быстрее видео, даже быстрее скорости 1.2х.
И, естественно, появляется треск (искажения) и звук становится режущим.

Если она выключена, то рассинхрона нет, скорость меняется, как положения, искажений нет. Т.е. ситуация, как у вас.

В общем, необходимо исправить работу ускоренного воспроизведения, при наличии активной опции "Использовать побитовый вывод." на внешних дискретных аудио картах, наподобие "ASUS Xonar DG".

P.S. На "Sanear Audio Renderer", при использовании режима "WASAPI: Exclusive" и опции побитового вывода "Allow bitstreaming", данной проблемы рассинхрона и искажений звука, при ускоренном, или замедленном воспроизведении нет.
[merge_posts_bbcode]Добавлено: 2017-10-21 05:05:44[/merge_posts_bbcode]

И еще одна проблема:

Если, при ускоренном воспроизведении, переключиться с режима Exclusive на Shared, будет также просто рассинхрон.
И обратно с Shared на Exclusive - аналогично рассинхрон.  

Проверьте у себя этот случай, пожалуйста.

А вот в моем случае, если при этом используется "побитовый вывод", который у меня работает некорректно, то при ускоренном воспроизведении, при переключении с одного режима на другой, просто полностью пропадает звук.
Название: Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]
Отправлено: Aleksoid1978 от 21 октября 2017, 05:09:05
Ну ты можешь отправить мне свою внешнюю звуковушку, я проверю и если так оно и есть - постараюсь исправить. А так что - исправлять то и нечего если я не могу воспроизвести.
Название: Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]
Отправлено: Evgeniy1990 от 21 октября 2017, 05:10:06
Цитата: Aleksoid1978Ну ты можешь отправить мне свою внешнюю звуковушку, я проверю и если так оно и есть - постараюсь исправить. А так что - исправлять то и нечего если я не могу воспроизвести.
Проверьте пожалуйста еще одну проблему, которую я описал вам выше. Думаю, что у вас получится ее воспроизвести.

Если, при ускоренном воспроизведении, переключиться с режима Exclusive на Shared, будет также просто рассинхрон.
И обратно с Shared на Exclusive - аналогично рассинхрон.  
Название: Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]
Отправлено: Aleksoid1978 от 21 октября 2017, 05:34:03
Ну сразу логичный вопрос - а нафига вообще переключаться на лету с одного режима на другой, да еще и на ускоренном воспроизведении ?? :)

P.S. Покажи статус рендерера при побитовом выводе и без, есть одна мысль.
Название: Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]
Отправлено: Evgeniy1990 от 21 октября 2017, 05:47:06
Цитата: Aleksoid1978Ну сразу логичный вопрос - а нафига вообще переключаться на лету с одного режима на другой, да еще и на ускоренном воспроизведении ?? :)
Ну ведь вы же, в свое время, сделали специально такую возможность переключения на лету между двумя режимами WASAPI - Shared и Exclusive, при обычном воспроизведении (обычной скорости 1.0х), я думаю, что для удобства, особенно это удобно для тестирования, не нужно каждый раз перезапускать видео файл. :)

И тут - аналогично, только уже при ускоренном, или замедленном воспроизведении.
Думаю, что лишним не будет, тем более, что тогда будут доступны все способы воспроизведения, а не только обычное, со скоростью 1.0х. А это -  плюс для нашего "MPC Audio Renderer". :)

Цитата: Aleksoid1978P.S. Покажи статус рендерера при побитовом выводе и без, есть одна мысль.

Пожалуйста:

Статус рендерера, при побитовом выводе: https://yadi.sk/i/NQOvlTvP3NwbPu

Статус рендерера, без него: https://yadi.sk/i/5S-aVhSz3NwbQ4
Название: Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]
Отправлено: Aleksoid1978 от 21 октября 2017, 05:53:34
Ну как я и предполагал, косяк ускоренного воспроизведения при работе с 96 частотой, наверняка либо какой-то баг на стороне ffmpeg фильтра, или изменения работы.

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

По поводу рассинхрона - посмотрю как будет время, все там не просто.
Название: Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]
Отправлено: Evgeniy1990 от 21 октября 2017, 05:59:47
Цитата: Aleksoid1978Ну как я и предполагал, косяк ускоренного воспроизведения при работе с 96 частотой, наверняка либо какой-то баг на стороне ffmpeg фильтра, или изменения работы.

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

Скорее всего косяк при работе с высокими частотами аудио, начиная с 84100 Гц и выше, особенно с 96000 Гц и выше.

Хорошо, я тогда соберу Debug-билд, поускоряю, в общем, сделаю прогонку, после чего - выложу вам Debug-лог.
Название: Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]
Отправлено: Aleksoid1978 от 21 октября 2017, 07:11:27
Проверил у себя при выводе 96000 - все отлично, никаких искажений/рассинхрона.

По поводу рассинхрона при ускоренном воспроизведении и смены типа вывода - есть такое, посмотрю.
Название: Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]
Отправлено: Evgeniy1990 от 21 октября 2017, 07:48:06
Цитата: Aleksoid1978Проверил у себя при выводе 96000 - все отлично, никаких искажений/рассинхрона.

По поводу рассинхрона при ускоренном воспроизведении и смены типа вывода - есть такое, посмотрю.

Пожалуйста, сделал два лог-файла:

Лог №1: https://yadi.sk/i/BUDM62sL3NwcxZ
Лог №2: https://yadi.sk/i/vhfSUuiR3Nwcxo
Название: Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]
Отправлено: Aleksoid1978 от 21 октября 2017, 08:40:18
Цитата: Evgeniy1990
Цитата: Aleksoid1978Проверил у себя при выводе 96000 - все отлично, никаких искажений/рассинхрона.

По поводу рассинхрона при ускоренном воспроизведении и смены типа вывода - есть такое, посмотрю.

Пожалуйста, сделал два лог-файла:

Лог №1: https://yadi.sk/i/BUDM62sL3NwcxZ
Лог №2: https://yadi.sk/i/vhfSUuiR3Nwcxo

Ничего подозрительного. Так что хрен его знает - у меня на 96000 все отлично с ускорением/замедлением.
Название: Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]
Отправлено: Evgeniy1990 от 21 октября 2017, 08:54:12
Цитата: Aleksoid1978Ничего подозрительного. Так что хрен его знает - у меня на 96000 все отлично с ускорением/замедлением.
Очень странно, ибо проблемы присутствуют.

Тогда пока остается только это:

По поводу рассинхрона при ускоренном воспроизведении и смены типа вывода - есть такое, посмотрю.
Название: Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]
Отправлено: Aleksoid1978 от 22 октября 2017, 14:51:46
По поводу рассинхрона при изменении параметров - причину нашел, какой то прикол с конвертором ffmpeg, он просто игнорирует входные временные метки и всегда начинает с нуля. Почитаю поподробнее про работу, возможно так и есть либо я как то не так передаю параметры.
[merge_posts_bbcode]Добавлено: 2017-10-22 20:13:04[/merge_posts_bbcode]

Короче что-то мне не нравиться как оно работает, тупо игнорятся временные метки подаваемые на вход. По крайней мере для аудио фильтров.

Подумываю даже о замене ffmpeg на что-то другое.

[merge_posts_bbcode]Добавлено: 2017-10-22 21:51:46[/merge_posts_bbcode]

Рассинхрон исправлен в 3026.
Название: Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]
Отправлено: Evgeniy1990 от 22 октября 2017, 16:43:45
Цитата: Aleksoid1978Рассинхрон исправлен в 3026.
Проверил SVN r3026 - рассинхрон, во время переключения режимов WASAPI с Exclusive на Shared и обратно с Shared на Exclusive, при ускоренном, или замедленном воспроизведении, - исправлен.

Осталось исправить основную проблему - рассинхрон и треск звука, при ускоренном, или замедленном воспроизведении в режиме WASAPI: Exclusive, при побитовом выводе на звуковой карте ASUS Xonar DG.
Название: Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]
Отправлено: Aleksoid1978 от 23 октября 2017, 04:11:07
Пока проверил на встроенном Realtek в материнку, он может выводить 96000 - все отлично при ускорении/замедлении.
[merge_posts_bbcode]Добавлено: 2017-10-23 11:11:07[/merge_posts_bbcode]

Подтверждаю баг на ASUS XONAR DG - при выводе в 96000 ускорение/замедление приводит к искажению звука. Причина совершенно не ясна.
Название: Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]
Отправлено: Evgeniy1990 от 23 октября 2017, 04:43:59
Цитата: Aleksoid1978Подтверждаю баг на ASUS XONAR DG - при выводе в 96000 ускорение/замедление приводит к искажению звука. Причина совершенно не ясна.

Самое интересное то, что при использовании "Sanear Audio Renderer", данного бага, при побитовом выводе, во время ускоренного/замедленного воспроизведения, не наблюдается.

Может быть это тоже как-то связано с некорректной работой временных меток, во время ускоренного/замедленного воспроизведения, или выводом данных?

Попробуйте, пожалуйста, сравнить код нашего "WASAPI: Exclusive" и "Sanear".
Название: Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]
Отправлено: Aleksoid1978 от 23 октября 2017, 06:06:17
Кстати - баг не только с 96000, буквально только что качнул с лоста один из сериалов в 720p, звук там AAC стерео 16бит 48000 - так вот при ускорении/замедлении тоже самое, искажение и рассинхронизация. И именно на этом "долбанном" ASUS. Очень странно ...
Название: Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]
Отправлено: Evgeniy1990 от 23 октября 2017, 06:23:47
Цитата: Aleksoid1978Кстати - баг не только с 96000, буквально только что качнул с лоста один из сериалов в 720p, звук там AAC стерео 16бит 48000 - так вот при ускорении/замедлении тоже самое, искажение и рассинхронизация. И именно на этом "долбанном" ASUS. Очень странно ...
Верно, баг с любой частотой.

Основные условия:

1. Режим "WASAPI: Exclusive Mode"
2. Побитовый вывод, когда частота на входе равна частоте на выходе
3. Ускоренное/замедленное воспроизведение

Причем, проблема не в звуковой карте и даже не в ее драйвере, а именно в нашем коде "MPC Audio Renderer", поскольку при использовании внешнего "Sanear", ее нет.
[merge_posts_bbcode]Добавлено: 2017-10-23 06:23:47[/merge_posts_bbcode]

Вполне возможно, что для дискретных звуковых карт, алгоритм обработки, при таких условиях, несколько иной, нежели чем для интегрированных звуковых карт наподобие "Realtek HD/AC\'97".
Название: Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]
Отправлено: Aleksoid1978 от 23 октября 2017, 08:12:41
Алгоритмы в рендереры одинаковые для любого железа. Но почему такое поведение именно на этом ASUS - не понятно, ибо что на Realtek, на Nvidia - все отлично.

Причина совершенно не ясна.
[merge_posts_bbcode]Добавлено: 2017-10-23 15:12:41[/merge_posts_bbcode]

Выяснил - косячит только ЕСЛИ вывод в 24bit, а именно такой режим поддерживает ASUS XONAR, у него честный 24bit вывод. Если выводить 16bit или float(юзать Shared режим) - то все ок.

Поэтому я и не смог воспроизвести ни на realtek ни на Nvidia - у них у всех режим 24bit padded to 32bit.
Название: Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]
Отправлено: Evgeniy1990 от 23 октября 2017, 10:34:10
Цитата: Aleksoid1978Выяснил - косячит только ЕСЛИ вывод в 24bit, а именно такой режим поддерживает ASUS XONAR, у него честный 24bit вывод. Если выводить 16bit или float(юзать Shared режим) - то все ок.

Поэтому я и не смог воспроизвести ни на realtek ни на Nvidia - у них у всех режим 24bit padded to 32bit.
Так вот в чем дело. Теперь ясно, почему на звуковых картах "ASUS XONAR" проявлялся этот косяк, потому что они могут выводить честный 24 bit. Значит, действительно, есть косяк в коде нашего "MPC Audio Renderer", связанный с выводом честного 24 bit.
[merge_posts_bbcode]Добавлено: 2017-10-23 10:34:10[/merge_posts_bbcode]

P.S. А вам повезло. Теперь у вас есть звуковая карточка с поддержкой вывода честного 24 bit. :)
Помню, что вы раньше, когда писали код для "MPC Audio Renderer", хотели как раз проверить этот честный вывод, даже была отдельная тема, но проверять тогда было не на чем. Зато теперь у вас есть такая возможность. :)
Название: Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]
Отправлено: Aleksoid1978 от 23 октября 2017, 13:46:46
Как только руки дойдут - возьмусь за проверку.

А то щас на работе хватает кодинга ))
[merge_posts_bbcode]Добавлено: 2017-10-23 20:25:18[/merge_posts_bbcode]

Походу где то в конвертации 32 - 24 бита косяки

[merge_posts_bbcode]Добавлено: 2017-10-23 20:46:46[/merge_posts_bbcode]

Пробуем тестовый билд(вносил изменения на угад) - https://yadi.sk/d/jLO6a2D03NzXF2
Название: Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]
Отправлено: Evgeniy1990 от 23 октября 2017, 13:56:33
Цитата: Aleksoid1978Пробуем тестовый билд(вносил изменения на угад) - https://yadi.sk/d/jLO6a2D03NzXF2
Проверил тестовый билд. Пока не помогло, проблемы - рассинхрон и искажения звука остались.
Название: Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]
Отправлено: Aleksoid1978 от 23 октября 2017, 15:38:04
Еще одна попытка - обновил билд.
Название: Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]
Отправлено: Evgeniy1990 от 23 октября 2017, 16:00:27
Цитата: Aleksoid1978Еще одна попытка - обновил билд.
Проверил обновленный тестовый билд. Пока все также, без изменений, проблемы присутствуют.
Название: Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]
Отправлено: Aleksoid1978 от 24 октября 2017, 08:38:48
Исправлено в 3033.