支持Http的视频服务器

问题描述 投票:0回答:2

我想搭建一个支持Http协议的视频点播服务器。它就像 Youtube,托管大量视频,最终用户可以从浏览器播放它们(通过使用 Flash 或 Html 5)。

两个简单的问题,

  • 对于大视频文件,应该放在磁盘上还是内存中? YouTube 或其他大型视频网站是如何做到的?不确定将所有视频放入内存是否太昂贵,而将视频放入磁盘太慢?
  • 是否有适合我的目的的开源视频托管服务器?如果支持蒸就太好了

提前致谢, 乔治

http video video-streaming
2个回答
1
投票

如果您只想有一个链接到您的视频文件的 HTML 页面 - 没问题,但大多数浏览器会在您的系统考虑播放之前下载整个文件。

如果您想流式传输文件(像 YouTube 和其他人一样),那么您实际上并没有对视频本身使用 HTTP。 HTTP 用于获取有关流的信息,以便您的播放器可以直接流式传输和播放,而无需先下载整个文件。

流视频使用 RTSP(或其他一些流协议)来传输音频和视频数据。

最接近“流”视频的 HTTP 协议是使用单个图像帧的服务器推送,每个帧都标记为替换前一帧。并非所有浏览器都可以直接处理此问题,但可能需要 ActiveX 控件或 Java Applet。最初的 QuickTime 在服务器上实现流协议之前就这样做了。

回复:YouTube 如何处理大视频文件

我怀疑它们在需要之前都在磁盘上。仅根据需要移入内存。当不再需要时从记忆中清除。

回复:是否有适合我目的的开源视频服务器

是的!查看 http://www.videolan.org/

-杰西


1
投票

另一种方法是使用 HTTP Live Streaming - HLS - Web 服务器只是一个标准的 httpd 服务器 - 视频/音频在服务器端预处理为一组比特率播放列表。 繁重的逻辑位于客户端,根据带宽适当的播放列表以一系列 6 秒文件的形式检索媒体...自动校准以获得最佳带宽的客户端的奖励点

所以:

  • 使用文件而不是内存
  • 有开源 HLS 分段器(ffmpeg)
© www.soinside.com 2019 - 2024. All rights reserved.