OCI Digital Media Services 概要

OCI Digital Media Services(OCI DMS) は、2022年7月20日にリリースされたOracle Cloud Infrastructure(OCI)が提供する動画コンテンツの処理およびスケーラブルな配信を実現するためのフルマネージドサービスです。

OCI DMSは、OCI Media FlowOCI Media Streams の2つのサービスで構成され、OCI Object StorageやOCI AI ServiceなどのOCIのサービスと連携して動作します。OCI DMSの全体像と、各サービスの概要は以下の通りです

OCI Digital Media Services をクイックスタートしてみた

OCI Media Flow

OCI Media Flowは、動画コンテンツを処理するワークフローを構成するためのフルマネージドサービスです。この処理には、動画のトランスコード、サムネイル生成、A​​BRパッケージング、OCI AI Servicesとの統合を含みます

OCI Digital Media Services をクイックスタートしてみた

OCI Media Streams

OCI Media Streams は、HLSなどの形式でパッケージングされた動画ファイルを視聴者に配信するフルマネージドサービスです

OCI Digital Media Services をクイックスタートしてみた

0. 準備

OCI DMSを使うため、以下の準備作業をします

  • OCI環境の取得
  • OCI DMSで利用する各種リソースやポリシーを設定するコンパートメントの作成

1. OCI Media Flowの構成

1.1 ポリシーの設定

OCI DMSのリソースを管理するコンパートメントに、以下2つのポリシーを設定します。今回はクイックスタートのため、ユーザーが所属するグループに対して全てのOCI DMSのサービスmedia-familyを管理できる権限を付与します。さらに、変換前の動画ファイルはOCI Object Storageに登録する必要があるため、Object Storageobject-familyを管理できる権限も設定します

Allow group <グループ名> to manage media-family in compartment <コンパートメント名>
Allow group <グループ名> to manage object-family in compartment <コンパートメント名>

Media Flowのポリシー設定の詳細は、以下ドキュメントをご確認ください

1.2 Object Storage の準備

1.2.1 バケットの作成

Media Flowで利用する動画は、Object Storage の バケット(Bucket) で管理します。ここでは、変換前の動画を保管する入力バケット(InputBucket)と、変換後の動画を保管する出力バケット(OutputBucket)の2つを作成します

  1. OCIコンソールにサインインします

  2. 左上のメニューより ストレージオブジェクト・ストレージとアーカイブ・ストレージを選択
    OCI Digital Media Services をクイックスタートしてみた

  3. 事前に作成したコンパートメントを選択し、バケットの作成 をクリックします
    OCI Digital Media Services をクイックスタートしてみた

  4. バケット名を入力し、作成をクリックします。ここでは InputBucket で作成します
    OCI Digital Media Services をクイックスタートしてみた

  5. 同じ手順を繰り返し、出力バケットを作成します。ここでは OutputBucket で作成します

  6. 作成後は2つのバケット InputBucketOutputBucketが表示されます
    OCI Digital Media Services をクイックスタートしてみた

1.2.2 動画ファイルの登録

変換する前の動画ファイルを InputBucketに登録します。ここではmp4の動画ファイルを登録します

  1. InputBucketをクリックします

  2. オブジェクトのアップロードをクリックします
    OCI Digital Media Services をクイックスタートしてみた

  3. ファイルを選択をクリックし、ローカル環境から任意のmp4形式の動画ファイルを選択し、アップロード をクリックします
    OCI Digital Media Services をクイックスタートしてみた

  4. InputBucketに動画ファイルが登録されます。この動画を変換前の入力動画として使います
    OCI Digital Media Services をクイックスタートしてみた

1.3 メディアワークフローの作成

