ストリーミングとは?| 動画ストリーミングの仕組み

ストリーミングとは、実際にメディアファイルをダウンロードすることなく、動画を視聴したり、オーディオコンテンツを聴いたりする方法です。ファイルの所有者がCDNを使用する場合、ストリーミングのパフォーマンスが向上し、バッファリング時間が短縮されます。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • ストリーミングの仕組みを理解する
  • ストリーミングの速度が低下する要因を理解する
  • ストリーミングが TCP/IP ではなくUDP/IPを使用する理由が分かる
  • ストリーミングを高速化する方法を説明する

記事のリンクをコピーする

ストリーミングとは?

ストリーミングメディア

最初のWebサイトは、画像が一つか二つ付いているようなシンプルなテキストのページでした。しかし、今日では高速インターネット接続があれば、誰もが高解像度の映画をストリーミングしたり、インターネット経由でビデオ通話を行ったりできます。ストリーミングと呼ばれる技術が、これを可能にしました。

ストリーミングでは、サーバーからクライアントへオーディオまたは動画ファイルが継続的に送信されます。簡単に言うと、消費者は、インターネットに接続されたデバイスでテレビを見たり、ポッドキャストを聴いたりするときにストリーミングを使っているのです。ストリーミングでは、クライアントデバイスで再生されるメディアファイルが遠隔で保存され、インターネット経由で数秒ずつ送信されます。

ストリーミングとダウンロードの違いは?

ストリーミングはリアルタイムで、メディアファイルをダウンロードするよりも効率的です。動画ファイルをダウンロードすると、ファイル全体のコピーがデバイスのハードドライブに保存され、ファイル全体のダウンロードが完了するまで動画を再生できません。ストリーミングでは、ブラウザはメディアファイルを実際にコピーして保存することなく動画を再生します。動画ファイルは、全体を一度に読み込むのではなく、少しずつ読み込まれ、ブラウザは読み込む情報をローカルに保存しません。

湖と川の違いを考えてみてください。両方とも水があり、川の水量は湖と同等かもしれません。違いは、川の水が同時にすべて同じ場所にあるわけではないことです。ダウンロードした動画ファイルは湖に似ていて、多くのハードドライブスペースを占有します(湖の移動には時間がかかります)。動画ストリーミングは、動画のデータが連続して急速にユーザーのブラウザに流れ込むという点では、川の流れ(ストリーム)に似ています。

ストリーミングはどのように機能するか

インターネットで送信される他のデータと同様に、オーディオと動画のデータはデータパケットに分割されます。各パケットにはファイルの小さな断片が含まれており、クライアントデバイスのブラウザ内のオーディオプレーヤーまたは動画プレーヤーがデータパケットフローを取り出し、動画またはオーディオとして解釈します。

テキストや静止画の送信に対して、インターネット経由で動画を送信する際は、速度より信頼性重視のTCP/IP よりも高速にデータを転送する方法が必要です。

ユーザーデータグラムプロトコル(UDP)はストリーミングをどのように改善するか

UDP はトランスポートプロトコルです。つまり、ネットワーク間でデータパケットを移動するために使用されます。UDPはインターネットプロトコル(IP)と共に使用され、合わせてUDP/IPと呼ばれます。TCPとは異なり、UDPは、接続を開始するためにデータ送信の前にメッセージを送受信することもなければ、到達した全データパケットの正常性を確認することもありません。その結果、データの送信にはTCP経由ほど時間がかかりません。また、一部のパケットは途中で失われますが、ストリームを維持するのに非常に多くのデータパケットが介在しており、ユーザーが失われたパケットに気付くことはないでしょう。

インターネットの多くは、TCP(伝送制御プロトコル)を使用します。このトランスポートプロトコルには、接続を開始するためのあらゆる確認が含まれています。接続を開始すると、2つの通信デバイスがパケットを送受信し、TCPは通信の信頼性の確保とすべてのパケットが順番に届くことを保証します。

ストリーミングでは、速度の方が信頼性よりもはるかに重要です。たとえば、あるテレビ番組のエピソードをオンラインで視聴する場合、そのエピソードのフレームごとにすべてのピクセルが表示される必要はありません。ユーザーにとっては、すべてのデータが完全に配信されるのを座って待つよりも、通常の速度でエピソードが再生される方がよいでしょう。したがって、少数のデータパケットが失われることは大きな問題ではなく、これがストリーミングがUDPを使用する理由なのです。

もしTCPが、受取人の署名が必要な小包配送サービスなら、UDPは受取りの署名のためにドアをノックすることなく、玄関先に小包を置いて配達完了するサービスです。TCP配信サービスで失われるパッケージの数はより少なくなりますが、UDP配信サービスはより高速です。これは、署名する人が自宅にいなくても、小包を玄関先に置いて、配達が完了するためです。

バッファリングとは?

ストリーミングとバッファリング

メディアプレーヤーのストリーミングでは、数秒前にストリームを読み込み、接続が一時的に中断された場合でも、動画またはオーディオの再生を継続できるようにします。これはバッファリングと呼ばれます。バッファリングにより、動画がスムーズかつ継続的に再生されます。ただし、接続の速度が遅かったり、ネットワークのレイテンシーが非常に大きい場合は、動画のバッファリングに時間がかかることがあります。

ストリーミングの速度を低下させる要因は?

ネットワーク側の要因:

  • ネットワークレイテンシー : ユーザーがアクセスしようとしているコンテンツの保存場所など、さまざまな要因がレイテンシーに影響します。
  • ネットワークの輻輳 : ネットワークで送信されるデータが多すぎると、ストリーミングのパフォーマンスが低下する可能性があります。

ユーザー側の要因:

  • WiFiの問題 : LANルーターを再起動するか、WiFiの代わりにEthernetに切り替えると、ストリーミングのパフォーマンスが向上します。
  • 処理が遅いクライアントデバイス :ビデオを再生するには、かなりの量の処理能力が必要です。動画ストリーミングデバイスで、他のプロセスが多数実行されている場合や、普段から処理が遅い場合は、ストリーミングのパフォーマンスが低下する可能性があります。
  • 十分な帯域幅がない : 動画ストリーミングの場合、ホームネットワークには約4Mbpsの帯域幅が必要です。高画質動画の場合は、より多くの帯域幅が必要になります。

ストリーミングを高速化するには?

ストリーミングは、他のWebコンテンツと同種の遅延やパフォーマンス低下の影響を受けます。ストリーミングコンテンツは他の場所に保存されるため、ホストの場所が大きな差を生み出しますが、これはインターネットでアクセスする他のコンテンツでも同じです。ニューヨークにいるユーザーがカリフォルニア州のロスガトスにあるNetflixのサーバーから配信される動画をストリーミングしようとする場合、動画コンテンツがユーザーに到達するまでに約4,828km移動するのでバッファ時間は当然長くなり、全く再生できない可能性もあります。このため、Netflixやその他のストリーミングプロバイダーは、世界中のユーザーにより近い場所にコンテンツを保存する分散型コンテンツ配信ネットワーク(CDN)を広く利用しています。

CDNは、ストリーミングパフォーマンスに大きなプラスの影響を与えます。Cloudflare Stream配信 は、CloudflareのCDN を活用して、世界中のすべてのCloudflareデータセンターに動画コンテンツを保存します。その結果、動画の起動時間が短縮され、バッファリングが削減されるため、レイテンシーを縮小することができます。