简体   繁体   English

Windows平台上的音频/视频流

[英]Audio/video streaming on Windows platform

I'm building an interactive language learning application to be used in a classroom environment. 我正在构建一个可在教室环境中使用的交互式语言学习应用程序。 The idea is that a teacher should be able to talk to the students (=audio stream to all students), let students talk to each other (= audio P2P) in groups of two or more, let students watch a video coming from a the DVD player or coming from a media server. 想法是,老师应该能够与学生交谈(=所有学生的音频流),让学生以两个或更多的组彼此交谈(=音频P2P),让学生观看来自DVD播放器或来自媒体服务器。 It should be possible to save the audio/video streams. 应该可以保存音频/视频流。 The teacher should also be able to monitor, take-over or block the desktop of the students. 教师还应该能够监视,接管或阻止学生的桌面。 The platform is Windows and it's a desktop application, no web application. 该平台是Windows,它是一个桌面应用程序,没有Web应用程序。 The audio delay should be as minimal as poosible. 音频延迟应尽可能小。 Optionally a student sitting at home should be supported, but it's not a high priority. 可选地,应该为坐在家里的学生提供支持,但这并不是高度优先事项。

I am now finished with the classroom control part of the application (login, monitor, block, ...) and want to start the audio and video part. 现在,我已经完成了该应用程序的教室控制部分(登录,监视,阻止...),并且想要启动音频和视频部分。 I've been evaluating several options like DirectX, GStreamer and SIP but now I have to make a decision. 我一直在评估DirectX,GStreamer和SIP等几个选项,但现在我必须做出决定。

DirectX seems an obvious choice for the Windows platform, but it only lets me capture and playback audio and video. DirectX在Windows平台上似乎是显而易见的选择,但它只能让我捕获和播放音频和视频。 The encoding/decoding/network part I should do myself. 我应该自己做编码/解码/网络部分。

GStreamer contains all kinds of options to capture/encode/stream/save audio and video streams. GStreamer包含各种选项来捕获/编码/流/保存音频和视频流。 I've experimented a bit with it (ossbuild) and it does seem to involve a lot of trial and error to make something work: - microphone capture (via directsoundsrc) produces cracking noises on some computers - rtpL16 payloader didn't work well - streaming raw audio over the network only working at a sampling rate of 8000, no higher - there are a lot of errors when receiving mpeg4 video (bad I-frame), on some computers worse than others It is my impression that gstreamer is primary targetted at linux platforms. 我已经对其进行了一些实验(ossbuild),它似乎确实需要大量的反复试验才能使某些功能正常工作:-麦克风捕获(通过directsoundsrc)在某些计算机上产生了开裂的噪音-rtpL16有效负载无法正常工作-通过网络流原始音频只能以8000的采样率工作,没有更高的采样率-在某些计算机上接收到mpeg4视频(I帧不佳)时会出现很多错误,而在某些计算机上则差于其他计算机。在linux平台上。 Development and support for the Windows platform seems to be a little behind. Windows平台的开发和支持似乎有些落后。 Nevertheless it's a powerful framework that could save me months and years of work. 但是,它是一个强大的框架,可以节省我数月和数年的工作。

SIP seems to be able to do everything I want, but it is targeted towards telephony and IM. SIP似乎可以执行我想要的所有操作,但它的目标是电话和IM。 I don't know how flexible SIP is. 我不知道SIP有多灵活。 It seems to me that the SIP layer would just be overhead as I already have a central (teacher) application that can control and setup all the streams. 在我看来,SIP层将只是开销,因为我已经拥有一个可以控制和设置所有流的中央(教师)应用程序。 The interesting parts of frameworks like opalvoip and freeswitch are the actual audio/video capture, the encoding and transmission. 诸如opalvoip和freeswitch之类的框架有趣的部分是实际的音频/视频捕获,编码和传输。 Does anyone know how these interesting parts relate a framework like gstreamer? 有谁知道这些有趣的部分如何与gstreamer之类的框架相关联? Are they easy to integrate into a custom application? 它们易于集成到自定义应用程序中吗? Are they flexible enough? 它们足够灵活吗?

Does anyone have experience with all or one of these technologies? 有没有人拥有全部或其中一项技术的经验? Maybe there are even other options I can look at? 也许我还有其他选择?

Many thanks for your advice 非常感谢您的建议

You have quite few options which might work well for you. 您选择的方案很少,可能会很适合您。 First you may use Media Foundation http://msdn.microsoft.com/en-us/library/ms697062%28v=VS.85%29.aspx this links some top level introduction. 首先,您可以使用Media Foundation http://msdn.microsoft.com/en-us/library/ms697062%28v=VS.85%29.aspx,它链接了一些顶级介绍。 You get API to manage source decoders and transcoders. 您将获得用于管理源解码器和代码转换器的API。 It provides abstracted as well as low level interface to meet the need. 它提供了抽象以及低层接口来满足需要。 Other option is to use WPF mediaelement, this link give some pointer on how to use it http://www.silverlightshow.net/items/Two-Great-WPF-Video-Samples-Online.aspx . 另一种选择是使用WPF中介元素,此链接提供了一些有关如何使用它的指针http://www.silverlightshow.net/items/Two-Great-WPF-Video-Samples-Online.aspx You may also want to review out of browser feature of Silverlight 5 http://www.microsoft.com/silverlight/future/ its currently in beta and expected to be available 2H 2011 您可能还想查看Silverlight 5的浏览器功能之外的功能,其http://www.microsoft.com/silverlight/future/目前处于测试阶段,预计将于2011年2月推出

您是否考虑过为“ 蓝色巨人”项目做出贡献?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM