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

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

学習目的

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

  • ストリーミングの仕組みを理解する
  • ストリーミングの速度が低下する要因を理解する
  • ストリーミングを高速化する方法を説明する

関連コンテンツ


さらに詳しく知りたいとお考えですか?

是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!

当社がお客様の個人データをどのように収集し処理するかについては、Cloudflareのプライバシーポリシーをご確認ください。

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

ストリーミングとは?

ストリーミングメディア

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

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

サインアップ
すべてのCloudflareプランに含まれる無料SSL

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

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

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

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

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

ホワイトペーパー
Webパフォーマンスの負荷分散の最適化におけるベストプラクティス

ストリーミングは、User Datagram Protocol(UDP)とTransmission Control Protocol(TCP)のどちらを使用するか?

ストリーミング方式には、UDPを使用するものと、TCPを使用するものがあります。UDPとTCPはトランスポートプロトコルであり、ネットワーク上でデータパケットを転送するために使用されます。どちらも、インターネットプロトコル(IP)と共に使用されます。TCPは、データを送信する前に専用の接続を開き、すべてのデータパケットが順番に到着するようにします。TCPとは異なり、UDPはこれらのことを行いません。結果として、TCPはUDPよりも信頼性が高く、UDPはデータ転送にTCPほど時間がかかりませんが転送中にパケットが失われることがあります。

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

ストリーミングでは、場合によっては信頼性よりも速度の方がはるかに重要なケースがあります。たとえば、ビデオ会議に参加しているユーザーは、すべてのデータビットが配信されるまでじっと待つよりも、他の会議参加者とのリアルタイムのやりとりを好みます。そのため、少数のデータパケットが失われることは大きな問題ではなく、UDPを使用すべきです。

また、ストリーミングでは信頼性がより重視されるケースもあります。たとえば、HTTP live streaming(HLS)MPEG-DASHは、どちらもトランスポートにTCPを使用するストリーミングプロトコルです。多くのビデオオンデマンドサービスでもTCPを使用しています。

バッファリングとは?

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

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

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

ネットワーク側の要因:

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

ユーザー側の要因:

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

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

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

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

Cloudflare Streamの詳細は、こちらをご確認ください