65.9K
CodeProject is changing. Read more.
Home

FxEngine Plugin to Stream Video Data from a Webcam

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.44/5 (6 votes)

Mar 13, 2008

GPL3
viewsIcon

59371

downloadIcon

2072

This tip shows how to build an FxEngine plugin to stream video data from a webcam

Screenshot

Introduction

The purpose of this tip is to help to work on video stream using a simple plugin approach. Instead of using a full DShow architecture, I use the FxEngine Framework from SMProcess.

My approach was the following: create a video source plugin using DShow's components and process video stream with one or several processing plugins using C++.

Background

The plugin is based on the StillCap sample from DShow SDK (SDK\Samples\Multimedia\DirectShow\Editing\StillCap). There is an excellent article by Chesnokov Yuriy about this.

Using the Code

Firstly, I used the Framework to build the plugin (Out pin, plugin's parameter, Win32 dialog and plugin interface). I just read the sample code and the user's guide that comes with the Framework installation.

Secondly, I used DShow programming to get video data.

The video capture is done by:

  • Creating an ISampleGrabber object to receive video data
  • Retrieving the default video capture device using GetDefaultCapDevice() method
  • Initializing video capture device using the InitVideoCapture() method

Using the Plugin

As shown in the screenshot above, I used the plugin in the Framework Editor to stream video data into several RGB splitters.