web-dev-qa-db-ja.com

YouTubeが動画をキャッシュしないのはなぜですか?

少し前に、YouTubeはキャッシュシステムを変更しました。これで、ビデオを見るときにタイムラインを逆方向にクリックすると、ビデオが再度ダウンロードされ、YouTubeはキャッシュからそれを読み取りません。低帯域幅の接続では非常に低速です。なぜYouTubeがそうすることにしたのですか?これは明らかにUXの反対です。

3
ehsania

多くの場合、タイムラインを移動するときにビデオを再ロードする最も一般的な理由は次のとおりです。

  1. YouTubeは、再生中にビデオの品質を動的に変更します。このトランジションはシームレスに見えますが、ビットレートと解像度のビデオが異なるため、ローカルキャッシュが中断されます。そして、これは再生中に複数回発生する可能性があり、そのたびにローカルキャッシュが中断されます。

したがって、たとえば、ビデオが360Pで再生を開始しても、帯域幅が追加の720pを処理できることをシステムが検出すると、720pに移行します。 その場合、2つの異なる解像度のビデオファイルを使用できないため、新しいキャッシュファイルを書き込む必要があります。

したがって、解像度の移行が行われる前の時間に戻ろうとすると、既存のローカルキャッシュが消去され、新しいキャッシュが開始されます。

もう1つの一般的な理由は、人々がビデオを見るときに早送りされることが多く、ローカルキャッシュも中断することです。動画の開始から5分後に、最初の30秒をスキップしたとします。この時点で、YouTubeは0:30-5:00をキャッシュしているため、タイムラインをそのスポット内に自由にドラッグできます。ただし、0:00-0:30に移動すると、プレーヤーはそのストリームをダウンロードする必要があり、0:30-5:00のキャッシュは失われます。

つまり、次のようにすると、キャッシュの中断の問題を回避できます:

ビデオが開始したらすぐに、ビデオ品質設定を目的の解像度(360p、480p、720pなど)に変更し、自動をオフにします。早送りしないでください。

これらの手順を実行することで、ビデオ全体がローカルにキャッシュされ、リロードせずにタイムライン内を前後に移動できるようになります。

4
Jung Lee

あなたの質問は間違っています。 Youtube [〜#〜] does [〜#〜]ビデオをキャッシュします。

  1. ビデオを再生します終了させて​​ください

  2. インターネットを切断します。

  3. 再読み込みボタンを押すか、ポインタをドラッグしてタイムラインを開始します。

  4. ビデオはインターネットがなくても引き続き再生されるため、キャッシュされます。

だから、あなたは質問をするのは間違っています。次に、Youtubeのキャッシュシステムではなく、バッファシステムをめちゃくちゃにしました。遅い接続でビデオを一時停止して、視聴する前にバッファリングできるようにしても、それは起こりません。つまり、ビデオの一時停止時にバッファも停止します。ビデオを最初からリロードできる、つまりキャッシュされたコピーを取得できるという報告もありますが、タイムラインの途中からどこかでヒットすると(一部にスキップ)、それまでにバッファ全体が失われるか、キャッシュされたビデオ。

ただし、Cookieをクリアしてバッファーメカニズムをリセットするなど、いくつかの回避策が提案されており、私はそれらを試しましたが、機能しますが、良いオプションではありません。

したがって、はい、キャッシュはまだほとんどありますが、バッファはありません。

新しいYouTubeがその理由だと思います。 Chromeの古いYOutube拡張機能を使用していても、同じ古いYoutubeインターフェースを提供している場合)、サーバーレベルで機能が変更されていないことを示す問題は発生しません。最も可能性が高いのは、私たちが目にするフロント/ユーザーエンドのyoutubeのケースです。新しい実装では、バッファバーがめちゃくちゃになっています。

それが解消されることを願っています。

PS:乱雑なバッファも悪いUXと同じです。

1
user22624