首先,一些背景:
我正在开发Silverlight 3应用程序,并希望添加对实时流媒体的支持(网络摄像头+麦克风作为输入)。遗憾的是,Silverlight无法访问网络摄像头或麦克风本身,因此我需要创建一个独立的应用程序来建立媒体流。我想Silverlight最适合使用Microsoft技术,所以我想使用带有WMV / WMA编码的ASF格式。
在做了一些研究后,我认为我可以做到:
我打算使用C#,虽然这可能没什么区别,因为我必须使用一些C ++库的包装器(比如DirectShow.Net或SlimDX)。
不幸的是,我几乎没有处理媒体流的经验。所以我的第一个问题是,是否有可能以我描述的方式进行流式传输?
如果有可能,这是一种明智的方式,还是应该考虑使用一些不同的库/框架?
答案 0 :(得分:1)
虽然使用DShow和/或WMF SDK会给你最大的灵活性,如果你的唯一目标是将视频/音频流式传输到Silverlight,你可以使用类似Windows Media Encoder 9的东西,或者你可以使用新的Expression Encoder 。两者都支持将实时网络摄像头和麦克风流式传输到Windows Media Server发布点,或者它可以在本地端口上托管流。两者都有一个可通过.NET获得的SDK(WME使用COM互操作,Encoder具有原生.NET API)此流与Silverlight和Windows Media Player兼容。