我在一家公司工作,我们正在开发现有应用程序的视频聊天支持。我已经查看了各种解决方案,如
现在面临的挑战是我们希望实现高质量的视频流,并且容器应用程序采用C#.NET编码
这是我到目前为止提出的建议。流数据的网络逻辑用C#编写,视频压缩用VC ++编写,并尽可能使用pinvoke或CLI调用VC ++ dll。
我正在寻找一位在这个领域更有经验的人,他可以建议我,如果我是正确的还是可以继续改进。
最终目标是高质量的视频流。 编解码器可以是任何类似h.2633,h.264等的任何东西。
答案 0 :(得分:23)
我已经使用了几种方法轻松地使用.net进行视频流/会议,而无需深入了解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/全功能会议API,包括应用程序流。它们太低级别的Windows Media编码过滤器并将它们包装到托管代码中。效果很好。轻松定制。看起来有点放弃了。
3)Microsoft RTC客户端最高版本1.3 - windows messenger的核心。
专业人士:来自Microsoft的托管样本,良好的文档,可靠的性能,可自由再分发,包含微软兼容(良好)的SIP堆栈。像Emblaze VCON这样的主要会议供应商在近期有一些基于它的解决方案,目前还不确定,但我知道Tandberg授权Microsft的VC-1。缺点:版本高达1.3仅支持h261-h263视频。支持VC-1(h264)编解码器的现代版本不允许直接无服务器ip-ip连接。它需要Microsoft Live Communications服务器。较新版本的SDK不能很好地涵盖视频会议电话。
http://msdn.microsoft.com/en-us/library/ms775892(VS.85).aspx
请告诉我们您选择的平台。顺便说一句,我甚至将ConferenceXP视频rtp部分与RTC 1.3语音/ SIP功能结合使用,以提高视频质量,因此您可以在此处选择多种托管技术。另一件事是Live Meeting,我没有机会好好看看。
答案 1 :(得分:10)
省去麻烦并使用VLC。有一些不错的.NET包装器(http://forum.videolan.org/viewtopic.php?f=32&t=52021&start=30)
我们正在将C#和VLC用于IPTV网络。我们通过Windows XP服务器上的Osprey-450视频捕获设备从DISH网络卫星上获取输入。从那里开始,我们在C#中编写了一个.NET服务器组件,它在后台使用VLC(在.NET中启动单独的进程来控制vlc.exe实例)。 VLC进程通过网络对转码和流信号进行转码(.h264或MPEG-4,我们已经成功完成了两者)。
在客户端,我们有一个C#WinForm应用程序,它使用嵌入式VLC Viewer来查看多播信号。此应用程序主要用于命令和控制。当我们的机顶盒连接到我们的电视解码并显示流时,会发生多播信号的真实使用。
我们认为我们也必须编写自己的DirectX编码器,但不要遇到麻烦。 VLC工作得很好,并且有足够的C#支持非常有用。如果您对实施有具体问题,请随时给我发电子邮件。
答案 2 :(得分:2)
您应该查看Ucentrik SDK。此SDK将使您能够在应用程序中集成富媒体功能,如视频,音频,聊天,远程桌面共享和控制以及视频录制。支持的视频编解码器是VP8(Google),Theora和x.264。此外,富媒体流量封装在HTTP协议中,使其能够遍历启用正常Web流量的防火墙。此技术是完全免费的,您可以下载SDK并请求API密钥,以便您可以在不投入任何时间设置基础架构的情况下进行评估。在接下来的几个月中,我们将发布一个服务器组件,以便您可以下载并托管您自己或客户的基础架构。该技术支持1对多连接,这意味着您可以根据需要创建视频会议。这些功能是高度模块化的,因此您可以使用相同的SDK集成视频或音频或桌面共享或技术组合......您应该在此处请求SDK:www.ucentrik.com。此外,还有一些视频:http://www.youtube.com/user/ucentrik
祝你好运。答案 3 :(得分:0)
Ucentrik刚刚发布了一个集成了CTX技术的开源呼叫中心应用程序。该呼叫中心应用程序实现了CTX API提供的视频,音频,桌面/应用程序共享(带控制),文本聊天功能。该应用程序还包括一些业务逻辑,专门用于提供将呼叫路由到可用代理或具有特定技能集的能力。该项目可在http://vcca.codeplex.com获得 - 请注意,您需要访问Ucentrik CTX SDK,可在Ucentrik网站(www.ucentrik.com)上查询。祝你好运。