2011-12-21 70 views
6

我正在用AVPlayer播放HTTP Live Streaming視頻。從HTTP Live Streaming播放視頻時訪問AVPlayer的數據

有沒有辦法通過播放器訪問緩存的數據在本地保存?

+1

據我所知,你不能從直播中做到這一點。 – Vlad 2011-12-21 16:09:18

+0

這也是我的經驗 – V1ru8 2011-12-21 16:22:55

+0

你們知道嗎,如果有,有一種方法可以首先通過自定義組件讀取流以保存數據,然後將其轉發給AVPlayer?我真的很想找到一種方法來保存數據... – MartinMoizard 2011-12-21 16:44:41

回答

7

TLDR;這並非不可能,但結果很可能不會那麼好。

請記住,HTTP視頻流實際上由多個帶寬流組成。其中每個都被分成更小的MPEG傳輸流塊。

爲了播放這些流,AVPlayer通常會選擇其中一個可用帶寬流,開始預加載並很快播放。現在,AVPlayer開始升級欄,並開始從更高帶寬流下載塊。 AVPlayer將再次提高這個標準,直到達到最高的可用帶寬。一旦AVPlayer識別保持在其隊列中預先加載的可播放長度的問題,該過程將被反轉。因此,如果網絡吞吐量降低,則選擇較低的帶寬流。確切的實施細節沒有指定,但這大致是如何工作的。

現在想象你會在本地存儲/緩存該數據。您可以混合使用各種帶寬的TS塊,而不是任何可以從盒子中回放的東西。此外,您還需要在此過程中承擔額外的負擔,因爲最近在移動設備上使用昂貴的。總體而言,我認爲這不是完全不可能的,但根本不是微不足道的。我已經閱讀過關於在這個問題上嘗試使用文件系統管道的人,但他們從來沒有得到它的工作。

+1

謝謝你的擡頭,我證實了我的想法。如果我有任何更新,我會更新此線程 – MartinMoizard 2011-12-22 10:52:14