Media Flowで動画を変換する一連の処理を、メディア・ワークフロー として定義します。メディア・ワークフローは、OCI管理コンソール、API、CLI等から作成できます。今回はOCI管理コンソールより作成します

  1. 左上のメニュー→アナリティックスとAIメディア・フローをクリックします
    OCI Digital Media Services をクイックスタートしてみた

  2. 事前に作成したコンパートメントを選択し、Create Media Workflow をクリックします
    OCI Digital Media Services をクイックスタートしてみた

  3. Create Media Workflowの画面が開きます。画面下部の Configure Tasks for Media Workflowより、ワークフロー内での一連の処理(タスク)を定義します
    OCI Digital Media Services をクイックスタートしてみた

  4. Inputタスクで、変換前の動画ファイルを取り込むObject Storageのバケットを指定します。ここではInputBucketを選択します
    OCI Digital Media Services をクイックスタートしてみた

  5. Transcodeタスクでトランスコード処理を定義します。今回は以下の通りに作成します(ほぼデフォルト設定のまま)

    • Transcode Type: Standard
    • Transcode Option
      • Package type: HLS
      • Segment length: 6
      • Video codec: H.264
      • Audio codec: AAC
    • Ladder: (デフォルトのまま。1080p/720p/480p/360pの4つの画質が作成)
    • Task output: Transcode/
      OCI Digital Media Services をクイックスタートしてみた
  6. OCI AI Services は無効(Disable)のままとします
    OCI Digital Media Services をクイックスタートしてみた

  7. Thumbnailタスクで、サムネイル画像の作成処理を定義します。Task outputに Thumbnail/ を入力し、その他はすべてデフォルト設定のままとします
    OCI Digital Media Services をクイックスタートしてみた

  8. Outputタスクで、変換後の動画ファイルを取り込むObject Storageのバケットを指定します。ここでは OutputBucket を選択します
    OCI Digital Media Services をクイックスタートしてみた

  9. Streamingタスクは、無効(Disable)のままとします

  10. Save をクリックします

  11. メディア・ワークフローの名前を入力し、Saveをクリックします(ここでは Test Media Workflow と設定)
    OCI Digital Media Services をクイックスタートしてみた

  12. メディア・ワークフローが作成されます。Statusが Active であることを確認します
    OCI Digital Media Services をクイックスタートしてみた

1.4 メディアフロージョブの実行

作成したメディアワークフローを実行し、動画ファイルを変換します。なお、メディア・ワークフローの実行単位を メディアフロージョブ(Job) と言います

  1. 前の手順で作成した Test Media Workflow を開き、Run Jobをクリックします
    OCI Digital Media Services をクイックスタートしてみた

  2. Select file from Object Storeで、InputBucketが選択されていることを確認し、事前に登録した変換前の動画を選択します

  3. 続けて、Select save locationで、OutputBucketが選択されていることを確認します。Job output prefixoutput_1/ に変更します

  4. 最後に Run Job をクリックします
    OCI Digital Media Services をクイックスタートしてみた

  5. ジョブが開始されます。ジョブの実行時間は、システム全体の負荷、ユーザーが同時実行したジョブの数、動画ファイルの大きさやトランスコードのパターンにより異なります。しばらくすると、ジョブが完了します
    OCI Digital Media Services をクイックスタートしてみた

  6. 画面をスクロールすると、ワークフロー内のタスクの実行結果やトランスコード後のインデックスファイルや動画ファイル出力された内容Job outputを確認できます
    OCI Digital Media Services をクイックスタートしてみた

  7. Job outputBucket OutputBucket のリンクをクリックすると、Object Storage のOutputBucket が開きます
    OCI Digital Media Services をクイックスタートしてみた

2. OCI Media Streamsの構成

OCI Media Streams は、HLS(HTTP Live Streaming)の形式でパッケージ化された動画コンテンツを視聴者に配信するフルマネージドサービスです。

2.1 ポリシーの設定

OCI Media Streamsは、Media Flowで作成した各種リソースを利用します。そのために、以下2つのポリシーを、DMSの各リソースを管理するコンパートメントに設定します。

Allow service mediaservices to read object-family in compartment <コンパートメント名>
Allow service mediaservices to read media-family in compartment <コンパートメント名>

Media Streamsのポリシー設定の詳細は、以下ドキュメントをご確認ください

2.2 Distribution Channel の作成

Distribution Channel(配信チャネル)は、ユーザーに動画をストリーミング配信するチャネルで、視聴者に対して動画を配信する論理的なエンドポイントとなります

  1. 左上のメニュー→アナリティックスとAIメディア・ストリームをクリックします
    OCI Digital Media Services をクイックスタートしてみた

  2. 事前に作成したコンパートメントを選択し、Create Distribution Channel をクリックします
    OCI Digital Media Services をクイックスタートしてみた

  3. Nameを入力します(ここでは Test Distribution Channel と入力)。続けて、CDNOCI EDGEを選択します。最後に Create をクリックします
    OCI Digital Media Services をクイックスタートしてみた

  4. Distribution Channelが作成されます。Distribution Channelを作成すると、配信チャネル毎にユニークなドメイン名が割り当てられます
    OCI Digital Media Services をクイックスタートしてみた

