Описание ситуации:
Существует огромное количество "особых" интерлейсных видео файлов в формате "MPEG-2 PS/TS". Но, к сожалению, на видеокартах от AMD, в режиме аппаратного ускорения, они воспроизводятся некорректно. Понятно, что проблема на стороне драйверов, а не на стороне плеера или самого DXVA2-декодера. Именно поэтому, я и решил создать данную тему, в данном разделе, чтобы обсудить данный вопрос - возможно ли реализовать корректное воспроизведение, в режиме аппаратного ускорения, для данной "особой" группы видео файлов со стороны нашего кода проекта?
Уже понятно, что проблема не в DXVA2-декодере, а в видео-драйвере, поскольку при использовании внешних видео-декодеров: "LAV Video Decoder" и "Microsoft DTV-DVD Video Decoder", абсолютно аналогичная ситуация.
Найти видео-драйвер, на котором бы такие "особые" видео файлы воспроизводились бы корректно в режиме аппаратного ускорения - просто невозможно! Его просто не существует. Можно перебрать десятки, сотни различных версий драйверов, но смысла в этом никакого нет, поскольку это уже было сделано и проверено заранее.
Симптомы на любом видео декодере, в режиме аппаратного ускорения, строго одни и те же:
1. Половина кадров видео (видео разрезано пополам), верхняя часть - просто "черный экран".
2. Присутствует мерцание изображения
3. Присутствует гребенка, т.е. совершенно не работает аппаратный деинтерлейс.
В качестве примера, прилагаю известный всем видео файл (https://yadi.sk/i/VlY3KARHmJ3y_w).
Также прилагаю видеозапись некорректного воспроизведения (https://yadi.sk/i/cuQuJLqZDVpwgw).
По поводу данного видео файла: в свое время, при восстановлении корректной работоспособности DXVA1-декодера, был реализован и добавлен специальный код, благодаря которому, в режиме DXVA1, данный видео файл и ему подобные, стали воспроизводиться полностью корректно, даже с аппаратным деинтерлейсом.
Вот и хотелось узнать, возможно ли сделать нечто аналогичное, или подобное, только теперь уже для DXVA2-декодера? Или же для DXVA2-декодера сделать это не удастся?
Просто DXVA2-декодер работает строго по спекам, а это значит, что любое изменение с нашей стороны, т.е. со стороны кода нашего проекта, может нарушить его корректную работу, что естественно нехорошо и не хотелось бы такое получить в дальнейшем.
Я знаю про что речь, про какие типы MPEG2 - у них каждый кадр состоит из 2-х интерлейс "полукадров", в отличии от большинства видео, в которых каждый кадр это и есть интерлейс "полукадр".
И тут НИЧЕГО не поделать. Я даже создавал тикет на AMD по данному факту кучу лет назад ...
Речь об этом?
Структура изображения : Frame
vs
Структура изображения : Field
Добавлено: 2020-04-04 14:07:12
PS: У меня играет нормально. Win7Sp1 x64, GTX 950, EVR-CP и MPC VR.
Баг только на AMD.
V0lt,
ЦитироватьPS: У меня играет нормально. Win7Sp1 x64, GTX 950, EVR-CP и MPC VR.
Проблема только на AMD-видеокартах!.
У меня на NVIDIA GTX 1050 Ti данный "особый" видео файл и ему подобные воспроизводятся также нормально, как и у вас.
Evgeniy1990
Каких еще особых? "Структура изображения" по MediaInfo отличается или нет?
Да-да, речь про "Структура изображения", которые Field - на AMD декодируются с ошибками.
V0lt,
ЦитироватьКаких еще особых? "Структура изображения" по MediaInfo отличается или нет?
Именно та структура изображения, которая
Field. Вот именно эта структура некорректно работает в аппаратном режиме на видеокартах от AMD.
Те видео файлы, которые имеют структуру изображения -
Frame, воспроизводятся корректно (нормально) на видеокартах от AMD.
Aleksoid1978,
Странно, что DXVA-декодер совсем не ругается. DXVA2_SampleFormat в него передается?
Да с данными все ровно, косяк именно внутри AMD DXVA декодера.