第20章. ストリーミングサービスのビデオ処理パイプラインを設計する
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
第19章で、メッセージング・アプリケーションにおけるユーザ間のビデオ・ アップロードとダウンロードについて述べた。最適な顧客体験を保証するために、この動画アップロードプロセスでは、サイズを小さくする圧縮や、異なるメディア形式やさまざまなデバイスをサポートするためのトランスコードなど、一定の手順を踏む必要がある。この章では、Netflix、Amazon Prime Video、YouTubeのようなストリーミングサービスのためのビデオ処理パイプラインの構築に焦点を当てる。いつものように、システム要件から始めて、さまざまなステップの詳細に入っていく。この章を通しての設計判断の主なゴールは、ビデオ・コンテンツが最適な品質で、可能な限り最短時間で視聴者に提供されることである。この章の最後では、AWSメディアサービスを使用してAWSクラウド上にシステムをデプロイし、米国のThursday Night Footballやインドのクリケットの試合のような大規模なイベントをライブストリーミングするための考慮事項についても触れる。
システム要件
システムの最も重要な要件は、本番システム(NetflixやAmazon Prime Videoの場合)やユーザ(YouTubeの場合)からアップロードされたビデオを、後で視聴者が簡単にアクセスできるように処理することである。このシステム設計は、映像処理を含むあらゆるシステムに適用できるが、ここではNetflixのシステムの例を使うことにする。
システムの機能要件を定義する前に、明確にしなければならないことがいくつかある:
- システムはアップロードされるファイルのサイズを制限しているか?
-
4K解像度で撮影されたビデオファイルはかなり大きくなる可能性があるため、ファイルサイズに厳しい制限はない。
- システムは、ライブストリーミング、オンデマンドビデオ(VoD)、あるいはその両方を念頭に置いて設計されるべきだろうか?
-
我々は、ビデオ処理パイプラインの主要機能であるVoDに議論を集中させ、AWS Day 0のアーキテクチャ議論ではライブストリーミングに時間を割く。
- スマートテレビ、アンドロイド携帯、iPhone、タブレットなど、ユーザが所有する多種多様なデバイスに対応できるか?
-
システムは、可能な限り最適な品質で、あらゆるタイプのデバイスにビデオコンテンツをストリーミングできる必要がある。
- レコメンデーションのために異なるMLやアナリティクスのコンポーネントを実装できるか?
-
本章では、システムアーキテクチャにMLのコンポーネントを含めない範囲に限定する。
次にシステムの機能要件と非機能要件について話そう。
機能要件と非機能要件
先ほど説明したの考慮事項に基づき、システムは以下の機能要件を提供することが期待できる:
-
本番システムでは、制作会社がメディアコンテンツをアップロードすることができる。
-
ビデオは、視聴者のデバイスごとに異なる形式で、またインターネットの接続性ごとに異なる品質で視聴者に提供されるべきである。
-
動画は、あまりバッファリングされることなく、可能な限り最短時間で視聴者に提供されるべきである。
以下は、このシステムがサポートするNFRである:
-
データは耐久性があるべきである-システムは、ビデオ処理パイプラインの実行中にデータを失うことがあってはならない。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access