Media Services を使用したビデオとオーディオのエンコード
警告
Azure Media Services は、2024 年 6 月 30 日に廃止されます。 詳細については、 AMS 廃止ガイドを参照してください。
ヒント
サムネイルの生成、2 つのビデオの合成、ビデオのサブクリップまたは回転などを行う必要がありますか? サンプルに関するページに Media Services のサンプル コードがあります。
Media Services では、エンコードという用語は、デジタル ビデオやデジタル オーディオを含むファイルをある標準形式から別の標準形式に変換するプロセスを表します。変換の目的は、(a) ファイルのサイズを減らしたり、(b) 広範なデバイスやアプリと互換性のある形式を生成したりすることにあります。 このプロセスは、ビデオ圧縮やコード変換とも呼ばれます。 この概念の詳細については、「Data compression (データ圧縮)」と「What Is Encoding and Transcoding? (エンコードとコード変換とは)」を参照してください。
通常、ビデオはプログレッシブ ダウンロードまたはアダプティブ ビットレート ストリーミングを介してデバイスとアプリに配信されます。
重要
Media Services では、取り消されたまたはエラーをスローするジョブに対する課金は行われません。 たとえば、進行状況が 50% で取り消されたジョブが、ジョブの分数の 50% に対して課金されることはありません。 完了したジョブに対してのみ課金されます。
- プログレッシブ ダウンロードによって配信する場合、Azure Media Services を使用してデジタル メディア ファイル (中間ファイル) を MP4 ファイルに変換できます。MP4 には、H.264 コーデックでエンコードされているビデオと、AAC コーデックでエンコードされているオーディオが含まれています。 この MP4 ファイルは、ご使用のストレージ アカウントの資産に書き込まれます。 Azure Storage API または SDK (Storage REST API、.NET SDK など) を使用して、ファイルを直接ダウンロードできます。 ストレージで特定のコンテナー名を使用して出力資産を作成した場合は、その場所を使用してください。 それ以外の場合は、Media Services を使用して、資産コンテナーの URL を一覧表示できます。
- アダプティブ ビットレート ストリーミングによって配信するコンテンツを準備するには、中間ファイルを複数のビット レート (高から低) でエンコードする必要があります。 品質を適切に推移させるために、ビットレートが低下するとビデオの解像度が低下します。 これにより、解像度とビットレートの表である、いわゆるエンコード ラダーが生成されます (自動生成されたアダプティブ ビットレート ラダーに関するページを参照するか、コンテンツに対応したエンコード プリセットを使用してください)。 Media Services を使用して、中間ファイルを複数のビットレートでエンコードできます。 これにより、一連の MP4 ファイルと、それらに関連付けられたストリーミング構成ファイルが得られ、ご利用のストレージ アカウント内のアセットに書き込まれます。 次に、Media Services のダイナミック パッケージ機能を使用して、MPEG DASH や HLS などのストリーミング プロトコルを介して動画を配信します。 そのためには、ストリーミング ロケーターを作成し、サポートされているプロトコルに対応するストリーミング URL を構築します。次に、これらは機能に基づいてデバイスやアプリに渡すことができます。
変換およびジョブ
Media Services v3 でエンコードするには、変換とジョブを作成する必要があります。 変換では、エンコード設定と出力のレシピを定義します。ジョブはレシピのインスタンスです。 詳しくは、「Transform と Job」をご覧ください。
Media Services でエンコードする場合、プリセットを使用してエンコーダーに入力メディア ファイルの処理方法を指示します。 Media Services v3 では、Standard Encoder を使用してファイルをエンコードします。 たとえば、エンコードされたコンテンツに必要なビデオ解像度やオーディオ チャンネルの数を指定できます。
業界のベスト プラクティスに基づく組み込みのプリセットのいずれかを使用して、すぐに始めることができます。また、特定のシナリオやデバイスの要件を対象とするカスタム プリセットを作成することもできます。
2019 年 1 月より、Standard Encoder でエンコードして MP4 ファイルを生成すると、新しい .mpi ファイルが生成され、出力アセットに追加されます。 この MPI ファイルの目的は、ダイナミック パッケージとストリーミングのシナリオのパフォーマンスを向上させることです。
注意
MPI ファイルを変更または削除したり、サービスにこのようなファイルが存在するかどうかに依存しないようにしてください。
組み込みのプリセット
Media Services は、次の組み込みのエンコード プリセットをサポートしています。
BuiltInStandardEncoderPreset
BuiltInStandardEncoderPreset は、Standard Encoder で入力ビデオをエンコードする組み込みのプリセットの設定に使用されます。
現在サポートされている組み込みのプリセットは次のとおりです。
EncoderNamedPreset.AACGoodQualityAudio: 192 kbps でエンコードされたステレオ オーディオのみを含む単一の MP4 ファイルを生成します。
EncoderNamedPreset.AdaptiveStreaming: これは、H.264 アダプティブ ビットレート エンコードをサポートしています。 詳細については、ビットレート ラダーの自動生成に関するページを参照してください。
EncoderNamedPreset.H265AdaptiveStreaming : AdaptiveStreaming プリセットに似ていますが、HEVC (H.265) コーデックを使用します。 H.265 ビデオとステレオ AAC オーディオを使用して、GOP 調整された MP4 ファイルのセットを作成します。 入力解像度、ビットレート、フレーム レートに基づいてビットレート ラダーを自動生成します。 自動生成されたプリセットが、入力解像度を超えることはありません。 たとえば、入力が 720p の場合、出力は最大で 720p のままになります。
EncoderNamedPreset.ContentAwareEncoding: H.264 のコンテンツに対応したエンコードのプリセットを公開します。 コンテンツに対応したエンコードを使用して、GOP がアラインメントされた MP4 セットを生成します。 入力コンテンツを指定すると、サービスによって入力コンテンツに対する最初の簡単な分析が実行され、その結果を使用して、アダプティブ ストリーミングによる配信に最適なレイヤーの数、適切なビット レートと解像度の設定が決定されます。 このプリセットは、複雑さが低から中程度のビデオに特に有効です。つまり、ビット レートは低くなりますが、視聴者には快適なエクスペリエンスを提供できる品質を備えた出力ファイルということになります。 出力には、ビデオとオーディオがインターリーブされた MP4 ファイルが含まれるようになります。 このプリセットでは、1080P HD までの出力のみが生成されます。 4K 出力が必要な場合は、"maxHeight" プロパティを使用することにより、PresetConfigurations でプリセットを構成できます。 詳細については、コンテンツに対応したエンコードに関する記事を参照してください。
EncoderNamedPreset.H265ContentAwareEncoding: HEVC (H.265) コンテンツに対応したエンコードのプリセットを公開します。 コンテンツに対応したエンコードを使用して、GOP がアラインメントされた MP4 セットを生成します。 入力コンテンツを指定すると、サービスによって入力コンテンツに対する最初の簡単な分析が実行され、その結果を使用して、アダプティブ ストリーミングによる配信に最適なレイヤーの数、適切なビット レートと解像度の設定が決定されます。 このプリセットは、複雑さが低から中程度のビデオに特に有効です。つまり、ビット レートは低くなりますが、視聴者には快適なエクスペリエンスを提供できる品質を備えた出力ファイルということになります。 出力には、ビデオとオーディオがインターリーブされた MP4 ファイルが含まれるようになります。 このプリセットでは、4K HD までの出力が生成されます。 8K 出力が必要な場合は、"maxHeight" プロパティを使用することにより、PresetConfigurations でプリセットを構成できます。
EncoderNamedPreset.H264MultipleBitrate1080p: GOP がアラインメントされた、ビットレートが 6,000 kbps から 400 kbps、オーディオが AAC ステレオである 8 つの MP4 ファイルを生成します。 解像度の上限は 1080p で下限は 360p です。
EncoderNamedPreset.H264MultipleBitrate720p: GOP がアラインメントされた、ビットレートが 3,400 kbps から 400 kbps、オーディオが AAC ステレオである 6 つの MP4 ファイルを生成します。 解像度の上限は 720p で下限は 360p です。
EncoderNamedPreset.H264MultipleBitrateSD: GOP がアラインメントされた、ビットレートが 1,600 kbps から 400 kbps、オーディオが AAC ステレオである 5 つの MP4 ファイルを生成します。 解像度の上限は 480p で下限は 360p です。
EncoderNamedPreset.H264SingleBitrate1080p: ビデオが 6750 kbps の H.264 コーデックと 1,080 ピクセルの画像の高さでエンコードされ、ステレオ オーディオが 128 kbps の AAC-LC コーデックでエンコードされた、MP4 ファイルが生成されます。 オーディオのビットレートを低くしたい場合は、変換でカスタム エンコード プリセットを作成し、サンプリング レートまたはチャネル数を調整して、AAC-LC の値を小さくすることができます。
EncoderNamedPreset.H264SingleBitrate720p: ビデオが 4,500 kbps の H.264 コーデックと 720 ピクセルの画像の高さでエンコードされ、ステレオ オーディオが 128 kbps の AAC-LC コーデックでエンコードされた、MP4 ファイルが生成されます。 オーディオのビットレートを低くしたい場合は、変換でカスタム エンコード プリセットを作成し、サンプリング レートまたはチャネル数を調整して、AAC-LC の値を小さくすることができます。
EncoderNamedPreset.H264SingleBitrateSD: ビデオが 2,200 kbps の H.264 コーデックと 480 ピクセルの画像の高さでエンコードされ、ステレオ オーディオが 128 kbps の AAC-LC コーデックでエンコードされた、MP4 ファイルが生成されます。 オーディオのビットレートを低くしたい場合は、変換でカスタム エンコード プリセットを作成し、サンプリング レートまたはチャネル数を調整して、AAC-LC の値を小さくすることができます。
EncoderNamedPreset.H265SingleBitrate720P: ビデオが 1,800 kbps の HEVC (H.265) コーデックと 720 ピクセルの画像の高さでエンコードされ、ステレオ オーディオが 128 kbps の AAC-LC コーデックでエンコードされた、MP4 ファイルが生成されます。
EncoderNamedPreset.H265SingleBitrate1080p: ビデオが 3500 kbps の HEVC (H.265) コーデックと 1,080 ピクセルの画像の高さでエンコードされ、ステレオ オーディオが 128 kbps の AAC-LC コーデックでエンコードされた、MP4 ファイルが生成されます。
EncoderNamedPreset.H265SingleBitrate4K: ビデオが 9,500 kbps の HEVC (H.265) コーデックと 2,160 ピクセルの画像の高さでエンコードされ、ステレオ オーディオが 128 kbps の AAC-LC コーデックでエンコードされた、MP4 ファイルが生成されます。
最新のプリセットの一覧を見るには、ビデオのエンコードに使用される組み込みのプリセットに関する記事をご覧ください。
カスタム プリセット
Media Services では、特定のエンコーディング ニーズと要件を満たすようにプリセットのすべての値をカスタマイズできます。
BuiltInStandardEncoderPreset
StandardEncoderPreset には、Standard Encoder を使用して入力ビデオをエンコードするときに使用する設定を記述します。 変換プリセットをカスタマイズする場合は、このプリセットを使用します。
考慮事項
カスタム プリセットを作成するときは、次の考慮事項が適用されます。
- AVC コンテンツの高さと幅のすべての値は、4 の倍数である必要があります。
- Azure Media Services v3 では、エンコード ビットレートはすべてビット/秒単位で指定されます。 これは v2 API のプリセットとは異なります。v2 では、キロビット/秒が単位として使用されていました。 たとえば、v2 でビットレートが 128 (キロビット/秒) に指定されていた場合、v3 では 128000 (ビット/秒) に設定されます。
プリセット スキーマ
Media Services v3 では、プリセットは API 自体で厳密に型指定されたエンティティです。 これらのオブジェクトの "スキーマ" 定義は、Open API の仕様 (または Swagger) にあります。 プリセット定義 (StandardEncoderPreset など) は、REST API、.NET SDK (またはその他の Media Services v3 SDK のリファレンス ドキュメント) でも確認できます。
v3 でのエンコードのスケーリング
2020-05-01 以降のバージョンの API または Azure portal を使用して作成されたアカウントの場合、スケーリングとメディア占有ユニットは必要なくなりました。 スケーリングは自動で行われ、サービスによって内部的に処理されます。
課金
Media Services では、取り消されたジョブまたはエラーのあるジョブに対する課金は行われません。 たとえば、進行状況が 50% で取り消されたジョブが、ジョブの分数の 50% に対して課金されることはありません。 完了したジョブに対してのみ課金されます。
詳細については、価格に関するページを参照してください。
エンコードのサンプル
エンコード サンプルの広範な一覧を参照してください。
ヘルプとサポート
質問がある場合は Media Services に問い合わせるか、次のいずれかの方法で更新内容に従ってください。
- Q & A
-
Stack Overflow。 質問に タグを付けます
azure-media-services
。 - @MSFTAzureMedia するか 、@AzureSupport を使用してサポートを要求します。
- Azure portalからサポート チケットを開きます。