※ 本記事は、Sathya Velirによる”Stream video using OCI Media Services“を翻訳したものです。

2022年12月7日


このブログでは、リソースやLiveLabsなど、メディア・サービスを使用してOracle Cloud Infrastructure(OCI)のビデオをストリーミングし、知識をさらに深めるために役立つ主な概念について説明します。

OCIは、メディア・サービスでOCI Media FlowとOCI Media Streamsの2つのサービスを提供しています。OCI Media Flowは、ビデオをエンコードして異なるレンディション、コンテナ、フォーマットに変換するプラットフォームです。ビデオが処理された後、他のサービスであるOCI Media Streamsを使用して、リージョン内のOCI Edgeまたはコンテンツ配信ネットワーク(CDN)を介してストリーミングできます。OCI Media Servicesは、コスト効率に優れたスケーラブルなAI対応、APIリッチなサービスです。

データのストリーミングに加えて、AIサービスを使用したビデオ・コンテンツ分析が次のプロセスで重要になりました。:

  • コンテンツがビューアに適しているかどうかを検証
  • ビデオ内のオブジェクトまたはテキストを検出
  • 音声記録の実行

次の図は、一般的なワークフローを示しています。各サービスについて学習するには、以下をお読みください。

A graphic depicting a typical workflow of media streaming.

OCI Media Flow

ビデオをストリーミングする基盤は、ユーザー・ベースおよび必要な様々なレンディションに基づいてデータを最適にトランスコーディングすることです。OCI Media Flowは、ビデオ・ファイルを別のコーデックおよびコンテナにエンコードまたはトランスコードし、サムネイルを生成し、OCI AI Speech、AI言語およびAI Visionサービスを統合するためのワークフローベースのビデオ処理サービスです。ワークフローは、個々の作業を定義するタスクで構成されます。

ビデオはOCI Object Storageバケットにドロップされ、メディア・ワークフロー・タスクによってファイルがプルされ、コア・タスクを使用してファイルがトランスコードおよび処理されます。すべての結果ファイルは、Object Storageバケットに戻されます。

タスクは個別ですが、それぞれが満たす必要がある前提条件があります。たとえば、Object Storageからファイルを取得しないと、トランスコード・タスクを実行できません。構成で定義された一連の結合タスクは、メディア・ワークフローと呼ばれます。メディア・ワークフロー・ジョブは、メディア・ワークフロー・ジョブ・パラメータとして指定された入力ファイルを使用して定義済タスクを実行するメディア・ワークフローのインスタンスです。

メディア・ワークフローには次のタスクを含めることができます。:

  • getFiles: OCI Object StorageバケットからOCI Media Flowサービスにファイルを取得します。
  • transcode: ファイルは、次のいずれかのオプションを使用して、要求されたコーデックおよびコンテナにトランスコードされます。:
    • Standardトランスコード: Standardパラメータは、バランスのとれた品質と速度に適用されます。
    • 最適化速度: トランスコードは、出力コンテンツを高速なコンテンツ配信に最適化するように最適化されています。
    • 最適化された品質: トランスコード・パラメータは、最高品質の出力の提供に集中します。
  • transcribe: 音声が抽出され、OCI AI Speechサービスに送信され、記録された音声テキスト・コンテンツを含むJSONオブジェクトを取得します。
  • visionDetection: フレームはビデオから抽出され、OCI AI Visionサービスに送信され、オブジェクト検出情報を含むJSONデータを取得します。
  • サムネイル: サイズが設定されたビデオからサムネイルが生成されます。
  • ingest: トランスコード・タスクでOCI Media Streamsでサポートされているファイルが作成される場合に有効です。たとえば、HLSパッケージを作成するトランスコードは、OCIメディア・ストリームの分散チャネルへの取込みに有効です。
  • putFiles: トランスコーディングおよびサムネイルのタスクから生成されたすべての出力ファイルは、OCIオブジェクト・ストレージに格納されます。

JSONを使用してメディア・ワークフローを管理し、ドキュメントからの指示に従ってアクセスできます。

