2011-12-21 12 views
6

AVPlayerを使用してHTTPライブストリーミングビデオを再生しています。HTTPライブストリーミングからビデオを再生するときにAVPlayerのデータにアクセスする

プレーヤがキャッシュデータにアクセスしてローカルに保存する方法はありますか?

+1

私が知る限り、あなたはライブストリーミングからそれをすることはできません。 – Vlad

+0

それは私の経験もあります – V1ru8

+0

データを保存してAVPlayerに転送するカスタムコンポーネントによるフローを最初に読み取る方法があるのでしょうか?私は実際にデータを保存する方法を見つけるために探しています... – MartinMoizard

答えて

7

TLDR;それは不可能ではありませんが、その結果はそれほど大きくない可能性があります。

実際にHTTPビデオストリームは複数の帯域幅ストリームで構成されています。それらの各々はより小さいMPEGトランスポートストリームチャンクに分割される。

これらのストリームを再生するために、AVPlayerは通常、使用可能な帯域幅ストリームの1つを選択し、プリロードしてすぐに再生します。 AVPlayerはバーを上げ始め、より高い帯域幅のストリームからチャンクのダウンロードを開始します。 AVPlayerは利用可能な最大帯域幅に達するまでバーを再び上げます。このプロセスは、AVPlayerが再生可能な長さをキューにプリロードしておくことで問題を特定すると、反転されます。したがって、ネットワークのスループットが低下した場合、より低い帯域幅のストリームが選択される。正確な実装の詳細は指定されていませんが、これはおおよその動作です。

ここで、そのデータをローカルに保存/キャッシュするとします。さまざまな帯域幅のTSチャンクを混在させることができます。これは、ボックスから再生できるものではありません。また、最近のモバイルデバイスでは、ファイルシステムのアクセスがで、という高価なので、このプロセスに追加の負荷をかけることになります。

全体として、私は完全に不可能ではないと思っていますが、まったく些細なことではありません。私はこの問題についてファイルシステムのパイピングを実験している人については読んだことがありますが、決してそれを働かせることはできません。

+1

ヘッドアップありがとう、私は何を考えていたことを確認した。私は更新があればこのスレッドを更新します – MartinMoizard

関連する問題