使用高质量video流开发video聊天应用程序

我在一家公司工作,我们正在开发现有应用程序的video聊天支持。 我已经看过各种解决方案了

  1. 使用Managed Direct节目在C#中进行video捕获和流式传输
  2. 在代码项目中的一些代码示例我们拍摄图像并通过网络传递(我称之为粗略的解决方案,因为这会占用大量带宽。
  3. 从头开始编写压缩算法并使用它来压缩 – 解压缩video。

现在的挑战是我们希望实现非常高质量的video流,并且容器应用程序使用C#.NET编码

这是我到目前为止提出的。 流数据的网络逻辑用C#编写,video压缩用VC ++编写,并尽可能使用pinvoke或CLI调用VC ++ dll。

我正在寻找一个在这个领域更有经验的人,他可以建议我,如果我正确或者仍然可以改进。

最终目标是高质量的video流。 编解码器可以是h.2633,h.264等任何东西。

我已经使用了几种方法轻松地使用.net进行video流/会议,而无需深入了解directshow。 (好吧,挖一些,但不深:)

1)使用普通的Windows Media Encoder组件。 它与Windows Media Encoder SDK中的示例一起记录。 适用于任何高分辨率流媒体,但延迟对于实时聊天来说太大了(最多0.5-2秒)。 Modern Express Encoder SDK的另一种选择。

2)Microsoft Research ConferenceXP http://cct.cs.washington.edu/全function会议API,包括应用程序流。 它们太低级别的Windows Media编码filter并将它们包装到托管代码中。 效果很好。 易于定制。 看起来有点放弃了。

3)最高版本1.3的Microsoft RTC客户端 – Windows信使的核心。

专业人士:来自Microsoft的托管样本,良好的文档,可靠的性能,可自由再分发,包含微软兼容(良好)的SIP堆栈。 像Emblaze VCON这样的主要会议供应商在近期有一些基于它的解决方案,目前还不确定,但我知道Tandberg授权Microsft的VC-1。

缺点:版本高达1.3仅支持h261-h263video。 支持VC-1(h264)编解码器的现代版本不允许直接无服务器ip-ip连接。 它需要Microsoft Live Communications服务器。 较新版本的SDK不能很好地涵盖video会议通话。

http://msdn.microsoft.com/en-us/library/ms775892(VS.85).aspx

请告诉我们您选择的平台。 顺便说一句,我甚至将ConferenceXPvideortp部分与RTC 1.3语音/ SIPfunction结合使用,以提高video质量,因此您可以在此处选择多种托管技术。 另一件事是Live Meeting,我没有机会好好看看。

省去麻烦并使用VLC。 有一些不错的.NET包装器( http://forum.videolan.org/viewtopic.php?f=32&t=52021&start=30

我们正在将C#和VLC用于IPTV网络。 我们通过Windows XP服务器上的Osprey-450video捕获设备从DISH网络卫星上获取输入。 从那里,我们有一个.NET服务器组件,我们用C#编写,在后台使用VLC(在.NET中启动单独的进程来控制vlc.exe实例)。 VLC流程通过网络对转码和流信号进行转码(.h264或MPEG-4,我们已经成功完成了两者)。

在客户端,我们有一个C#WinForm应用程序,它使用嵌入式VLC Viewer来查看多播信号。 该应用程序主要用于指挥和控制。 当我们的机顶盒连接到我们的电视解码并显示流时,会发生多播信号的真实使用。

我们认为我们也必须编写自己的DirectX编码器,但不要遇到麻烦。 VLC工作得非常好,并且有足够的C#支持非常有用。 如果您对实施有具体问题,请随时给我发电子邮件。

您应该查看Ucentrik SDK。 此SDK将使您能够在应用程序中集成富媒体function,如video,音频,聊天,远程桌面共享和控制以及video录制。 支持的video编解码器是VP8(Google),Theora和x.264。 此外,富媒体流量封装在HTTP协议中,使其能够遍历启用正常Web流量的防火墙。 此技术是完全免费的,您可以下载SDK并请求API密钥,以便您可以在不投入任何时间设置基础架构的情况下进行评估。 在接下来的几个月中,我们将发布一个服务器组件,以便您可以下载并托管您自己或客户的基础架构。 该技术支持1对多连接,这意味着您可以根据需要创建video会议。 这些function是高度模块化的,因此您可以使用相同的SDK集成video或音频或桌面共享或技术组合……您应该在此处请求SDK:www.ucentrik.com。 此外,还有一些video: http : //www.youtube.com/user/ucentrik

祝好运。

Ucentrik刚刚发布了一个集成了CTX技术的开源呼叫中心应用程序。 该呼叫中心应用程序实现了CTX API提供的video,音频,桌面/应用程序共享(带控制),文本聊天function。 该应用程序还包括一些业务逻辑,专门用于提供将呼叫路由到可用代理或具有特定技能集的能力。 该项目可在http://vcca.codeplex.com上获得 – 请注意,您需要访问Ucentrik CTX SDK,可在Ucentrik网站(www.ucentrik.com)上查询。 祝好运。