“假”DirectShow视频捕捉设备

时间:2009-09-04 00:54:55

标签: flash directshow flash-media-server flashmedialiveencoder

这与我提出的最后几个问题相关。

我需要从IP网络摄像头(SNC-RZ25N)到Flash Media Server获取视频。我宁愿不必使用Windows,但如果它让事情变得更容易,我会的。 (Flash Media Live Encoder是一个仅限Windows的程序。)

我已经考虑了从A点到B点的许多不同路由,但似乎最简单的方法就是使用Flash Media Live Encoder发布到Flash Media Server。然后,我必须弥合的唯一差距是获得Flash Media Live Encoder可读取的视频源。

当然,我的源是在网络上,FMLE寻找“Microsoft DirectShow兼容的视频捕获设备”。我找到了一个非免费的SDK(http://www.e2esoft.cn/vcam/vcamsdk.asp),它应该允许我欺骗这样的设备,并希望将相机流发送到FMS。

有谁知道我应该使用的其他程序或SDK?我做的事情比他们需要的更复杂吗?

4 个答案:

答案 0 :(得分:7)

将DirectShow源过滤器转换为捕获设备真的并不难。您需要在正确的类别中注册过滤器,并实现IKsProperty以在输出引脚上报告正确的类别。

http://tmhare.mvps.org/downloads.htm

查看Vivek的捕获源过滤器示例

答案 1 :(得分:2)

Roman的“IP视频源”directshow relay可以完成这项工作:http://alax.info/blog/1223

此外,如果你想自己编写,你可以根据https://github.com/rdp/screen-capture-recorder-to-video-windows-free克服vivek对flash播放器的一个错误:http://social.msdn.microsoft.com/Forums/en/windowsdirectshowdevelopment/thread/e02d7ac9-5dfe-4f9d-8ce5-4bb73badb6ed

所以基本上你需要实现IAMStreamConfig,并在引脚中设置IKsProperty,将IKsProperty查询传递给引脚,并指定PIN_CATEGORY_CAPTURE我想,也许你不需要的一些......

答案 2 :(得分:1)

使用“vivek directshow捕获过滤器”。这是你基本上需要的。当然这是一个非常基本的示例代码。为了让您的代码与Flash Player一起使用,您需要实现所有必要的方法,如SetFormat / SetMediaType,因为DirectShow是非常友好的界面,您将花费一些时间。

答案 3 :(得分:-1)

您可能还想查看Wowza Media Server,因为它对输入设备更友好(支持RTP / RTSP / MPEG-TS H.264 / AAC摄取)。 http://www.wowzamedia.com