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

StackOverflow https://stackoverflow.com/questions/232893

  •  04-07-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top