forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Delphi (http://forum.boolean.name/forumdisplay.php?f=66)
-   -   Скриншот с веб-камеры в память. (http://forum.boolean.name/showthread.php?t=14344)

Baisangur 04.03.2011 15:11

Скриншот с веб-камеры в память.
 
Доброго времени суток!
Хочу поинтересоваться, возможно ли с помощью WinAPI, точнее avicap32.dll, сделать скриншот с устройства видео-захвата, в моем случае веб-камеры, сразу в отведенный для этого участок памяти?
Т.е. мне известны два способа на данный момент - это сохранение в bmp файл на диск и сохранение в буфер обмена, если честно для проекта в котором это задумывается использовать, оба этих способа слишком извращенные и на мой взгляд не правильные. Требуется покадровая обработка в реальном времени.

moka 04.03.2011 15:52

Ответ: Скриншот с веб-камеры в память.
 
Учитывая документацию из msdn по поводу Video for Windows (avicap32.dll), то можно.

В DirectShow если работаешь с фильтрами, это делается достаточно не сложно.
Фильтр источника видео, пускаешь через Smart Tee, один из выходов соединяешь с SampleGrabber'ом, другой с VideoRender'ом, чтобы превью показать.
Буффер из SampleGrabber'а можно вытаскивать непрерывно, конечно fps будет зависить от возможностей железа и размера картинки. Если нужна обработка изображения непосредственно на шейдерах. Есть много различных фильтров, которые работают сразу в графе фильтров, таким образом не нада будет копировать данные туда-сюда.

Если ты используешь DirectShow тогда дай знать, если нет, то низкого доступа к фильтрам получить не думаю что удастся..

Baisangur 04.03.2011 23:22

Ответ: Скриншот с веб-камеры в память.
 
MoKa, спасибо за наводку, кажется мне есть чего почитать теперь. В подробности с работой с VFW пока не вдавался, казалось что юзая "стандартные" решения можно добиться необходимого результата, на деле все оказывается сложнее.

moka 05.03.2011 00:50

Ответ: Скриншот с веб-камеры в память.
 
Baisangur, стандартные решения обычно для простых вещей. Если нужна скорость, кодеки, совмещения потоков в файл или ещё чего, то да, нужно делать фильтрами.
Я кстати с VFW не работал, только с "голеньким" DirectShow.
Вот тут в гугле нашёл, вроди как то что надо :)
http://www.vwlowen.co.uk/directshow/page01.htm

Будут вопросы, задавай, помогу чем смогу.


Часовой пояс GMT +4, время: 07:54.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot