WMV3 проигрывание - рывки и пропуски кадров [Исправлено]

Автор Evgeniy1990, 20 февраля 2016, 12:42:52

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

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

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

V0lt

Ну тогда снеси то, что есть, поставь LAVFilters 0.67.0-76. Затем заново добавь во внешние фильтры LAV Splitter Source с предпочтением.
И сделай скриншоты статистики EVR Custom с Vsync и без.
[merge_posts_bbcode]Добавлено: 2016-02-22 10:50:52[/merge_posts_bbcode]

Не надо на всех системах, пока хватит только Win10. Два скриншота и все!

Aleksoid1978

Да не - косяки и с LAV Source есть, но они менее заметны.
И когда происходит всплеск - вот что я вижу в debug логе:
[8100] mpc-be.exe(tid 27b0)    33357 : CStreamSwitcherInputPin::Receive: cbBuffer > actual.cbBuffer

Из-за этого и рывки :)
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

V0lt

Aleksoid1978
Рывки там по всему файлу, т.к. 15 fps. А вот когда реально плохо, то получаю 1-3 fps.

Evgeniy1990

Цитата: Aleksoid1978Вот проверяем в связке с WM ASF Reader - https://yadi.sk/d/pw-WVIRlpHBUi
Проверил тестовый билд. Проверил его пока только на Windows 8.1 + ATI Radeon HD 5770.

WM ASF Reader + MPC Video Decoder (Софт/DXVA2) + Без VSync + EVR Custom - нормально.
WM ASF Reader + MPC Video Decoder (Софт/DXVA2) + VSync + EVR Custom - нормально.

LAV Splitter Source + MPC Video Decoder (Софт/DXVA2) + Без VSync + EVR Custom - нормально.
LAV Splitter Source + MPC Video Decoder (Софт/DXVA2) + VSync + EVR Custom - нормально.

Исходя из данного теста, можно смело сказать, что ваше исправление помогло устранить рывки и пропуски кадров во время воспроизведения этого видео файла, при использовании системного фильтра-источника: WM ASF Reader.
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

Причину срыва с LAVSource я указал. В связке с WM ASF Reader я исправил, билд выше постом.
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Вот проверяем в связке с WM ASF Reader - https://yadi.sk/d/pw-WVIRlpHBUi
Проверил тестовый билд. Проверил на Windows 10 + ATI Radeon HD 5770.

WM ASF Reader + MPC Video Decoder (Софт/DXVA2) + Без VSync + EVR Custom - нормально.
WM ASF Reader + MPC Video Decoder (Софт/DXVA2) + VSync + EVR Custom -нормально.

LAV Splitter Source + MPC Video Decoder (Софт/DXVA2) + Без VSync + EVR Custom -нормально.
LAV Splitter Source + MPC Video Decoder (Софт/DXVA2) + VSync + EVR Custom - нормально.

Вывод: теперь аналогично, как и на Windows 8.1, при использовании системного фильтра-источника WM ASF Reader, этот видео файл стал воспроизводиться нормально.

P.S. В обеих операционных системах (Win8.1 и Win10) использовались драйверы "AMD Catalyst 15.7.1".

Осталось проверить на XP и на NVIDIA GeForce.
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

Так - WM ASF Reader победили.
По рывкам в связке с LAV Source - это из-за нашего аудио-декодера(с системным или LAV такого нет).

Вот тестовый билд - https://yadi.sk/d/qfgPHInqpHUmh

что сделал(для v0lt) - увеличил размер cbBuffer(значение взял в LAV):
pProperties->cbBuffer = 6144000; // 192KHz 8ch 32bps

Понятно что значение может и не оптимальное - зато избавляет от подобных проблем.
[merge_posts_bbcode]Добавлено: 2016-02-22 19:48:55[/merge_posts_bbcode]

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

V0lt

У меня рывков в связке с LAV Source не наблюдается.

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

V0lt, Aleksoid1978, для вас прилагаю ссылку на видеозапись с рывками и пропусками кадров:
https://yadi.sk/i/zjeNO3IMpHtGh
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

Я пока вижу следующее. Начинается с блока размером 131072. Т.к. это больше 115200, то выделяется буфер на 50% больше необходимого, т.е. 196608.
Я мониторил максимальное значение буфера и получил такую картину: 131072, 147456, 163840, 180224, 196608. Последнее значение хоть и впритык, но по факту не превышает исходного размера буфера, и буфер повторно перераспределяться не должен.
Вывод: Проблем с декодером на этом файле быть не должно.

Как оказалось проблема в переключателе. Нужно поправить выделение буфера по аналогии с декодером. Поправил в r1200.

PS: Самый большой зафиксированный мною буфер был равен 393216 байтам, но там он не скакал как на этом файле.

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

V0lt

Я, честно говоря, не вижу никакого скачка. Буфер выделяется в самом начале, откуда скачки то?

Можешь попробовать вместо стандартного 131072 влепить 262144 и посмотреть, что будет.

Evgeniy1990

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

Первое место - прямо в самом начале воспроизведения
Второе место - примерно в середине
Третье место - ближе к концу воспроизведения (практически в конце)
[merge_posts_bbcode]Добавлено: 2016-02-22 18:30:20[/merge_posts_bbcode]

V0lt, Aleksoid1978:

Проверил билды: первый тестовый, второй тестовый и SVN 1200 на Windows XP.

Тест: NVIDIA GeForce GTX 465, VMR-9 RL/VMR-7 WL.

Результаты:

1. Первый тестовый билд: mpc-be.exe_WM_ASF_20160222

WM ASF Reader + MPC Video Decoder (DXVA1/Soft) VMR-9 RL/VMR-7 WL - рывки
LAV Splitter Source + MPC Video Decoder (DXVA1/Soft) VMR-9 RL/VMR-7 WL - рывки

2. Второй тестовый билд: mpc-be.exe_WMV_LAVSource_20160222

WM ASF Reader + MPC Video Decoder (DXVA1/Soft) VMR-9 RL/VMR-7 WL - нормальное воспроизведение
LAV Splitter Source + MPC Video Decoder (DXVA1/Soft) VMR-9 RL/VMR-7 WL - нормальное воспроизведение

3. SVN build r1200:

WM ASF Reader + MPC Video Decoder (DXVA1/Soft) VMR-9 RL/VMR-7 WL - нормальное воспроизведение
LAV Splitter Source + MPC Video Decoder (DXVA1/Soft) VMR-9 RL/VMR-7 WL - нормальное воспроизведение

Выводы:

Aleksoid1978, ваше изменение, сделанное во втором тестовом билде, помогло устранить проблему с рывками.
V0lt, ваше изменение, сделанное в SVN r1200, также помогло устранить проблему с рывками.

[merge_posts_bbcode]Добавлено: 2016-02-22 19:29:35[/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.