2

我的游戏基于 Flash 并使用 RTMP 向玩家提供实时视频。视频应该从单个位置流式传输到多个客户端,而不是客户端之间。端到端视频流的基本要求应该是非常低的延迟,小于 0.5s。

在服务器和客户端上使用许多调整,我能够实现大约。在环回网络接口的情况下,使用 RTMP 和 Adob​​e Live Media Encoder 的延迟为 0.2 秒。

现在的问题是将项目移植到 Windows 8 商店应用程序。本机 Windows 8 为 IIS + http://playerframework.codeplex.com/提供流畅的流媒体扩展播放器+视频编码器兼容实时流畅的流媒体。至于编码器,现在我只测试了支持实时流畅流媒体的 Microsoft Expression Encoder 4。尽管在播放器端使用了 msRealTime 属性,但延迟非常大,我无法通过调整编码器使其低于 6-10 秒。不同的消息来源指出,平滑 [实时] 流不是低延迟视频流场景的选择,而且使用 Expression Encoder 4 似乎不可能通过任何设置组合来实现低延迟。有一些硬件视频编码器支持流畅的流媒体,例如来自 envivio 或 digital rapids 的视频编码器,但是:

  1. 它们是昂贵的
  2. 与 Expression Encoder 相比,我完全不确定它们是否可以显着改善编码器端的延迟
  3. 即使他们可以消除编码器的时间,其余的平滑流(IIS 端)是否可以支持所需的速度。

问题:

  1. 如果有的话,可以使用什么技术以亚秒级延迟流式传输到 Win8 客户端?
  2. 你知道兼容win8或容易移植到支持rtmp的win8的播放器吗?

添加。Build 2012 的实时翻译在桌面模式下使用 Rtmp 和 Smooth Streaming。在 Metro 模式下,它使用 RTMP 和用于 Metro 的 Flash Player。

4

1 回答 1

0

我可以确认,Smooth Streaming 不会是您在这里选择的技术。在具有完美条件的最佳场景下,您将获得的最好结果是几秒钟(绝对最小延迟将是块长度本身,即使其他所有东西都有 0 延迟。)

我认为最有可能使用 UDP 的 RTSP/RTMP 或类似的东西是你最好的选择。我会更多地关注视频会议技术,而不是广泛的观众流媒体技术。如果我没记错的话,有一些 .NET 组件可以处理用于视频会议的 RTSP H.264 - 如果我以后能找到它们,我会在这里发布。

于 2012-10-28T18:24:22.493 回答