我正在构建一个用于教室环境的交互式语言学习应用程序。这个想法是,老师应该能够与学生交谈(=所有学生的音频流),让学生以两个或两个以上的小组相互交谈(=音频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这样的框架相关?它们是否易于集成到自定义应用程序中?它们足够灵活吗?
有没有人有这些技术的全部或其中之一的经验?也许还有其他选择,我可以看看?
非常感谢您的建议