用于构建视频流服务器的软件/硬件?

用于构建视频流服务器的软件/硬件?

我正在寻找一种视频流服务器解决方案,类似于在线电视服务器,能够在互联网上进行直播。

您能推荐什么软件吗?

它应该在什么样的硬件上运行,有什么特殊之处吗?

我正在寻找一种可以扩展到至少 1000 个同时在线用户且具有良好视频分辨率的解决方案。

我认为最好对选择哪个方向有一个一般性的答案。但这里有更多关于我的具体情况的详细信息:

  • 我只是在寻找一个几乎从头开始的解决方案。我们制作了一些视频内容,但尚未通过互联网交付。
  • 目前我们不受任何特定供应商的约束。
  • 我们希望将 24 小时的直播分成三个 8 小时的时段,每天更新不同的内容。
  • 我们希望能够进行定期的现场直播。
  • 我想我们需要有几种流媒体质量的选项(低~56 kb/s,中~273 kb/s)。
  • 有些术语对我来说很陌生(例如播放截断率),如果您能指出我们应该注意哪些参数,那就太好了。
  • 互联网的上行链路尚待确定。我们计划从某个地方开始,然后逐步扩大规模。

如果您已经拥有某种媒体流服务器,请在此处描述其配置(硬件、操作系统、软件)以及其服务的并发用户峰值数量。我认为这可以帮助人们完成这项任务。

答案1

听起来 chopper3 已经很好地覆盖了这个领域,只需花费我的 0.02 美元:

我们按需提供每次约 12 小时的讲座(分成一小时的时间段)。我们使用Flash媒体服务器(但具有仅限流媒体许可证)来自 Adob​​e,以及一个定制的应用程序,用于在用户浏览器的演示文稿中显示它(并将幻灯片/视频/音频结合在一起)。

我们在配备 4GB RAM 的双四核 Xeon 2.4Ghz 上运行服务器,除了偶尔会用完 RAM(FMS 非常耗内存)外,从未遇到任何扩展问题。我们运行 2mb 上行链路的链接,但我们的媒体质量非常低(320x240、高压缩、单声道音频)。我们从未收到任何投诉。我们还使用 RMTPE 协议,该协议经过加密,并且具有额外的 CPU 开销。

我们可以通过致电我们的 ISP 来升级我们的链接,这只需几分钟即可完成,因此如果需求量巨大,我们可以将速度加快几个小时,然后再降低速度以节省资金。

FMS 能够从实时捕获卡进行流式传输。它附带一个示例应用程序,可从您的网络摄像头进行流式传输,但从备用实时源(捕获卡等)进行流式传输并不困难。

希望这能给你一些启发!

答案2

对于视频流,微软有一个出色的解决方案,即客户端使用 Silverlight(或普通 H.264),服务器端使用 IIS Smooth Streaming,可以自动、透明地调整质量(等等)。它是标准 HTTP,因此可以使用任何 HTTP 代理进行缓存

以下是一个展示:http://www.microsoft.com/silverlight/iis-smooth-streaming/demo/

IIS 媒体包:http://www.iis.net/media

据我所知,它确实是最好的视频流解决方案之一……

答案3

啊,终于有一个问题专门为我回答了:)

好的,那么 1000 个用户,使用什么编解码器/播放器/比特率?有多少内容?平均内容长度是多少?大概没有 QoS/多播选项?您的前端服务是什么?您预期的播放截断率是多少?您的互联网上行链路是什么(尽可能详细)?

您是否与任何特定供应商有合作关系?

回答其中一些问题,我会很乐意提供帮助。

答案4

举个例子,这是我们用于流媒体(和录制)讲座的设置。我们没有 1000 名用户,但我们的解决方案应该可以扩展到这个数字。

视频采集(约 6000 美元):

  • 配有 PC 和触摸屏的滚动机架式推车
  • 消费级摄像机(HDMI 输出)
  • HDMI 摄取卡 (Blackmagic Intensity Pro)
  • 4 个无线观众麦克风
  • 1 个无线领夹麦克风
  • 音频混音器和压缩机
  • Wirecast 软件

流媒体服务器:

  • Ubuntu 12.04 上的 CRTMP 服务器
  • Apache2

与一些基于 Java 的用户服务器相比,CRTMP 服务器的性能更出色(尤其是在资源受限的系统上)。还有一款付费的商业产品,提供相同的支持。

我将对您的要点进行编号并加以说明:

  1. 使用现有视频从头开始的解决方案:我上面概述的几乎就是整个解决方案(如果我遗漏了任何内容,请告诉我)。Wirecast 可以处理实时视频和视频文件(并且可以无缝地组合和切换两者。我同意 @don 的观点——Wirecast 是一款出色的产品。Wirecast 确实有一个内置的流媒体服务器,但如果有 1000 个用户,您将需要一个外部服务器,例如 CRTMP 服务器。

  2. 不依赖于特定供应商:Linux、CRTMP Server 和 Wirecast 的组合是一种多供应商方法。您可以用其他供应商的产品替换其中任何部分。

  3. 24 小时流媒体:我还没有测试过 Wirecast 的内存泄漏问题,但它可以通过编写脚本在任意数量的实时和录制输入之间切换。此外,CRTMP 服务器可以从 Wirecast(或其他流媒体)或静态文件中获取输入。

  4. 定期现场直播:Wirecast 的现场直播看起来非常专业(具有与 Apple 主题演讲中看到的类似的 3D 效果)。

  5. 多种流质量:Wirecast 可以提供多个同时流(不同质量)。但是,为了减少捕获工作站的负载,您可能希望 CRTMP 服务器将来自 Wirecast 的单个流重新编码为多个流。

  6. 术语陌生且令人困惑:是的。流媒体视频的学习难度很高,需要掌握相当多的学科知识。抱歉,我真的无法解决这个问题。:)

  7. 上行至互联网:CRTMP 服务器可从互联网获取连接。只需确保您已安全设置服务器即可——这超出了我的技能范围。

相关内容