2010-12-13 161 views
2

我正在构建一个用于教室环境的交互式语言学习应用程序。这个想法是,老师应该能够与学生交谈(=所有学生的音频流),让学生以两个或两个以上的小组相互交谈(=音频P2P),让学生观看来自DVD播放器或来自媒体服务器。应该可以保存音频/视频流。教师还应该能够监视,接管或阻止学生的桌面。该平台是Windows,它是一个桌面应用程序,没有Web应用程序。音频延迟应该尽可能小。可选择坐在家中的学生应该得到支持,但不是高优先级。Windows平台上的音频/视频流

我现在完成了应用程序的课堂控制部分(登录,监控,块,...),并希望开始音频和视频部分。我一直在评估DirectX,GStreamer和SIP等几个选项,但现在我必须做出决定。

的DirectX似乎针对Windows平台的不二之选,但它只是让我捕捉和播放音频和视频。编码/解码/网络部分我应该自己做。

的GStreamer包含了各种选项,以捕捉/编码/流/保存音频和视频流。我已经尝试了一下它(ossbuild)和它似乎涉及大量的试验和错误,使一些工作: - 麦克风捕获(通过directsoundsrc)产生在某些计算机 开裂的声音 - rtpL16装货没有工作以及 - 流在网络上的原始音频仅在8000的采样率,没有更高的 工作 - 有很多接收MPEG4视频(坏I帧)时的错误,就比其他一些 糟糕的电脑我的印象gstreamer主要针对Linux平台。对Windows平台的开发和支持似乎有点落后。不过,这是一个强大的框架,可以为我节省数月和数年的工作。

SIP似乎是能够做一切我想要的,但其目标是电话和IM。我不知道SIP有多灵活。在我看来,由于我已经有了一个可以控制和设置所有流的中央(教师)应用程序,所以SIP层将会开销很大。像opalvoip和freeswitch这样的框架的有趣部分是实际的音频/视频捕获,编码和传输。有没有人知道这些有趣的部分如何与gstreamer这样的框架相关?它们是否易于集成到自定义应用程序中?它们足够灵活吗?

有没有人有这些技术的全部或其中之一的经验?也许还有其他选择,我可以看看?

非常感谢您的建议

回答

0

您有很多选择可能适合您。 首先你可以使用Media Foundation http://msdn.microsoft.com/en-us/library/ms697062%28v=VS.85%29.aspx这个链接一些顶级的介绍。您可以使用API​​来管理源解码器和代码转换器。它提供了抽象的和低级的接口来满足需要。 其他选项是使用WPF mediaelement,这个链接给出了一些关于如何使用它的指针http://www.silverlightshow.net/items/Two-Great-WPF-Video-Samples-Online.aspx。 您还可以查看出的Silverlight 5 http://www.microsoft.com/silverlight/future/的浏览器功能,其目前处于测试阶段,预计将于2011年下半年