我已经打破了2周的传球,我仍然无法弄明白。 我正在尝试在Python(用于wpf GUI的Ironpython)上构建基于服务器客户端的流式播放器,以流式传输视频文件。我的问题是当客户要求寻找他尚未加载的部分时。当我试图将他发送到.mp4文件的中间时,他似乎无法播放它。
现在我知道这样的事情存在,因为每个在线播放器都有它,并且它使用HTTP 206 Partial Content请求,客户端只请求他想要的字节范围,服务器将它发送给他。
我的问题是 - 客户端如何能够在.mp4文件中以字节间隔播放视频 - 他怎样才能开始观看文件的中间位置?当我似乎尝试它时,玩家就不会打开文件。
更重要的是:如何在我的服务器客户端程序上实现此功能以实现免费搜索?
我真的试图在互联网上寻找一个简单的解释... 对于像我这样的新手,请详细解释一下,我会非常感激。
提前致谢。
答案 0 :(得分:2)
在播放MP4文件之前,客户端(例如浏览器)需要读取文件的标题部分。 MP4被分解为“原子”和“原子”。并且Moov原子是文件的头或索引原子。
对于要流式传输的MP4文件,常见的优化是将此Moov原子移动到文件的前面。
这允许客户端在开始时获取moov,然后它将获得所需的信息,以允许您跳转到您想要的偏移量。
如果您在开始时没有moov原子,则客户端需要下载整个文件,或者如果它更复杂一些,请使用范围请求跳转文件,直到找到它为止。