Допустим у нас веб-камера, подсоединяемся к ней через виндоузовский wm_cap драйвер, получаем дескриптор окна, куда она выводит видеопоток, дальше нам нужно получить информацию о пикселах этого изображения (я использовал GetBitmapBits т.к. быстрая функция) и обработать ее. Но это все работает только пока окно видимое, а если его изначально делать невидимым, то получить с него информацию таким способом не получается.
Пока читал доки по работе с веб-камерами нашел, что с помощью WM сообщения можно получить отдельный кадр с этой камеры, а потом либо сохранить его на диск в формате BMP, либо копировать в буфер обмена. Жесткий диск мне жалко, поэтому я пытался копировать в буфер, получалось 3-5fps, но это когда камера одна, а когда несколько - такой способ не годится.
Ищу новые способы получения видеопотока с камеры и пришел к выводу что снимать изображение с DC - наверное один из самых быстрых, но когда DC не видно, возникают проблемы.
Все это нужно для домашней системы видеонаблюдения, конкретно вышеописанное действие с обработкой скриншотов нужно в качестве детектора движения.
Дополнительную информацию по камерам см. здесь