タコライスライスタコス

試したことのメモ

Azure Media Indexer2プレビューを試してみた ~C#版~

久しぶりにAzure MediaServicesの投稿です。

今回は、Azure Media Indexer2プレビューを利用して、動画から字幕ファイルを作成します。

日本語はIndexer2からの対応となっています。

 

準備するもの

Visual Studio Community

・字幕を作成したい動画

・Azureアカウント

 

環境構築

1.AzureでMedia Servicesのワークフローを作成

  MarketPlaceでMedia Servicesで検索し、作成ボタンをクリック。

  その後、設定を入れて作成してください。

 

2.Media Servicesの開発環境構築

  今回はC#を利用して開発します。

  環境構築の手順はこちら。

docs.microsoft.com

 上記ブログの中に記載されている、サービスプリンシパル認証に必要なClientIDとClientSecretは以下の手順で取得出来ます。

(1)作成したMedia Servicesを選択

(2)左側のメニューから「API」を選択

(3)右側に表示された項目のうち、下段の「サービスプリンシパル認証」を選択

f:id:sakusakulager:20180115213808p:plain

(4)AzureADアプリを設定し「保存」を押すと、この様な画面が表示されます。

f:id:sakusakulager:20180115220656p:plain

(5)Azure Active DirectoryテナントドメインREST APIの内容は後で使用します。

(6)「アプリケーションの管理」をクリックし、ClientID/Secret情報を取得します。

f:id:sakusakulager:20180115221650p:plain

アプリケーションIDがClientIDの情報です。

ClientSecretは右側の「キー」をクリックして設定します。

f:id:sakusakulager:20180115221840p:plain

「説明」「有効期限」を設定し「保存」をクリック。

その時だけ「値」が表示されるので必ずコピーするようにしましょう。

この時以外では「値」を見る事が出来なくなります。

この値がClientSecretです。

 

字幕作成機能開発(メディアファイルのインデックス作成)

手順はこちらを参考にしました。

docs.microsoft.com

(7)JSONファイルについて

JSON形式で構成プリセットを作成します。

 

 今回は音声が英語の動画のため、LanguageはenUsのまま利用します。

別の言語であれば、「サポートされている言語」の項目に記載のある言語の4文字コードを利用してください。

ここで音声と言語設定が異なった場合でも字幕は作成されますが、内容が凄いことになります。

(8)プログラムの内容について

動画のファイルパスなどの指定をすべてapp.configで管理するために、サンプルコードの一部を変更しました。

f:id:sakusakulager:20180115230741p:plain

 (9)ビルド→デバッグ

ビルド後でバックすると、この様なウィンドウが表示されます。

f:id:sakusakulager:20180115231000p:plain

 正常に終了すると、最後にJob is finishedと表示され指定したフォルダに生成された字幕ファイルが置かれます。

処理の状況はAzureポータルのMedia Servicesの「ジョブ」からも確認することができます。

f:id:sakusakulager:20180115231355p:plain

「名前」はプログラム内に記載されているので変更することが可能です。

「状態」は処理中や完了といった処理の状態を表示します。

「開始時刻」は処理が開始された時刻、「完了時刻」は処理が完了された時刻です。

クリックするとその処理の詳細を確認することができます。

今回は2分半ぐらいの短い動画を利用したので、字幕作成には2分程度しかかかっていません。

 

まとめ

 事前に準備するものが多い(特に認証関係)ですが、そこをクリアしてサンプルプログラムを利用すると比較的簡単に字幕を作成することができます。

 

補足

もっと手軽に字幕を作成したい方は、こちらの記事を参考に試してみてください。

その際、Azure Media Services Explorerが必要となります。

qiita.com