2013-12-03 20 views
9

いくつかの人々は、たとえば、AVPlayerまたはMPMoviePlayerControllerを使用して事前にロードされたビデオデータをキャッシュすることを試みた埋め込まれたHTTPプロキシを使用してストリーミングビデオをキャッシュしますか?

最も簡単な方法は、プレイヤーのcurrentItemAVExportSessionを使用しているように思われますしかし、誰もそれを働かせることはできないようです。

私の質問は:ディスクベースのキャッシュに裏打ちされた組み込みHTTPサーバを使って、デバイス上でビデオリクエストを透過的にプロキシすることは可能ですか?

私の質問は、可能な限り最高の帯域幅のストリームを選択しようとAVPlayerの帯域幅の最適化コードを台無し

  1. をキャッシュしますされるように、私は、組み込みWebサーバー(GCDWebServer)を実行できますか?これが問題の場合は、ストリームを制御して1つのオプションしか提供できません。

  2. ネットワークパフォーマンスを改善するにはディスクのパフォーマンスは十分ですか?明らかにそうであるように思えるかもしれませんが、iOS上でのディスクI/Oの遅さに関するWeb上のさまざまな記事を見てきました。

ありがとう!

HTTPライブストリーミング用
+0

あなたの質問とあなたの質問から、あなたの目的がここにあるかどうかは不明です。再生したビデオのコピーをローカルに保存しようとしていますか(AVExportSessionへの参照)、再生を改善するために独自のキャッシュを実装しようとしていますか? – MDB983

+0

私はあなたが描こうとしている区別を見ません。 「再生されたビデオのコピーをローカルに保存する」と「再生を向上させるためにキャッシュを実装する」の違いは何ですか?これらは同じではありませんか?私はビデオをローカルに保存しないキャッシュ方法については気づいていません。 – bcattle

+0

実装は区別されます。あなたが指摘したように、プロキシメカニズムを使用して、ダウンロード中のもの(「プレイヤー」の観点から)を取得するか、またはすでにダウンロード/再生しているデータを取得するAVExportSessionを取得できます。 – MDB983

答えて

0

内蔵WebサーバがHTTPライブストリームフィードを構成するメディアセグメントファイルをホストしている場合は、ファイルが再構成しない限り、すでにデバイスにダウンロードする必要がありますプロキシとして動作するWebサーバー。

どちらの場合でも、メディアセグメントファイルのリストを取得し、それぞれのダウンロードを開始するためにインデックスファイル(通常はprog_index.m3u8)をダウンロードして解析する方が簡単なようです。

+1

洞察に感謝します。私は透明なプロキシを想像していた。だからあなたは '.m3u8'ファイルを開いて読んで、各ストリームを透過的にプロキシしていると言っていますか? – bcattle

関連する問題