MPC-BE forum

MPC-BE => Баг Репорт / The bug report => Тема начата: Evgeniy1990 от 23 апреля 2018, 16:58:36

Название: MPC MPEG Source - сдвиг воспроизведения после перемотки
Отправлено: Evgeniy1990 от 23 апреля 2018, 16:58:36
Описание проблемы:

На некоторых (большинстве) MPEG-TS-видео файлах проявляется сдвиг времени воспроизведения после перемотки.
Т.е. во время перемотки происходит небольшая задержка, а после того, как воспроизведение продолжится до самого конца и прогресс завершится, можно будет заметить, что воспроизведение видео еще продолжается до тех пор, пока окончательно не закончится.

Выглядит это вот так (https://yadi.sk/i/T_U19v3_3UgZbd).

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

1. Скачать этот пример (https://yadi.sk/i/FcbAmOJz3UgZZR)
2. Открыть его
3. После его открытия, перемотать его на отметку времени: 00:21:00
4. После перемотки, дождаться окончания воспроизведения

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

После того, как прогресс воспроизведения дойдет до конца, воспроизведение видео еще будет продолжаться несколько секунд, пока полностью не закончится.
Т.е. прогресс воспроизведения дошел до 00:21:40, при этом видео продолжит воспроизводится еще примерно 10 секунд. Вот это и есть сдвиг времени воспроизведения аж на 10 секунд.

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

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

P.S. Также, обратите внимание на кадр в превью на участке времени "00:21:00", при перемотке, если конечно оно включено и сравните с кадром в превью на том же участке времени "00:21:00" в "LAV Splitter Source".

Они совершенно разные, что уже говорит о том, что в нашем встроенном "MPC MPEG Source" имеется баг.
Название: MPC MPEG Source - сдвиг воспроизведения после перемотки
Отправлено: Aleksoid1978 от 24 апреля 2018, 06:33:13
Так - по перемотке, картинка одинаковая что с нашим фильтром что с LAV.
По окончанию воспроизведения - одинаковое поведение что с нашим фильтром что с LAV, время остановилось - воспроизведение продолжается. Не копал - но видимо там продолжают поступать какие-то данные.
Название: MPC MPEG Source - сдвиг воспроизведения после перемотки
Отправлено: V0lt от 24 апреля 2018, 06:34:16
Может битрейт сильно скачет?
Название: MPC MPEG Source - сдвиг воспроизведения после перемотки
Отправлено: Evgeniy1990 от 24 апреля 2018, 07:37:47
Цитата: Aleksoid1978Так - по перемотке, картинка одинаковая что с нашим фильтром что с LAV.
По окончанию воспроизведения - одинаковое поведение что с нашим фильтром что с LAV, время остановилось - воспроизведение продолжается. Не копал - но видимо там продолжают поступать какие-то данные.
После перемотки - картинка одинаковая, это верно, с этим соглашусь, а вот дальше - нет.

Я кучу раз пробовал поймать этот баг, при использовании внешнего "LAV Splitter Source", так и не поймал.
Да и по превью видно, что на одном и том же участке времени, кадры совершенно разные.

Я удивлен, что у вас такой сдвиг возникает даже с "LAV Splitter Source". Странно...
Название: MPC MPEG Source - сдвиг воспроизведения после перемотки
Отправлено: Aleksoid1978 от 24 апреля 2018, 08:41:01
По поводу перемотки и LAV - у него частенько после перемотки еще некоторое время "нет картинки". С нашим же сплиттером картинка сразу появляется. Вот и все отличия. По факту - все нормально с перемоткой.
[merge_posts_bbcode]Добавлено: 2018-04-24 15:41:01[/merge_posts_bbcode]

По поводу того что в конце не сразу отрабатывает остановка - в самом-самом конце видео-поток меняется немного, происходит реконнект к видео-рендереру и т.д. Видимо из-за этого происходит данная ситуация.
Название: MPC MPEG Source - сдвиг воспроизведения после перемотки
Отправлено: Evgeniy1990 от 25 апреля 2018, 09:33:55
Цитата: Aleksoid1978По поводу перемотки и LAV - у него частенько после перемотки еще некоторое время "нет картинки". С нашим же сплиттером картинка сразу появляется. Вот и все отличия. По факту - все нормально с перемоткой.
Согласен, с самой перемоткой все нормально.
Цитата: Aleksoid1978По поводу того что в конце не сразу отрабатывает остановка - в самом-самом конце видео-поток меняется немного, происходит реконнект к видео-рендереру и т.д. Видимо из-за этого происходит данная ситуация.
Вполне возможно...

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

Вот скриншоты кадров превью с нашим встроенным "MPC MPEG Source" и с внешним "LAV Splitter Source":

1. Скриншот кадра в превью, при использовании "MPC MPEG Source".
2. Скриншот кадра в превью, при использовании "LAV Splitter Source".

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

Почему меня так сильно это волнует? Потому что - это (возможно) проблема (баг), с которой нужно внимательно разобраться.

Интересный факт: в отличие от нашего "MPC MPEG Source", с "LAV Splitter Source"  вообще не происходит сдвига воспроизведения на отметке времени 00:21:00, как раз в том моменте, где меняется видео-поток и предположительно происходит реконнект к видео-рендереру.

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

Иначе говоря, "LAV Splitter Source" в отличие от нашего "MPC MPEG Source", заранее, еще до открытия и начала воспроизведения видео файла, каким-то образом, так сказать, - более точно вычисляет (считывает) временные метки кадров.
Название: MPC MPEG Source - сдвиг воспроизведения после перемотки
Отправлено: Aleksoid1978 от 25 апреля 2018, 10:07:38
Наоборот - LAV "хуже" перематывает данный файл. При перемотке на 00:21 с нашим фильтром картинка сразу же, с LAV - с небольшим затыком.

По поводу превью - я хз что у тебя показывается(я правда в превью не смог попасть именно в 00:21, но на 00:20:59 как и на 00:21:01) - картинка одинаковая, не зависимо от того какие сплиттеры.

Изменения видео потока происходят в самом конце, далеко после 00:21, и это не имеет никакого отношения к перемотке.

Короче - закрываем тему, она какая то надуманная. Ищем проблему там где ее нет.