例如,有几个人尝试使用 AVPlayer
或 MPMoviePlayerController
来缓存预加载的视频数据
- Caching with AVPlayer and AVAssetExportSession
- Access the data of AVPlayer when playing video from HTTP Live Streaming
最直接的方法似乎是在播放器的 currentItem
上使用 AVExportSession
,但似乎没有人能够让它工作。
我的问题是:是否可以透明地代理设备上的视频请求,使用由基于磁盘的缓存支持的嵌入式 HTTP 服务器?
我可以运行一个嵌入式网络服务器(GCDWebServer),所以我的问题是
缓存是否会搞砸
AVPlayer
的带宽优化代码,该代码试图选择可能的最高带宽流?如果这是一个问题,我可以控制流,因此它只提供一个选项。磁盘性能是否足以通过网络提供改进?看起来很明显,但我在网络上看到了各种文章,它们都在谈论 iOS 上的磁盘 I/O 有多慢。
谢谢!
最佳答案
对于 HTTP 直播:
如果嵌入式网络服务器要托管构成 HTTP 实时流提要的媒体片段文件,则这些文件需要已经下载到设备,除非您重新配置网络服务器以充当代理。
无论哪种情况,似乎更简单的方法是下载并解析索引文件(通常是 prog_index.m3u8)以获取媒体段文件列表,然后开始下载每个文件。
关于ios - 使用嵌入式 HTTP 代理缓存流视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20359343/