Distribution Channel作成時、CDNで OCI EDGE を選択すると、OCIがエッジとなり、視聴者に対して動画コンテンツが配信されます。AKAMAI を選択すると、Akamaiがエッジ、OCIをオリジンとなり、視聴者に対して動画コンテンツが配信されます。なお、Akamaiは、お客様にてご準備いただく必要があります

2.3 Packaging Configuration の作成

Distribution Channel内のパッケージング処理を構成します

  1. 作成したDistribution Channelを開き、左下のリソースより、Packaging Configurationsをクリックします
    OCI Digital Media Services をクイックスタートしてみた

  2. Create Packaging Configuration をクリックします
    OCI Digital Media Services をクイックスタートしてみた

  3. 以下の通りに入力し、Createをクリックします

    • Name: Test Packaging Configuration
    • Format: HLS
    • Segment size in seconds: 20
    • Encryption algorithm: NONE
    • KMS Key Id: (未入力)
      OCI Digital Media Services をクイックスタートしてみた
  4. Test Distribution Channel 内に Test Packaging Configuration が作成されます
    OCI Digital Media Services をクイックスタートしてみた

2.4 Distribution ChannelにPlaylist Assetを取り込む

作成したDistribution Channelに配信する動画コンテンツ(HLS形式)を取り込みます。取り込む動画コンテンツは、Media Flowでトランスコードしたファイルを利用します

  1. 作成した Test Distribution Channel を開き、左下のリソースの Playlist Assets をクリックします
    OCI Digital Media Services をクイックスタートしてみた

  2. Ingest Playlist Asset をクリックします
    OCI Digital Media Services をクイックスタートしてみた

  3. バケットで OutputBucket を選択します。続けて、output_1 > Transcodeを開き、master.m3u8 を選択します。最後に Create をクリックします
    OCI Digital Media Services をクイックスタートしてみた

  4. 取り込み処理が開始されます。しばらくすると、Ingest Job Statusが Succeeded に変わると、取り込みが完了します
    OCI Digital Media Services をクイックスタートしてみた

2.5 確認

取り込みが完了した動画コンテンツが正しくストリーミング配信できるか?を確認します。なお、動画の再生を確認するには、hls.jsなどのJavaScriptライブラリを利用したHLSクライアントの実装が必要です。今回は、以下のサイトを利用します

  1. 前の手順で取り込んだ動画コンテンツ(output_1/Transcode/master.m3u8)を開きます

  2. Preview URLの Packaging を選択します。ここでは、前の手順で作成した Test Packaging Configuration を選択します
    OCI Digital Media Services をクイックスタートしてみた

  3. Preview URLが生成されます。コピーをクリックします
    OCI Digital Media Services をクイックスタートしてみた

  4. 別のブラウザで、https://hls-js.netlify.app/demo/ を開きます
    OCI Digital Media Services をクイックスタートしてみた

  5. コピーしたURLを入力し、Applyをクリックします
    OCI Digital Media Services をクイックスタートしてみた

  6. 動画が再生されることを確認します
    OCI Digital Media Services をクイックスタートしてみた

  7. 画面下部の Currently played level に、Media Flowのメディアワークフロー作成時のTranscodeタスクのLadderで指定した画質(360p/480p/720p/1080p)が選択できます
    OCI Digital Media Services をクイックスタートしてみた

おわりに

以上で OCI Digital Media Services のクイックスタートは完了です。とても簡単に使い始めることができます。今回は最もシンプルなTransocode Type= Standard を選択しましたが、Speed OptimizedQuality Optimized なども選択可能です。

さらに、OCI AI Services との連携機能を有効化すると、動画内の音声の文字起こし(English、Portuguese、Spanishをサポート)、動画内のオブジェクト検出やテキスト検出(Englishのみサポート)、も可能となります。

お時間ありましたら、是非一度お試しいただければ幸いです


原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308626656.html

相关文章: