0

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

两个快速的问题,

  • 对于大视频文件,我应该将它们放在磁盘还是内存中?Youtube 或其他大型视频网站是如何做到的?不确定将所有视频放入内存是否太贵,将视频放入磁盘是否太慢?
  • 是否有任何开源视频托管服务器可供我使用?如果支持蒸汽,那就太好了。

提前谢谢,乔治

4

2 回答 2

1

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

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

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

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

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

我怀疑它们在磁盘上,直到需要它们为止。仅在需要时才移入内存。不再需要时从内存中刷新。

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

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

-杰西

于 2012-06-17T13:53:26.007 回答
1

另一种方法是使用 HTTP Live Streaming - HLS - Web 服务器只是一个标准的 httpd 服务器 - 视频/音频在服务器端被预处理为一组比特率播放列表。客户端的逻辑是根据带宽适当的播放列表将媒体检索为一系列 6 秒的文件。

所以 : - 使用文件而不是内存 - 有开源 HLS 分段器 (ffmpeg)

于 2012-06-17T17:38:22.890 回答