"Fake" DirectShow video capture device

12,821

Solution 1

It's really not that hard to turn a DirectShow source filter into a capture device. You need to register the filter in the right category, and implement IKsProperty to report the right category on the output pin.

Take a look at Vivek's capture source filter example at http://tmhare.mvps.org/downloads.htm

G

Solution 2

Roman's "IP Video source" directshow relay may do the job: http://alax.info/blog/1223

Also if you want to write you own, you could base off https://github.com/rdp/screen-capture-recorder-to-video-windows-free it overcomes one bug vivek's has with flash player: http://social.msdn.microsoft.com/Forums/en/windowsdirectshowdevelopment/thread/e02d7ac9-5dfe-4f9d-8ce5-4bb73badb6ed

So basically you need to implement IAMStreamConfig, and IKsProperty set in the pin, pass IKsProperty queries down to the pin, and specify PIN_CATEGORY_CAPTURE I guess, maybe some of that you don't need...

Share:
12,821
Hadrien TOMA
Author by

Hadrien TOMA

Updated on June 16, 2022

Comments

  • Hadrien TOMA
    Hadrien TOMA almost 2 years

    This is tangential to the last few questions I've asked.

    I need to get video from an IP webcam (SNC-RZ25N) to Flash Media Server. I'd rather not have to use Windows, but if it makes things easier, I will. (Flash Media Live Encoder is a Windows only program.)

    I've considered many different routes from point A to point B, but it seems like the easiest might be to just use Flash Media Live Encoder to publish to Flash Media Server. Then the only gap I have to bridge is getting a video source readable by Flash Media Live Encoder.

    Of course, my source is on the network and FMLE looks for a "Microsoft DirectShow compatible video capture device". I have found a not-free SDK ( http://www.e2esoft.cn/vcam/vcamsdk.asp ) that should allow me to spoof such a device and hopefully send the camera stream to FMS.

    Does anyone know of a different program or SDK I should be using? Am I making things more complicated than they need to be?