使用 java 的视频服务器

Video server using java

我正在制作一个社交媒体应用程序(目前是移动应用程序,很快也会是网络应用程序),它专注于视频。我有两个问题:

1) 从 android 应用程序,我当前的设计请求来自网络服务的新提要 --> 服务器响应 json 数据,其中包括视频 url 和其他提要数据(内容、日期等)--> 然后我为将请求视频的 VideoView 设置 url。现在有没有更好的方法让我通过一个请求获取完整的提要(通过一个请求我 return 数据和 video/audio/image)?

此外,在网上进行研究后,有人说您使用 IntentService 来不断获取新的提要并在本地兑现,而有人则说不是。后端社交网络应用程序的最佳方法是什么。

2) 我在网上读到,如果你希望对同一个 video/audio 有多个并发请求,那么 http 流是一个非常糟糕的主意(我不知道这是否也适用于图像),限制几乎是十几个请求。后端应该如何有效地存储 videos/audio 并将其发送回 mobile/web 应用程序?大型社交网络如何存储他们的数据并发回,以便用户可以获得最佳体验(我知道我的应用程序与大型社交媒体网站相比不会有 .01% 的流量,但我期待成千上万的用户和数百他们可能同时请求相同的视频)?任何 link 的服务器(最好使用 Java)做这样的事情将不胜感激。

长话短说,如果有人能帮我找到一个很好的资源来设计社交媒体应用程序的后端,那就太好了。很抱歉 post.

如果您的方法适合您,您的方法似乎不错 - 您不需要为所有内容和典型的 'pattern' 使用相同的服务器,这可能会让您放心:

  • 简单静态 Web 托管或 CDN(例如 Amazon S3 或简单静态 Web 服务器)上的静态内容 - 这些内容不会经常更改,例如图片、标题文本、信息文本等
  • 基于您最喜欢的网络风格的动态内容 server/language 技术 - 这是每个用户或随时间频繁更改的内容。
  • 视频和音频托管在单独的专用流媒体服务器上,很可能链接到 CDN,或者托管在专门 video/audio.
  • 的网络托管服务上

分离视频的原因是流媒体视频技术非常专业,如果你真的想支持很多设备,那么你实际上需要多个版本的视频来支持所有 browser/device 和网络带宽组合。如果您想快速入门,一个好的云视频托管服务将在这里为您完成艰苦的工作,并让您的视频显示时没有任何 'YouTube',如 branding/ads 等

如果您想 运行 自己的视频服务器,那么可以使用开源选项,例如 VideoLan 和 GStreamer,或者付费版本,例如 Woza: