Media Services を使用したビデオとオーディオのエンコードEncoding video and audio with Media Services

Media Services では、エンコードという用語は、デジタル ビデオやデジタル オーディオを含むファイルをある標準形式から別の標準形式に変換するプロセスを表します。変換の目的は、(a) ファイルのサイズを減らしたり、(b) 広範なデバイスやアプリと互換性のある形式を生成したりすることにあります。The term encoding in Media Services applies to the process of converting files containing digital video and/or audio from one standard format to another, with the purpose of (a) reducing the size of the files, and/or (b) producing a format that's compatible with a broad range of devices and apps. このプロセスは、ビデオ圧縮やコード変換とも呼ばれます。This process is also referred to as video compression, or transcoding. この概念の詳細については、「Data compression (データ圧縮)」と「What Is Encoding and Transcoding? (エンコードとコード変換とは)」を参照してください。See the Data compression and the What Is Encoding and Transcoding? for further discussion of the concepts.

通常、ビデオはプログレッシブ ダウンロードまたはアダプティブ ビットレート ストリーミングを介してデバイスとアプリに配信されます。Videos are typically delivered to devices and apps by progressive download or through adaptive bitrate streaming.

重要

Media Services では、取り消されたジョブまたはエラーのあるジョブに対する課金は行われません。Media Services does not bill for canceled or errored jobs. たとえば、進行状況が 50% で取り消されたジョブが、ジョブの分数の 50% に対して課金されることはありません。For example, a job that has reached 50% progress and is canceled is not billed at 50% of the job minutes. 完了したジョブに対してのみ課金されます。You are only charged for finished jobs.

  • プログレッシブ ダウンロードによって配信する場合、Azure Media Services を使用してデジタル メディア ファイル (中間ファイル) を MP4 ファイルに変換できます。MP4 には、H.264 コーデックでエンコードされているビデオと、AAC コーデックでエンコードされているオーディオが含まれています。To deliver by progressive download, you can use Azure Media Services to convert a digital media file (mezzanine) into an MP4 file, which contains video that's been encoded with the H.264 codec, and audio that's been encoded with the AAC codec. この MP4 ファイルは、ご使用のストレージ アカウントの資産に書き込まれます。This MP4 file is written to an Asset in your storage account. Azure Storage API または SDK (Storage REST API.NET SDK など) を使用して、ファイルを直接ダウンロードできます。You can use the Azure Storage APIs or SDKs (for example, Storage REST API or .NET SDK) to download the file directly. ストレージで特定のコンテナー名を使用して出力資産を作成した場合は、その場所を使用してください。If you created the output Asset with a specific container name in storage, use that location. それ以外の場合は、Media Services を使用して、資産コンテナーの URL を一覧表示できます。Otherwise, you can use Media Services to list the asset container URLs.
  • アダプティブ ビットレート ストリーミングによって配信するコンテンツを準備するには、中間ファイルを複数のビット レート (高から低) でエンコードする必要があります。To prepare content for delivery by adaptive bitrate streaming, the mezzanine file needs to be encoded at multiple bitrates (high to low). 品質を適切に推移させるために、ビットレートが低下するとビデオの解像度が低下します。To ensure graceful transition of quality, the resolution of the video is lowered as the bitrate is lowered. これにより、解像度とビットレートの表である、いわゆるエンコード ラダーが生成されます (自動生成されたアダプティブ ビットレート ラダーに関するページを参照)。This results in a so-called encoding ladder–a table of resolutions and bitrates (see auto-generated adaptive bitrate ladder). Media Services を使用して、中間ファイルを複数のビットレートでエンコードできます。You can use Media Services to encode your mezzanine files at multiple bitrates. これにより、一連の MP4 ファイルと、それらに関連付けられたストリーミング構成ファイルが得られ、ご利用のストレージ アカウント内のアセットに書き込まれます。In doing so, you'll get a set of MP4 files and associated streaming configuration files written to an Asset in your storage account. 次に、Media Services のダイナミック パッケージ機能を使用して、MPEG DASHHLS などのストリーミング プロトコルを介して動画を配信します。You can then use the Dynamic Packaging capability in Media Services to deliver the video via streaming protocols like MPEG-DASH and HLS. そのためには、ストリーミング ロケーターを作成し、サポートされているプロトコルに対応するストリーミング URL を構築します。次に、これらは機能に基づいてデバイスやアプリに渡すことができます。This requires you to create a Streaming Locator and build streaming URLs corresponding to the supported protocols, which can then be handed off to devices/apps based on their capabilities.

次の図は、ダイナミック パッケージを使用した、オンデマンド エンコードのワークフローを示しています。The following diagram shows the workflow for on-demand encoding with dynamic packaging.

ダイナミック パッケージを使用したオンデマンド エンコードのワークフロー

このトピックでは、Media Services v3 でコンテンツをエンコードする方法について説明します。This topic gives you guidance on how to encode your content with Media Services v3.

変換およびジョブTransforms and jobs

Media Services v3 でエンコードするには、変換ジョブを作成する必要があります。To encode with Media Services v3, you need to create a Transform and a Job. 変換では、エンコード設定と出力のレシピを定義します。ジョブはレシピのインスタンスです。The transform defines a recipe for your encoding settings and outputs; the job is an instance of the recipe. 詳しくは、「Transform と Job」をご覧ください。For more information, see Transforms and Jobs.

Media Services でエンコードする場合、プリセットを使用してエンコーダーに入力メディア ファイルの処理方法を指示します。When encoding with Media Services, you use presets to tell the encoder how the input media files should be processed. Media Services v3 では、Standard Encoder を使用してファイルをエンコードします。In Media Services v3, you use Standard Encoder to encode your files. たとえば、エンコードされたコンテンツに必要なビデオ解像度やオーディオ チャンネルの数を指定できます。For example, you can specify the video resolution and/or the number of audio channels you want in the encoded content.

業界のベスト プラクティスに基づいて推奨される組み込みのプリセットのいずれかを使用して、すぐに始めることができます。また、特定のシナリオやデバイスの要件を対象とするカスタム プリセットを作成することもできます。You can get started quickly with one of the recommended built-in presets based on industry best practices or you can choose to build a custom preset to target your specific scenario or device requirements. 詳細については、カスタム変換を使用するエンコードに関するページを参照してください。For more information, see Encode with a custom Transform.

2019 年 1 月より、Standard Encoder でエンコードして MP4 ファイルを生成すると、新しい .mpi ファイルが生成され、出力アセットに追加されます。Starting with January 2019, when encoding with the Standard Encoder to produce MP4 file(s), a new .mpi file is generated and added to the output Asset. この MPI ファイルの目的は、ダイナミック パッケージとストリーミングのシナリオのパフォーマンスを向上させることです。This MPI file is intended to improve performance for dynamic packaging and streaming scenarios.

注意

MPI ファイルを変更または削除したり、サービスにこのようなファイルが存在するかどうかに依存しないようにしてください。You shouldn't modify or remove the MPI file, or take any dependency in your service on the existence (or not) of such a file.

HTTPS URL からのジョブ入力の作成Creating job input from an HTTPS URL

自分のビデオを処理するジョブを送信するときに、入力ビデオを検索する場所を Media Services に指示する必要があります。When you submit Jobs to process your videos, you have to tell Media Services where to find the input video. 選択肢の 1 つは、HTTPS URL をジョブ入力として指定することです。One of the options is to specify an HTTPS URL as a job input. 現在、Media Services v3 では HTTPS URL を介したチャンク転送エンコードはサポートされていません。Currently, Media Services v3 doesn't support chunked transfer encoding over HTTPS URLs.

Examples

ローカル ファイルからのジョブ入力の作成Creating job input from a local file

入力ビデオは Media Service 資産として格納できます。この場合は、(ローカルまたは Azure Blob ストレージに格納されている) ファイルに基づいて入力資産を作成します。The input video can be stored as a Media Service Asset, in which case you create an input asset based on a file (stored locally or in Azure Blob storage).

Examples

組み込みのプリセットを使用してローカル ファイルをエンコードするEncode a local file using built-in presets

サブクリップを使用したジョブ入力の作成Creating job input with subclipping

ビデオをエンコードする際に、ソース ファイルをトリミングまたはクリッピングして、入力ビデオの目的の部分のみが含まれる出力を生成するように指定することもできます。When encoding a video, you can specify to also trim or clip the source file and produce an output that has only a desired portion of the input video. この機能は、BuiltInStandardEncoderPreset プリセットまたは StandardEncoderPreset プリセットを使用して構築された変換で動作します。This functionality works with any Transform that's built using either the BuiltInStandardEncoderPreset presets, or the StandardEncoderPreset presets.

オンデマンドまたはライブ アーカイブ (記録されたイベント) のビデオの単一のクリップを使用してジョブを作成するように指定できます。You can specify to create a Job with a single clip of a video on-demand or live archive (a recorded event). 資産または HTTPS URL をジョブ入力にすることができます。The job input could be an Asset or an HTTPS URL.

ヒント

ビデオの再エンコードなしでビデオのサブクリップをストリーミングする場合は、Dynamic Packager によるマニフェストの事前フィルター処理の使用を検討します。If you want to stream a sublip of your video without re-encoding the video, consider using Pre-filtering manifests with Dynamic Packager.

Examples

次の例を参照してください。See examples:

組み込みのプリセットBuilt-in presets

Media Services は、次の組み込みのエンコード プリセットをサポートしています。Media Services supports the following built-in encoding presets:

BuiltInStandardEncoderPresetBuiltInStandardEncoderPreset

BuiltInStandardEncoderPreset は、Standard Encoder で入力ビデオをエンコードする組み込みのプリセットの設定に使用されます。BuiltInStandardEncoderPreset is used to set a built-in preset for encoding the input video with the Standard Encoder.

現在サポートされているプリセットは次のとおりです。The following presets are currently supported:

  • EncoderNamedPreset.AACGoodQualityAudio: 192 kbps でエンコードされたステレオ オーディオのみを含む単一の MP4 ファイルを生成します。EncoderNamedPreset.AACGoodQualityAudio: produces a single MP4 file containing only stereo audio encoded at 192 kbps.
  • EncoderNamedPreset.AdaptiveStreaming (推奨):詳細については、ビットレート ラダーの自動生成に関するページを参照してください。EncoderNamedPreset.AdaptiveStreaming (recommended): For more information, see auto-generating a bitrate ladder.
  • EncoderNamedPreset.ContentAwareEncodingExperimental: コンテンツに対応したエンコードの実験用のプリセットを公開します。EncoderNamedPreset.ContentAwareEncodingExperimental: exposes an experimental preset for content-aware encoding. 入力コンテンツを指定すると、サービスにより、アダプティブ ストリーミングによる配信に最適なレイヤーの数と、適切なビットレートおよび解像度の設定の決定が、自動的に試みられます。Given any input content, the service attempts to automatically determine the optimal number of layers, and appropriate bitrate and resolution settings for delivery by adaptive streaming. 基になるアルゴリズムは、時間と共に進化を続けています。The underlying algorithms will continue to evolve over time. 出力には、ビデオとオーディオがインターリーブされた MP4 ファイルが含まれるようになります。The output will contain MP4 files with video and audio interleaved. 詳細については、「コンテンツに対応したエンコードの試験的プリセット」を参照してください。For more information, see Experimental preset for content-aware encoding.
  • EncoderNamedPreset.H264MultipleBitrate1080p: GOP がアラインメントされた、ビットレートが 6,000 kbps から 400 kbps、オーディオが AAC ステレオである 8 つの MP4 ファイルを生成します。EncoderNamedPreset.H264MultipleBitrate1080p: produces a set of eight GOP-aligned MP4 files, ranging from 6000 kbps to 400 kbps, and stereo AAC audio. 解像度の上限は 1080p で下限は 360p です。Resolution starts at 1080p and goes down to 360p.
  • EncoderNamedPreset.H264MultipleBitrate720p: GOP がアラインメントされた、ビットレートが 3,400 kbps から 400 kbps、オーディオが AAC ステレオである 6 つの MP4 ファイルを生成します。EncoderNamedPreset.H264MultipleBitrate720p: produces a set of six GOP-aligned MP4 files, ranging from 3400 kbps to 400 kbps, and stereo AAC audio. 解像度の上限は 720p で下限は 360p です。Resolution starts at 720p and goes down to 360p.
  • EncoderNamedPreset.H264MultipleBitrateSD: GOP がアラインメントされた、ビットレートが 1,600 kbps から 400 kbps、オーディオが AAC ステレオである 5 つの MP4 ファイルを生成します。EncoderNamedPreset.H264MultipleBitrateSD: produces a set of five GOP-aligned MP4 files, ranging from 1600 kbps to 400 kbps, and stereo AAC audio. 解像度の上限は 480p で下限は 360p です。Resolution starts at 480p and goes down to 360p.
  • EncoderNamedPreset.H264SingleBitrate1080p: ビデオが 6750 kbps の H.264 コーデックと 1,080 ピクセルの画像の高さでエンコードされ、ステレオ オーディオが 64 kbps の AAC-LC コーデックでエンコードされた、MP4 ファイルが生成されます。EncoderNamedPreset.H264SingleBitrate1080p: produces an MP4 file where the video is encoded with H.264 codec at 6750 kbps and a picture height of 1080 pixels, and the stereo audio is encoded with AAC-LC codec at 64 kbps.
  • EncoderNamedPreset.H264SingleBitrate720p: ビデオが 4,500 kbps の H.264 コーデックと 720 ピクセルの画像の高さでエンコードされ、ステレオ オーディオが 64 kbps の AAC-LC コーデックでエンコードされた、MP4 ファイルが生成されます。EncoderNamedPreset.H264SingleBitrate720p: produces an MP4 file where the video is encoded with H.264 codec at 4500 kbps and a picture height of 720 pixels, and the stereo audio is encoded with AAC-LC codec at 64 kbps.
  • EncoderNamedPreset.H264SingleBitrateSD: ビデオが 2,200 kbps の H.264 コーデックと 480 ピクセルの画像の高さでエンコードされ、ステレオ オーディオが 64 kbps の AAC-LC コーデックでエンコードされた、MP4 ファイルが生成されます。EncoderNamedPreset.H264SingleBitrateSD: produces an MP4 file where the video is encoded with H.264 codec at 2200 kbps and a picture height of 480 pixels, and the stereo audio is encoded with AAC-LC codec at 64 kbps.

最新のプリセットの一覧を見るには、ビデオのエンコードに使用される組み込みのプリセットに関する記事をご覧ください。To see the most up-to-date presets list, see built-in presets to be used for encoding videos.

プリセットがどのように使われるかについては、ファイルのアップロード、エンコード、ストリーミングに関する記事を参照してください。To see how the presets are used, see Uploading, encoding, and streaming files.

BuiltInStandardEncoderPresetStandardEncoderPreset

StandardEncoderPreset には、Standard Encoder を使用して入力ビデオをエンコードするときに使用する設定を記述します。StandardEncoderPreset describes settings to be used when encoding the input video with the Standard Encoder. 変換プリセットをカスタマイズする場合は、このプリセットを使用します。Use this preset when customizing Transform presets.

考慮事項Considerations

カスタム プリセットを作成するときは、次の考慮事項が適用されます。When creating custom presets, the following considerations apply:

  • AVC コンテンツの高さと幅のすべての値は、4 の倍数である必要があります。All values for height and width on AVC content must be a multiple of four.
  • Azure Media Services v3 では、エンコード ビットレートはすべてビット/秒単位で指定されます。In Azure Media Services v3, all of the encoding bitrates are in bits per second. これは v2 API のプリセットとは異なります。v2 では、キロビット/秒が単位として使用されていました。This is different from the presets with our v2 APIs, which used kilobits/second as the unit. たとえば、v2 でビットレートが 128 (キロビット/秒) に指定されていた場合、v3 では 128000 (ビット/秒) に設定されます。For example, if the bitrate in v2 was specified as 128 (kilobits/second), in v3 it would be set to 128000 (bits/second).

プリセットのカスタマイズCustomizing presets

Media Services では、特定のエンコーディング ニーズと要件を満たすようにプリセットのすべての値をカスタマイズできます。Media Services fully supports customizing all values in presets to meet your specific encoding needs and requirements. エンコーダー プリセットをカスタマイズする方法の例については、下記の一覧を参照してください。For examples that show how to customize encoder presets, see the list below:

Examples

プリセット スキーマPreset schema

Media Services v3 では、プリセットは API 自体で厳密に型指定されたエンティティです。In Media Services v3, presets are strongly typed entities in the API itself. これらのオブジェクトの "スキーマ" 定義は、Open API の仕様 (または Swagger) にあります。You can find the "schema" definition for these objects in Open API Specification (or Swagger). プリセット定義 (StandardEncoderPreset など) は、REST API.NET SDK (またはその他の Media Services v3 SDK のリファレンス ドキュメント) でも確認できます。You can also view the preset definitions (like StandardEncoderPreset) in the REST API, .NET SDK (or other Media Services v3 SDK reference documentation).

v3 でのエンコードのスケーリングScaling encoding in v3

メディア処理のスケール設定を行うには、CLI を使用したスケーリングに関するトピックをご覧ください。To scale media processing, see Scale with CLI.

課金Billing

Media Services では、取り消されたジョブまたはエラーのあるジョブに対する課金は行われません。Media Services does not bill for canceled or errored jobs. たとえば、進行状況が 50% で取り消されたジョブが、ジョブの分数の 50% に対して課金されることはありません。For example, a job that has reached 50% progress and is canceled is not billed at 50% of the job minutes. 完了したジョブに対してのみ課金されます。You are only charged for finished jobs.

詳細については、価格に関するページを参照してください。For more information, see pricing.

質問、フィードバックの送信、最新情報の入手Ask questions, give feedback, get updates

Azure Media Services community (Azure Media Services コミュニティ)」を参照して、さまざまな質問の方法、フィードバックする方法、Media Services に関する最新情報の入手方法を確認してください。Check out the Azure Media Services community article to see different ways you can ask questions, give feedback, and get updates about Media Services.

次のステップNext steps