2013-12-03 42 views
9

有幾個人試圖用AVPlayerMPMoviePlayerController緩存預加載的視頻數據,例如使用嵌入式HTTP代理緩存流媒體視頻?

最直接的方法似乎對玩家的currentItem要使用AVExportSession ,但似乎沒有人能夠使其發揮作用。

我的問題是:是否有可能透明地代理設備上的視頻請求,以及由基於磁盤的緩存支持的嵌入式HTTP服務器?

我可以運行一個嵌入式Web服務器(GCDWebServer),所以我的問題是

  1. 威爾緩存搞砸的AVPlayer試圖選擇最高帶寬數據流可能帶寬優化的代碼?如果這是一個問題,我可以控制流,因此它只提供一個選項。

  2. 磁盤性能是否足以提供網絡改進?看起來似乎很明顯,但我在網上看到了各種各樣的關於iOS上緩慢磁盤I/O的文章。

謝謝!

+0

從你的問題和你提到的問題來看,你的目標是什麼還不清楚。您是否試圖在本地保存播放視頻的副本(您指向AVExportSession)還是試圖實現自己的緩存以改善播放? – MDB983

+0

我沒有看到你想要畫的區別。 「本地保存播放視頻的副本」和「實現緩存以改善播放」有什麼區別?這不是一回事嗎?我不知道緩存方法不會在本地保存視頻。 – bcattle

+0

區別在於實施。正如您所指出的那樣,您可以使用代理機制來捕獲正在下載的內容(從「玩家」的角度來看),或者是一個基本上捕獲已經下載/正在播放的數據的AVExportSession。 – MDB983

回答

0

對於HTTP實時流:

如果嵌入式Web服務器來託管媒體段文件包括HTTP實時流進料,然後將這些文件將需要已下載到設備上,除非你重新配置webserver充當代理。

在這兩種情況下,似乎更簡單的方法是下載並解析索引文件(通常是prog_index.m3u8)以獲取媒體段文件的列表,然後啓動每個文件的下載。

+1

感謝您的洞察力。我一直在想象一個透明的代理。所以你說打開並閱讀'.m3u8'文件,然後透明地代理其中的每個流? – bcattle