メディア・ワークフロー・ジョブは、実行時にバケット名やビデオ・ファイル名などのパラメータ、およびメディア・ワークフロー・ジョブ・パラメータでオーバーライドできる事前定義済パラメータとしてのメディア・ワークフロー構成を取得します。

OCI Media Servicesの重要な要素の1つは、各ビデオとその出力をOCI Media Servicesに登録して、一意の資産IDを取得できることです。操作を容易にするために、資産を親子関係にマップすることもできます。

putFilesタスクでは、““registerMetadata”: true.”を使用して、資産登録が必要かどうかを伝えることができます。

A graphic depicting the components of a media flow.

タスク定義を使用してメディア・ワークフローを構築し、メディア・ワークフロー・ジョブを実行するためのJavaサンプル・コードは、「Media Flow」を参照してください。

OCI Media Streams

ビデオがトランスコードされた後、標準技術でストリーミングする準備が整います。OCI Media Streamsは、コンテンツ配信ネットワーク(CDN)またはOCI Edgeの場所を介して、HTTP Live Streaming HLSおよびDynamic Adaptive Streaming over HTTP(DASH)を使用して、OCI Media Streamsセッション・トークンで認可されたメディア・コンテンツを提供します。OCI Media Streamsには、サービス内にAkamai CDN統合オプションがあります。ただし、他のCDNはOCIメディア・ストリームでも機能します。現在、これはビデオオンデマンド(VOD)コンテンツのみをサポートしています。次の重要な用語を定義します。:

  • 分散チャネル: CDNまたはエッジ構成定義を含むHTTPストリーミング・エンドポイント
  • パッケージ化: AES128で暗号化されたHLSストリーミングでセグメントが必要になる秒数など、配信用にコンテンツをパッケージ化する方法を定義します。
  • AES 128対称暗号化では、Oracleまたは顧客管理キーを使用してキーを管理できます。
  • 取込み: 指定されたマスター・プレイリストを使用して、子コンテンツを検証し、ジャストインタイム・パッケージングの準備を整えます。このプロセスでは、マスタープレイリストだけを入力として取得するか、エラーを返します。後処理では、資産IDが生成されます。
  • セッション・トークン: OCI Media Streamsを介してストリーミングするための特定のビデオへのアクセスを提供する英数字の値。セッション・トークンは最大24時間有効で、その期間後に新しいセッション・トークンを生成する必要があります。

ディストリビューション・チャネルには、AES128暗号化を使用するものや、AES128暗号化を使用しないものなど、複数のパッケージ構成を設定でき、複数のビデオが取り込まれます。ビデオを再生するには、パラメータとしてアセットIDおよびパッケージ構成IDを使用してセッション・トークンを生成する必要があります。

A graphic depicting the components of a media stream.

メディア・ストリーム・コンポーネントの作成、メディア・フローによって作成されたアセットの取込み、および再生用のURLの生成のためのJavaコード・サンプルは、「Media Streams」を参照してください。生成されたURLは、video.jsやSafari WebブラウザなどのHLSプレーヤでネイティブに動作します。

次の図は、全体的な消費量を示しています。:

A graphic depicting the overall consumption of files through Media Flow, Media Streams, and to consumers.

まとめ

メディアおよびエンターテイメントは、絶えず成長しており、継続的に革新的で、競争の激しい業界です。多くのスタートアップ企業は、限られた予算でゼロからの開発を通じて、膨大なイノベーションを生み出しています。OCIは、スタートアップ企業がイノベーションに集中し、テクノロジーの支出を抑えるための使いやすいプラットフォームを提供します。OCI Media Servicesは、競争の激しい市場向けに価格設定されており、OCI AI統合の広範なメリットをメディア・アプリケーション開発者が簡単に利用できるように提供しています。

Media ServicesのOCI LiveLab手順のウォークスルーを使用して、Oracle Cloudコンソールまたはその他のオプション(Postman、OCI CLI、Python SDK、Java SDK、Terraform、OCI Media StreamsによるAkamai CDN設定のその他の構成例を使用したAPIの操作など)を試すことができます。

詳細は、次のリソースを参照してください。: