AVI Decompressor внезапно перестал декодировать видео с помощью DirectShow Graphedit

У меня возникла проблема с одним из приложений, использующих фильтр AVI Decompressor. Ошибка возвращает, что нет подходящего декомпрессора, который можно было бы найти ... однако он работал каждый день в течение последних нескольких месяцев. Я думал о перерегистрации Quartz.dll, но не повезло.

Затем я взломал Graphedit и обнаружил, что могу загрузить фильтр в график, но больше не могу подключиться.

Кто-нибудь сталкивался с этим сценарием раньше? Любая помощь будет принята с благодарностью.

Ваше здоровье.

РЕДАКТИРОВАНИЕ Если проблема в реестре, то простое восстановление системы поможет вернуть реестр в прежнее состояние. Сейчас уже слишком поздно выяснять ошибку, поскольку она произошла на стороне клиента, и мы решили восстановить окна, чтобы они снова заработали. Но могут быть реализованы проверки избыточности, такие как автоматические точки восстановления, встроенные в приложение, чтобы исправить проблему, если она когда-либо возникнет снова. Кто-нибудь думает, что это сработает?


person bl4kh4k    schedule 24.07.2012    source источник
comment
Никто не следит за идеей реестра ... но ответ Романа ниже показал несоответствия в реестре, поэтому я помечаю его ответ как проверенный. Ваше здоровье.   -  person bl4kh4k    schedule 28.07.2012


Ответы (1)


AVI Decompressor Filter — это фильтр адаптера, который делает кодеки VFW/VCM доступными для DirectShow. Тот факт, что вы можете вручную добавить фильтр на график, не означает, что он будет полезен. Этот фильтр обычно не работает таким образом, и в большинстве случаев он добавляется графом фитлера как часть Интеллектуальное подключение.

В вашем случае важен тип носителя, который вы преобразовали AVI Decompressor Filter во что-то более подходящее для дальнейшей обработки или представления. Тип носителя может быть не тем, который вы ожидали, или базовый кодек VCM исчез, и VI Decompressor больше не может его подобрать.

В Windows 7 AVI Decompressor использует внутри себя msyuv.dll, то есть «Microsoft UYVY Video Decompressor». Возможно, что-то не так с ним в вашей системе. Возможно, вы захотите проверить его регистрацию в качестве кодека VFW:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32]
VIDC.UYVY="msyuv.dll"

В 64-битной ОС вам, возможно, придется взглянуть на другой ключ, влияющий на 32-битные приложения в 64-битной ОС:

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Drivers32]
VIDC.UYVY="msyuv.dll"
person Roman R.    schedule 24.07.2012
comment
Тип медиа не менялся последние несколько месяцев. Источником захвата является Decklink, который отлично работает с собственным программным обеспечением BlackMagic и всегда отлично работал в самом приложении. Он подтягивает источник через SDI. - person bl4kh4k; 25.07.2012
comment
Итак, что такое тип носителя? Если мне не изменяет память, платы Decklink — по крайней мере, некоторые — предоставляют типы носителей UYVY и HDYC. Первый рендерится через кодек VFW, через декомпрессор AVI. Второй - я думаю, что для рендеринга нужен дополнительный кодек, такой как Decklink. - person Roman R.; 25.07.2012
comment
Используемый тип мультимедиа — UYVY, и он подключается к декомпрессору AVI перед рендерингом в EVR. - person bl4kh4k; 25.07.2012
comment
См. выше о Microsoft UYVY Video Decompressor, используемом внутри AVI Decompressor. - person Roman R.; 25.07.2012
comment
Обязательно проверю... есть ли смысл брать еще одну систему-дубликат, сохранять реестр и загружать в ту систему, которая в данный момент дает сбой? - person bl4kh4k; 25.07.2012
comment
VIDC.UYVY больше не был установлен на msyuv.dll... он был установлен на dll blackmagic... что очень странно, и не знаю, как это произошло. Однако переключение обратно не решило проблему. - person bl4kh4k; 25.07.2012
comment
Альтернативные декодеры могут быть быстрее декодеров от Microsoft, но чаще всего они вызывают проблемы с совместимостью... Если вы изменили это, а ваша ОС 64-разрядная, то также обратите внимание на HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Drivers32. Возможно, вам потребуется перезагрузка, чтобы изменения вступили в силу. - person Roman R.; 25.07.2012
comment
Изменил это, перезагрузил, но все равно не повезло. В идеале... если была создана точка восстановления (в данном случае ее не было)... и мы восстановили ее с той даты, когда она работала... будет ли это все, что нужно? - person bl4kh4k; 25.07.2012