2009-01-22 89 views
19

我正在为一家公司工作,我们正在开发现有应用程序上的视频聊天支持。我研究过各种方案来解决这个像使用高质量视频流开发视频聊天应用程序

  1. 使用在C#中的视频采集和流管直接显示
  2. 代码项目的一些代码样本,我们采取的图像,并通过它在网络上(我会打电话它,而为这是一种拙劣的解决办法吃了大量的带宽。
  3. 代码从刮刮压缩算法,并用它来压缩,解压缩视频。

现在的挑战是,我们正在寻求实现非常高质量的视频流和con最好的应用程序使用C#.NET编码。

这是我迄今为止提出的建议。流数据的网络逻辑是用C#编写的,视频压缩要用VC++编写,并用可能的方式使用pinvoke或CLI调用这个VC++ dll。

我找了一些多一个经历了我在这个领域谁可以建议我,如果我要多多正确或者可以这样仍然改善。

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

+0

https://www.twilio.com/docs/api/video – 2016-09-26 22:50:36

回答

22

我已经使用了几种方式,很容易地与.net视频流/会议,无需挖掘directshow。 (好吧,挖一些,但不深:)

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

2)微软研究院ConferenceXP的http://cct.cs.washington.edu/全功能会议API,包括应用程序流。他们的Windows Media编码过滤器级别过低,并将其封装到托管代码中。效果很好。轻松定制。现在看起来有点放弃。

3)微软RTC客户端高达版本1.3 - Windows Messenger的核心。

优点:从微软管理的样本,良好的文档,可靠的性能,可自由再分发,包括微软兼容(良好)的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

请让我们知道你选择什么样的平台。顺便说一下,我甚至使用了带有RTC 1.3语音/ SIP功能的ConferenceXP视频rtp部分,以提高视频质量,因此您可以在此选择多种托管技术。另一件事是Live Meeting,我没有机会好好看看。

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,我们已经成功完成了这两项工作)。

在客户端我们有一个使用一个嵌入VLC查看器来查看多播信号的C#WinForm应用程序。此应用程序主要用于控制命令&。当我们的机顶盒连接到我们的电视解码并显示流时,真正使用组播信号。

我们认为我们将不得不写我们自己的DirectX编码器太多,但不要去所有的麻烦。 VLC工作得很好,并且有足够的C#支持非常有用。如果您有关于实施的具体问题,请随时给我发电子邮件。

+0

您达到的视频质量是多少?它特别好吗? – 2009-02-04 06:02:24

+0

是的。我们通过这个系统获得了非常好的视频质量。实际上,当我接到这个任务时,这是其中一个优先事项。 .h264编码看起来非常好,但它非常耗费处理器。我们在IPTV系统中使用MPEG-4编码,看起来不错。 – 2009-02-04 17:18:38

2

你应该看看Ucentrik SDK。此SDK将使您能够在应用程序中集成富媒体功能,如视频,音频,聊天,远程桌面共享以及控制和视频录制。支持的视频编解码器是VP8(Google),Theora和x.264。此外,富媒体流量被封装在HTTP协议中,使其能够穿越启用正常网络流量的防火墙。这项技术是完全免费的,您可以下载SDK并申请API密钥,以便您无需花费任何时间进行设置基础设施投资。在接下来的几个月里,我们将发布一个服务器组件,以便您可以下载和托管您的自己或您的客户的基础架构。该技术支持一对多连接,这意味着如果您愿意,您可以创建视频会议。这些功能都是高度模块化的,因此您可以只集成视频或音频或桌面共享或使用相同SDK的技术组合。您应该要求在此提供SDK:www.ucentrik.com。此外,这里有一些视频:http://www.youtube.com/user/ucentrik

祝你好运。

0

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