C # Microsoft LifeCam HD Mjpeg захват - PullRequest
       9

C # Microsoft LifeCam HD Mjpeg захват

5 голосов
/ 02 октября 2010

У меня есть веб-камеры Microsoft LifeCam HD-5000.Согласно AMCap, камера выводит поток MJPEG со скоростью 30 кадров в секунду при 720p.Я хочу захватить каждый кадр JPEG в небольшом приложении без предварительного просмотра или распаковки / транскодирования, чтобы минимизировать использование ЦП до минимума.

Я разработчик на C #, но я новичок в DirectShow.Есть ли простой способ захватывать поток MJPEG кадр за кадром в качестве вывода с камеры в C # / .NET, не распаковывая его?

Ответы [ 3 ]

1 голос
/ 01 ноября 2010

Прежде всего, вам может не понадобиться использовать DirectShow для доступа к вашей камере.Ознакомьтесь с проектом OpenCV , в котором привязки .net доступны по адресу opencvdotnet .

. Если вы хотите перейти по маршруту DirectShow, вам понадобитсяПривязки .NET, доступные в проекте directshownet .Я полагаю, что вам лучше всего будет создать график фильтра, который будет содержать вашу веб-камеру в качестве фильтра источника и образец граббера в качестве фильтра назначения.Документация для пробоотборника находится на MSDN .Это даст вам доступ к необработанным данным.Вы также можете запросить определенный формат данных и использовать интеллектуальное соединение DirectShow, чтобы заполнить график фильтров правильными фильтрами преобразования.

При этом я определенно рекомендую OpenCV поверх DirectShow.DirectShow имеет очень общее назначение и, вероятно, делает больше, чем нужно.OpenCV можно использовать для быстрого доступа к вашей камере.Возможно, посмотрите на этот вопрос Использование веб-камеры в C # для получения дополнительной информации и ответов.

0 голосов
/ 19 июля 2011

в пакете загрузок Directshow.net, у них есть пример кода, а внутри Capture есть проект DxSnap, который подключается к веб-камере через directshow.net и снимает изображение из потока. Вы можете просмотреть его и использовать в качестве отправной точки.

0 голосов
/ 10 марта 2011

С DirectShowNet я никогда не мог получить доступ к одному кадру и показывать его как растровое изображение в любом месте.В каждом проекте я просто вижу конвертеры, прямое шоу на экране или потоковое.Как захватить поток в виде отдельных растровых кадров?

...