【问题标题】:How should a video-streaming application play the next video on all its clients at the same time?视频流应用程序应该如何同时在其所有客户端上播放下一个视频?
【发布时间】:2018-02-10 21:42:37
【问题描述】:

我正在构建一个 .NET Web 应用程序,其主要功能是将视频流式传输给最终用户,就像电视频道将其内容流式传输给观众一样。

这意味着在某个时间点使用该应用程序的所有用户都必须同时观看同一视频。当当前视频结束时,下一个视频应该会自动播放(所有用户)

所以让我们考虑以下场景:

  • 1000 个用户在某个时间点观看视频
  • 视频结束,下一个视频应在每台客户端设备上播放
  • 后端应决定下一个应该流式传输的视频是什么,并将其(使用某种机制)交付给最终用户
  • 现在应该将下一个视频流式传输给所有用户。

应用程序堆栈:ASP.NET MVC 用于后端,Javascript/JQuery HTML 5 用于前端。

问题:

服务器同时告诉所有客户端哪个是下一个视频以及应该如何播放的最佳方式是什么?

目前有 2 个选项可供选择:

  1. 当当前视频结束时,每个客户端都会处理一个“视频结束”事件,并向服务器发送 Ajax 请求,询问有关下一个视频的信息。

    李>
  2. 服务器与每个客户端保持套接字连接打开,并在当前视频结束并播放下一个视频时同时通知所有客户端。

我正在尝试为此类功能找到最佳解决方案。任何信息都是有用的。

谢谢!

【问题讨论】:

标签: javascript jquery .net video


【解决方案1】:

我认为对此没有一个正确的答案 - 您建议的任何一种方法都行得通。哪个更好可能取决于您权衡每种方法的优缺点 - 例如,Ajax 方法将在每个视频结束时创建请求的“风暴”,而套接字方法需要保留大量套接字仅对偶尔的交通开放。

值得一提的是,让视频在多个设备之间完全同步是一个更棘手的问题,以防这很重要(通常并不重要 - 例如,在线电视频道不会在设备之间完全同步)。

还值得一提的是,听起来您实际上是在制作一个在线“线性”电视频道。换句话说,设备可以连接并始终获取最新的视频或实时信息。有一些服务可以让你从一组视频中创建一个这样的在线电视频道,这也可能值得探索。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2022-01-27
  • 2015-02-12
  • 2016-05-20
  • 2012-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多