Как я могу перехватывать видео или потоки изображений с веб-камеры и изменять их? - PullRequest
4 голосов
/ 24 октября 2008

Есть ли общий вызов API, который я могу сделать, чтобы получить дескриптор изображения или видеопотока, поступающего с веб-камеры, и заменить его собственным изображением или видео, чтобы приложения, взаимодействующие с камерой (например, MSN / Skype / Yahoo IM) увидит мое изображение вместо того, что захватывает камера?

В идеале я пытаюсь решить эту проблему общим способом, независимо от поставщика устройства или интерфейса (через стандартный стек веб-камер, который используют все эти приложения, если такая вещь существует).

Это приложение для обеспечения безопасности, которое должно иметь возможность отключать веб-камеры на клиентах, кроме как для определенных целей. Я могу остановить и запустить устройства захвата изображений с помощью кода, но в идеале я бы предпочел оставить устройство включенным и заменить захваченное изображение на графику, которая сообщает пользователю причину, по которой они в настоящее время не могут использовать свою камеру.

1 Ответ

3 голосов
/ 24 октября 2008

Большинство современных веб-камер, которые предназначены для общей работы, обычно реализуются как устройства WDM, которые затем отображаются в качестве фильтра ядра DirectShow. Затем приложения могут использовать DirectShow для работы с потоковым видео в реальном времени. Можно было бы написать собственный фильтр с высокими показателями качества, который мог бы попытаться вставить себя в любой соответствующий график, а затем изменить видеопоток на лету. Тем не менее, эта техника, безусловно, не является надежной и может быть легко обойти. Существуют также другие технологии захвата видео, которые не будут затронуты этим методом. Короче говоря, нет надежного способа сделать то, что вы хотите, для всех устройств или безопасно. Если вы просто хотите иметь возможность использовать стандартную веб-камеру и программно изменять ненадежным образом видеопоток, то вышеуказанный метод будет работать.

Смотрите здесь для общей информации DirectShow и здесь для информации о захвате видео. Сэмплы AmCap и EZRGB24 также будут хорошим местом для начала.

...