Windows平台上的音频/视频流

时间:2010-12-13 10:29:14

标签: c++ video-streaming audio-streaming sip gstreamer

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

我现在已经完成了应用程序的教室控制部分(登录,监视,阻止......)并想要启动音频和视频部分。我一直在评估DirectX,GStreamer和SIP等几个选项,但现在我必须做出决定。

DirectX似乎是Windows平台的明显选择,但它只允许我捕获和播放音频和视频。编码/解码/网络部分我应该自己做。

GStreamer包含捕获/编码/流/保存音频和视频流的各种选项。我已经尝试了一下(ossbuild),它似乎涉及大量的试验和错误,使一些工作: - 麦克风捕获(通过directsoundsrc)会在某些计算机上产生破解噪音 - rtpL16 payloader效果不佳 - 通过网络流式传输原始音频,仅以8000的采样率工作,不高 - 接收mpeg4视频(坏I帧)时会出现很多错误,在某些计算机上比其他计算机差 我的印象是gstreamer是linux平台的主要目标。 Windows平台的开发和支持似乎有些落后。然而,它是一个强大的框架,可以节省我数月和数年的工作。

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

有没有人对这些技术中的一种或一种都有经验?也许我还能看到其他选择吗?

非常感谢您的建议

2 个答案:

答案 0 :(得分: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年下半年推出

答案 1 :(得分:0)

您是否考虑过为Big Blue Button项目做出贡献?