HTTP 206部分内容请求如何工作

时间:2017-01-15 22:01:42

标签: python video video-streaming httprequest buffering

我已经打破了2周的传球,我仍然无法弄明白。 我正在尝试在Python(用于wpf GUI的Ironpython)上构建基于服务器客户端的流式播放器,以流式传输视频文件。我的问题是当客户要求寻找他尚未加载的部分时。当我试图将他发送到.mp4文件的中间时,他似乎无法播放它。

现在我知道这样的事情存在,因为每个在线播放器都有它,并且它使用HTTP 206 Partial Content请求,客户端只请求他想要的字节范围,服务器将它发送给他。

我的问题是 - 客户端如何能够在.mp4文件中以字节间隔播放视频 - 他怎样才能开始观看文件的中间位置?当我似乎尝试它时,玩家就不会打开文件。

更重要的是:如何在我的服务器客户端程序上实现此功能以实现免费搜索?

我真的试图在互联网上寻找一个简单的解释... 对于像我这样的新手,请详细解释一下,我会非常感激。

提前致谢。

1 个答案:

答案 0 :(得分:2)

在播放MP4文件之前,客户端(例如浏览器)需要读取文件的标题部分。 MP4被分解为“原子”和“原子”。并且Moov原子是文件的头或索引原子。

对于要流式传输的MP4文件,常见的优化是将此Moov原子移动到文件的前面。

这允许客户端在开始时获取moov,然后它将获得所需的信息,以允许您跳转到您想要的偏移量。

如果您在开始时没有moov原子,则客户端需要下载整个文件,或者如果它更复杂一些,请使用范围请求跳转文件,直到找到它为止。

相关问题