получить конкретный видеокадр - PullRequest
1 голос
/ 21 апреля 2011

Я просматривал здесь (переполнение стека), пытаясь найти стабильный способ получить изображения (массив пикселей) из видеофайлов в целом. В C # .NET я нашел:

http://www.codeproject.com/KB/graphics/ExtractVideoFrames.aspx

Это почти то, что я ищу, но я получаю эту ошибку:

Could not load file or assembly 'Interop.DexterLib,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'
or one of its dependencies. An attempt was made to load
a program with an incorrect format.

Все компилируется нормально, но при запуске .net среда выполнения не похожа на 'Interop.DexterLib', я дважды проверил, что он находится в корзине с exe, и проект правильно их связал и прекрасно компилирует.

После некоторого гугла ошибка, похоже, связана с x86 .dll и его запуском в 64-битных операционных системах. Чтобы отрицать это, они рекомендовали сборку для x86, VS2010 не имеет этой опции, поскольку они заменили ее на «Любой процессор»? Это проблема? и есть ли хороший способ это исправить?

Есть ли лучший способ получить видеокадры в C #, я смотрел на DirectShow.Net и не могу понять, что происходит в прямом шоу. Мне еще предстоит найти такое простое решение (если оно будет работать).

Моя конечная цель - получить кадры из 2 видеофайлов в байтовых массивах ... изменить их, а затем сохранить их в новом видео. Перво-наперво это получение видео в память.

Ответы [ 3 ]

0 голосов
/ 21 апреля 2011

Что-то не так с вашей Visual Studio.Мой 2010 имеет следующие параметры: enter image description here

0 голосов
/ 22 апреля 2011

MediaDet из этой статьи является частью DirectShow. Просто используйте DirectShow.NET, и ваши проблемы со связью исчезнут. Если вам нужно сохранить измененные кадры в другое видео, вам нужно будет построить график DirectShow, с помощью только MediaDet вам это не поможет.

0 голосов
/ 21 апреля 2011

Вы можете использовать corflags, чтобы сделать вашу 64-битную сборку совместимой с платформой x86

Описание Corflags

...