java - 使用java的视频服务器

标签 java android video server social-networking

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

1) 从 Android 应用程序,我当前的设计请求来自 Web 服务的新提要 --> 服务器使用 json 数据进行响应,其中包括视频 url 和其他提要数据(内容、日期等) --> 然后我设置将请求视频的 VideoView 的 url。现在是否有更好的方法让我通过一个请求获取完整的提要(通过一个请求返回数据和视频/音频/图像)?

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

2)我在网上读到,如果您期望对同一视频/音频进行多个并发请求(我不知道这是否也适用于图像),则http流是一个非常糟糕的主意,限制几乎是十几个请求。后端应如何有效地存储视频/音频并将其发送回移动/网络应用程序?大型社交网络如何存储数据并发回,以便用户能够获得最佳体验(我知道与大型社交媒体网站相比,我的应用程序不会有 0.01% 的流量,但我预计会有数千名用户和数百名用户他们中的一些人可能会同时请求相同的视频)?任何用于执行此类操作的服务器(最好使用 Java)的链接将不胜感激。

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

最佳答案

如果您的方法适合您,那么它似乎很好 - 您不需要为所有内容和典型的“模式”使用相同的服务器,这可能会让您放心:

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

分离视频的原因是流媒体视频技术非常专业,如果您确实想支持许多设备,那么您实际上需要视频的多个版本来支持所有浏览器/设备和网络带宽组合。如果您想快速入门,良好的云视频托管服务将为您完成艰苦的工作,并允许您的视频在没有任何“YouTube”(如品牌/广告等)的情况下出现。

如果您想运行自己的视频服务器,那么有 VideoLan 和 GStreamer 等开源选项或 Woza 等付费版本:

关于java - 使用java的视频服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32164376/

相关文章:

android - Charles ssl证书下载失败 "due to network failures"

java - 通过java中的参数集找到最合适的对象

java - Android studio 在没有模拟器的情况下启动项目

java - 如何将具有相似父对象的一个​​对象和具有相似祖 parent 的另一个对象添加到同一对象列表

java - 关于文件标记化、对象值设置和标记位置枚举的 API 设计

video - FFMPEG avformat_write_header 改变我的流 time_base

java - 单击按钮后在弹出窗口中显示图像 - Android/Java

android - task.getResult() 抛出 java.lang.ClassCastException

html - 无法在 iOS Safari 上预加载第一个视频帧?

docker - 在 Docker 容器之间流式传输数据的最有效方式是什么