メインコンテンツにスキップ

シンプルなビデオストリーミングサービスアーキテクチャを見る

  • **ビデオストリーミングサービスとは、リアルタイムでビデオデータを転送するサービスです。**これらのサービスは、ビデオデータをリアルタイムで転送するため、リアルタイムでデータを圧縮して転送する技術が必要です。このような技術には、ビデオキャプチャ、圧縮、符号化、復号、再生などの技術が含まれる。
  • Netflix、Disney+、YouTube、Twitchなどのサービスは、ビデオストリーミングサービスを提供するサービスです。これらのサービスは、世界中で多くのユーザーが使用しており、大量のデータを処理しています。ネットワークの発達によりストリーミングサービスがさらに発展しており、4K、8Kなどの高画質ビデオを提供するサービスも登場しています。 *これらのサービスの構造が疑問に思って、簡単なビデオストリーミングサービスアーキテクチャを見てみましょう。サービスによってさまざまな構造がありますが、今回は簡単なビデオストリーミングサービスアーキテクチャを見てみましょう。 *実際のサービスははるかに複雑で、さまざまな技術を使用しているので、参考のためだけに見てください。

ビデオストリーミングサービスアーキテクチャ

*以下はシンプルなビデオストリーミングサービスアーキテクチャです。

  • ビデオストリーミングサービスは、大幅にビデオデータを送信するSendDevice、サーバーからビデオデータを処理するサーバー、ビデオデータを受信するWatchDeviceで構成されています *それぞれは以下の役割を果たします。
    • SendDevice:ビデオデータをキャプチャして圧縮する役割を果たします
    • Server:ビデオデータを処理して転送する役割を果たします。
    • WatchDevice:サーバーからビデオデータを受信して​​再生する役割を果たします。

ビデオストリーミングサービスアーキテクチャ図

SendDevice

  • Youtube、Twitchなどのサービスで放送を行う場合、SendDeviceは放送をしているユーザーのコンピュータまたはモバイル機器になることがあります。
  • ** SendDeviceはビデオデータをキャプチャして圧縮する役割を果たします。
  • **ビデオをサーバーに送信する前にビデオデータを圧縮する理由は、ネットワーク帯域幅を節約するためです。ビデオデータは画像データの連続なので、画像データを圧縮すると帯域幅を節約できます。
    • H.264、H.265などのビデオ圧縮コーデックと、AAC、MP3などのオーディオ圧縮コーデックを使用してビデオデータを圧縮します。
  • SendDeviceで圧縮されたビデオデータはサーバーに送信されます。
    • ただし、SendDevice で圧縮せずにビデオデータをサーバーに転送する場合もあります。この場合、サーバーでビデオデータを圧縮するプロセスがさらに必要です。

Server

  • Serverはビデオデータを処理して転送する役割を果たします。 Serverはビデオデータを受信して​​処理し、WatchDeviceに転送します。
  • Server は 1 つのサーバーで構成されていても、複数のサーバーで構成されている場合もあります。大規模サービスの場合は、複数のサーバーで構成されています。
  • 540p、720p、1080p、4Kなどのさまざまな解像度のビデオデータを事前に準備し、ユーザーの要求に応じて適切な解像度のビデオデータを転送します。
    • ユーザーのネットワーク状態に応じて適切な解像度のビデオデータを転送する必要があります。 *ユーザーの要求に応じて適切な解像度のビデオデータを送信すると、ユーザーはビデオをすばやく視聴できます。
    • ユーザーの要求に応じて適切な解像度のビデオデータを送信するプロセスをAdaptive Bitrate Streamingと呼びます。 *サーバーはビデオデータを受け取り、処理するプロセスを以下に示します。
    • ビデオデータを受け取り、セグメントに分割するプロセスを実行します。 *セグメントは、ビデオデータを分割して送信する単位です。セグメントは一定の長さに分けて送信し、WatchDeviceはセグメントを受け取り再生します。 *最初に入力されたビデオデータをセグメントに分割する過程をセグメンテーション(Segmentation)といいます。 *セグメントはHTTP Live Streaming(HLS)やMPEG-DASHなどのプロトコルを使用して送信します。 *ビデオデータを分割しないと、ユーザーはビデオをすばやく再生できません。セグメントに分割して送信すると、ユーザーはビデオをすばやく再生できます。
    • セグメントをCDNに転送します
      • CDNはContent Delivery Networkの略で、コンテンツ配信ネットワークを意味します。
      • CDNは世界中に分散しているサーバーで構成されており、ユーザーにすばやくコンテンツを転送できます。

WatchDevice

  • WatchDeviceは、サーバーからビデオデータを受信して​​再生する役割を果たします。 WatchDeviceは、ビデオを視聴するユーザーのコンピュータまたはモバイルデバイスになることができます。
  • WatchDeviceはCDNからセグメントを受け取り再生します。セグメントは、一定の長さに分割されたビデオデータである。 HTTP Live Streaming(HLS)やMPEG-DASHなどのプロトコルを使用してセグメントを送信します。
  • WatchDeviceはセグメントを受け取り、デコードして再生します。復号とは、映像データを復号する過程を意味し、再生とは、映像データを画面に表示する過程を意味する。