Wasapi Exclusive искажения при ускорении/замедлении [Исправлено]

Автор Evgeniy1990, 20 октября 2017, 19:43:01

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

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

Evgeniy1990

Тема: "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х и т.д. ниже

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

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

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

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

Цитата: V0ltРассинхрона не заметил. Есть искажения звука из-за алгоритма изменяющего скорость звука с сохранением тональности.
У меня есть рассинхрон, причем стоит скорость 1.2х, а звук мчится вперед так, что скорость словно гораздо выше.
Отсюда и рассинхрон, т.е. звук бежит быстрее кадров видео.
И в обратную сторону - также. Скорость 0.5х, а звук все-равно бежит быстрее видео.
По поводу тональности - согласен.

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

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

Да и сам звук, при ускоренном воспроизведении, совершенно неестественный, трещащий и режущий какой-то.
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Проверил - рассинхрона нет, скорость изменяется как положено. Искажений нет.
В том-то и дело, что это только у вас. У меня совершенно не так. Проверял на внешней аудиокарте "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 - аналогично рассинхрон.  

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

А вот в моем случае, если при этом используется "побитовый вывод", который у меня работает некорректно, то при ускоренном воспроизведении, при переключении с одного режима на другой, просто полностью пропадает звук.
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Ну ты можешь отправить мне свою внешнюю звуковушку, я проверю и если так оно и есть - постараюсь исправить. А так что - исправлять то и нечего если я не могу воспроизвести.
Проверьте пожалуйста еще одну проблему, которую я описал вам выше. Думаю, что у вас получится ее воспроизвести.

Если, при ускоренном воспроизведении, переключиться с режима Exclusive на Shared, будет также просто рассинхрон.
И обратно с 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.

Aleksoid1978

Ну сразу логичный вопрос - а нафига вообще переключаться на лету с одного режима на другой, да еще и на ускоренном воспроизведении ?? :)

P.S. Покажи статус рендерера при побитовом выводе и без, есть одна мысль.
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Ну сразу логичный вопрос - а нафига вообще переключаться на лету с одного режима на другой, да еще и на ускоренном воспроизведении ?? :)
Ну ведь вы же, в свое время, сделали специально такую возможность переключения на лету между двумя режимами WASAPI - Shared и Exclusive, при обычном воспроизведении (обычной скорости 1.0х), я думаю, что для удобства, особенно это удобно для тестирования, не нужно каждый раз перезапускать видео файл. :)

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

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

Пожалуйста:

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

Статус рендерера, без него: https://yadi.sk/i/5S-aVhSz3NwbQ4
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

Ну как я и предполагал, косяк ускоренного воспроизведения при работе с 96 частотой, наверняка либо какой-то баг на стороне ffmpeg фильтра, или изменения работы.

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

По поводу рассинхрона - посмотрю как будет время, все там не просто.
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Ну как я и предполагал, косяк ускоренного воспроизведения при работе с 96 частотой, наверняка либо какой-то баг на стороне ffmpeg фильтра, или изменения работы.

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

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

Хорошо, я тогда соберу Debug-билд, поускоряю, в общем, сделаю прогонку, после чего - выложу вам Debug-лог.
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

Проверил у себя при выводе 96000 - все отлично, никаких искажений/рассинхрона.

По поводу рассинхрона при ускоренном воспроизведении и смены типа вывода - есть такое, посмотрю.
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Проверил у себя при выводе 96000 - все отлично, никаких искажений/рассинхрона.

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

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

Лог №1: https://yadi.sk/i/BUDM62sL3NwcxZ
Лог №2: https://yadi.sk/i/vhfSUuiR3Nwcxo
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

Цитата: Evgeniy1990
Цитата: Aleksoid1978Проверил у себя при выводе 96000 - все отлично, никаких искажений/рассинхрона.

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

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

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

Ничего подозрительного. Так что хрен его знает - у меня на 96000 все отлично с ускорением/замедлением.
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Ничего подозрительного. Так что хрен его знает - у меня на 96000 все отлично с ускорением/замедлением.
Очень странно, ибо проблемы присутствуют.

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

По поводу рассинхрона при ускоренном воспроизведении и смены типа вывода - есть такое, посмотрю.
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.