“Fake” DirectShow video capture device

落爺英雄遲暮 提交于 2019-11-27 03:34:27

问题


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?


回答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




回答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...




回答3:


Use the "vivek directshow capture filter". It is what you basically need. Of course this is a very basic sample code. In order your code to work with Flash Player, you need to implement all neccessary methods like SetFormat/SetMediaType and since DirectShow is rather non friendly interface, you'll spend some time on it.




回答4:


You may also want to look at Wowza Media Server, as it is much friendlier with input devices (supports RTP/RTSP/MPEG-TS H.264/AAC ingest). http://www.wowzamedia.com



来源:https://stackoverflow.com/questions/1376734/fake-directshow-video-capture-device

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!