C # захват кадра из файла wmv - PullRequest
1 голос
/ 16 марта 2009

Кто-нибудь знает, возможно ли получить кадр / изображение из видео (.wmv) в положении X с помощью C # без установки DirectX и работы в Windows 2008 (веб-сервер, который я хотел бы установить как можно меньше).

Или даже простое решение с DirectX могло бы подойти.

Хенк

Ответы [ 3 ]

6 голосов
/ 16 марта 2009

Что вам действительно нужно посмотреть, так это DirectShow , универсальная библиотека мультимедиа (аудио и видео) для Windows. Раньше он был частью DirectX, но несколько лет назад он разветвился и стал частью Windows (Platform) SDK. Я должен также отметить, что теперь, начиная с Windows Vista, он устарел в пользу Media Foundation . Из того, что я прочитал, это гораздо лучшая библиотека (DirectShow - ад для сложных задач), но, к сожалению, на данный момент нецелесообразно ориентироваться только на Media Foundation из-за отсутствия поддержки XP и более ранних версий ...

Лучшее, что я могу на самом деле сделать, - это указать DirectShow.NET , библиотеку-оболочку .NET для DirectShow, которая на данный момент довольно стабильна и хорошо протестирована. Он включает в себя различные образцы, которые должны помочь вам начать работу, но это никоим образом не будет простым решением. Кроме того, я настоятельно рекомендую вам взглянуть на эту статью CodeProject / пример приложения. Это касается как захвата видео с веб-камеры, так и воспроизведения видео с файлов (включая WMV). Немного поэкспериментируйте с этим и узнайте, как выполнять поиск кадров / захват одного кадра (я думаю, что проект может даже некоторый код для этого) должен получить то, что вам нужно. Возможно, вы даже найдете точное решение где-то в примерах DirectShow.NET этого приложения CodeProject.

Конечно, я бы предложил более простое решение, если бы мог, но вы в значительной степени застряли с ужасом, который представляет собой DirectShow на данный момент. В любом случае, удачи!

1 голос
/ 16 марта 2009

Вы должны попробовать FFmpeg .

0 голосов
/ 20 августа 2010

Взгляните на Windows Media Format SDK, который предназначен для того, чтобы предоставить вам довольно прямой доступ к кадрам внутри файла WMV (/ WMA / ASF).

http://msdn.microsoft.com/en-us/library/dd757738(VS.85).aspx

В частности, вас интересует синхронный API для чтения этих файлов (IWMSyncReader - это имя интерфейса). В WMFSDK есть несколько довольно приличных образцов; Я считаю, что наиболее интересным для вас здесь будет WMSyncReader, который покажет вам, как копаться в файле WMV и получать кадры, начиная с позиции X.

...