シンプルなビデオストリーミングサービスアーキテクチャを見る
- **ビデオストリーミングサービスとは、リアルタイムでビデオデータを転送するサービスです。**これらのサービスは、ビデオデータをリアルタイムで転送するため、リアルタイムでデータを圧縮して転送する技術が必要です。このような技術には、ビデオキャプチャ、圧縮、符号化、復号、再生などの技術が含まれる。
- 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はセグメントを受け取り、デコードして再 生します。復号とは、映像データを復号する過程を意味し、再生とは、映像データを画面に表示する過程を意味する。