20

我在一家公司工作,我们正在为现有应用程序开发视频聊天支持。我已经查看了各种解决方案,例如

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

现在的挑战是我们正在寻求实现非常高质量的视频流,并且容器应用程序是用 C#.NET 编码的

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

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

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

4

4 回答 4

24

我已经使用了几种方法来轻松地使用 .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 Client 最高版本 1.3 - windows messenger 的核心。

优点:来自 Microsoft 的托管示例、良好的文档、可靠的性能、可自由再分发、与 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,我还没有机会好好看看。

于 2009-12-26T10:13:16.507 回答
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 查看器来查看多播信号。此应用程序主要用于命令和控制。当我们连接到电视的机顶盒解码和显示流时,才会真正使用多播信号。

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

于 2009-02-03T23:29:09.330 回答
2

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

祝你好运。

于 2011-05-30T17:12:23.467 回答
0

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

于 2012-02-07T02:32:41.640 回答