こんにちは。Azure サポートの土屋です。
Azure Media Services では動画を配信するだけでなくエンコードしたり解析処理をしたりする機能もあります。その中で、字幕を作成する機能について紹介します。
#1. 字幕について
Azure Media Indexer によるメディア ファイルのインデックス作成 に紹介されているようにアップロード済みの動画をポータルからまたは SDK を使用して作成が出来ます。
内部では Azure Video Indexer を使用しているためサポート状況および品質は Azure Video Indexer の状況に依存致しまして、Azure Media Indexer 2 (Preview) は日本語にも対応しております。
#2. ツールを使って作成
ポータルからだと日本語に対応している Azure Media Indexer 2 が選択出来ないので Azure Media Services の便利ツール Azure Media Services Explorer を使用します。こちらはソースコードも公開されてますので Media SDK のサンプルとしても利用できます。このツールが公開されてから SDK の使い方に関するお問い合わせが著しく減少した便利ツールです。
アダプティブ化する前の単一の MP4 ファイルを選択して Azure Media Indexer 2 を選択します。
言語設定で言語を設定、インデックス作成オプションから TTML、SAMI、WebVTT の希望する形式を設定してインデックス作成を押せばいいだけ。簡単!結果はアセットとして Azure Media Services 上に保存されます。
複数の形式を同時に作成しても公開前にプライマリ設定を変更することで任意の形式を利用できますが、今回は説明を簡単にするために WebVTT を選択します。
3. 字幕を公開
公開方法として字幕もストリーミングとして公開する方法と、ストレージから公開する方法があります。しかし、ストレージから公開すると Blob ストレージの URL になるためストリーミングの URL とクロスドメインになります。なので、ストリーミングとして公開することをオススメします。
公開は作成した VTT ファイルのアセットを選択してロケーターを作成します。
ロケーターのタイプとしてストリーミングロケーターと SAS ロケーター (ストレージからの公開) の選択が可能ですがストリーミングロケーターを選択します。
そうすると以下のような字幕の URL が取得されます。
https://*.streaming.mediaservices.windows.net/*/*.vtt
作成された字幕の URL をポータルですと Azure Portal を使用したオン デマンド コンテンツ配信の概要 にある手順で公開されたストリーミング URL と一緒に使用します。こちらの公開も Azure Media Explorer を使用すると便利です。
4. Azure Media Player に設定
Azure Media Player は動的に対象のクライアントで利用可能なテクノロジーを選択して再生してくれる無償のプレーヤーです。使い方は、Announcing Azure Media Player を参照して下さい。Azure CDN 上にホストされているので、バージョンを指定してダウンロードして使用します。
サンプルでもあるように以下のように source でストリーミング URL を manifest まで指定して使用します。ここに "captions" として作成された VTT ファイルの URL を設定するば字幕として表示されます。
<source src="https://*.streaming.mediaservices.windows.net/*/*.ism/manifest" type="application/vnd.ms-sstr+xml" />
<track label="Japanese" kind="captions" src="https://*.streaming.mediaservices.windows.net/*/*.vtt" srclang="ja" default></track>
もちろん複数言語の字幕の設定も可能で、OS の言語設定により使用する言語が選択されます。簡単なので是非使ってみて下さい。