iPhone MPMoviePlayerController:下载文件,而stream媒体在本地播放

我有所有的TS文件m3u8文件。 MPMoviePlayerController在stream媒体服务器上通过http请求播放它们。 但是我想在本地获取这些文件,以便以后再次播放它们而不需要任何连接。

我设法在我的设备上本地下载m3u8文件和所有TS文件,我编辑m3u8文件指向本地.ts而不是http,但是我无法从这个版本中读取它们。 (VLC可以做得很好)

有没有一种方法可以在播放的时候下载这些段(避免2次下载),然后用MPMoviePlayerController或其他方式在本地播放它们。

.m3u8是Apple HTTP Live Streaming,对吗? 我认为你所要做的只是违背了这项技术的devise。 您应该公开原始文件并允许它被下载。

据我所知,在stream媒体的devise中,你并没有明确地访问这些作品,以便将它们放回到一起。 例如,Netflix通过Silverlight使用stream媒体,Netflix的好处之一就是可以保护数据不被保存,就像下载一样。 此外,由于HTTP Live Streaming允许stream在运行中切换比特率,因此它被devise成每个时间片都可以以任意数量的比特率进行编码,而且它们都不是规范的。

理论上,可能有一种方法可以收集特定比特率的所有片,并将它们重新编码为单个video。 但是苹果的播放API不会给你这个机会。

而不是HTTP直播,请考虑逐步下载。 只需提供原始video文件(如有必要,将其转码为iPhone所喜欢的内容)。 如果您的服务器configuration正确,那么回放API将会执行小的请求来获取文件的特定块,而不是一次性完成整个事情,而且这恰好是恰当的stream式处理的第二步。 我希望我能find我读的地方,所以我可以给它正确的名字。 如果您需要快速解决scheme,则Amazon S3将以此方式进行设置。

但要小心, 苹果的文档说,

如果您的应用通过蜂窝networking传输video,并且video在五分钟内超过10分钟或5 MB数据,则需要使用HTTP实时stream传输。 (渐进式下载可用于较小的剪辑。)