[Из песочницы] Захват видео с камеры и передача его по сети
Предисловие Не так давно, возникла необходимость захвата видео с web камеры и передавать его по сети используя .Net. Так как с подобной задачей я столкнулся впервые, то первым делом начал искать информацию по этому вопросу. Как выяснилось, что в чистом .Net нет поддержки работы с web камерами. Перебрав несколько различных библиотек, свой выбор остановил на Aforge.net. Aforge.net — это фреймворк для решения целого ряда задач, из которого нам понадобится библиотеки AForge.Video.Захват изображения Для захвата видео с устройства видео ввода существует класс AForge.Video.DirectShow.VideoCaptureDevice. Ему необходимо задать моникер устройства с которого будет происходить захват. Так же необходимо задать обработчик события NewFrame. Это событие возникает каждый раз, когда с устройства будет получен новый кадр, который и передается в обработчик в виде объекта Bitmap, где его уже можно обработать: private void VideoSourceNewFrame (object sender, AForge.Video.NewFrameEventArgs eventArgs) { var img = (Image) eventArgs.Frame; using (var ms=new MemoryStream ()) { img.Save (ms, ImageFormat.Jpeg); //Сохраняем изображение в массив байт, для последующего формирования mjpeg _bufImage = ms.ToArray (); } } Читать дальше →