なぜAPIなのか?
読者の皆さんの周囲でも動画を扱う機会がだいぶ増えてきていると思います。高性能なモバイルデバイスの普及で、
動画を効率的にストリーミング配信する場合には、
商用サービス規模になると、
現在のコンテンツ管理システムと、
Microsoft Azureメディアサービスは、
そのほとんどの機能をREST APIとして公開しています。ですので、
つまり、
すでに、
Media ServicesのAPI
ここでは、

すべての基盤は、
メディアサービスでは、
API呼び出しの内部では、

REST APIは、
ここでは、
- .NET
- https://
www. nuget. org/ packages/ windowsazure. mediaservices - https://
github. com/ Azure/ azure-sdk-for-media-services - Java
- http://
msdn. microsoft. com/ en-us/ library/ azure/ hh690946. aspx - PHP
- https://
github. com/ Azure/ azure-sdk-for-php - Node.
js - https://
github. com/ fritzy/ node-azure-media
オブジェクトモデル
すべてはCloudMediaContextオブジェクトから始まります。

以下の3つのオブジェクトで、
- ファイルをアップロードすることは、
Assetの作成 - エンコードなどをするためには、
Jobの作成 - 配信をするためには、
Locatorの作成
2つの.NET SDK
.NET SDKでは、

Media Services .NET SDKが当初より提供されていたものです。REST API形式に比較的忠実ですので、
/// 空のAsset作成
var ingestAsset = Context.Assets.Create(
targetFile.Name,
AssetCreationOptions.None
);
/// 空のAssetFile作成
var ingestAssetFile = ingestAsset.AssetFiles.Create(
targetFile.Name);
/// ファイル転送モニタリングオブジェクト作成
BlobTransferClient transferClient = new BlobTransferClient();
transferClient.TransferProgressChanged += (s, e) =>
{
Console.WriteLine(" {0}: 経過 {1}%", e.LocalFile, e.ProgressPercentage);
};
/// ファイルがアップロード完了する間だけ、公開ポイントを作成
var uploadAccessPolicy = Context.AccessPolicies.Create(targetFile.Name,
TimeSpan.FromHours(3),
AccessPermissions.Write | AccessPermissions.List);
var locator = Context.Locators.CreateLocator(LocatorType.Sas,
ingestAsset,
uploadAccessPolicy);
/// ファイルのアップロードを実行
var uploadTask = ingestAssetFile.UploadAsync(
targetFile.FullName,
transferClient,
locator,
System.Threading.CancellationToken.None);
ここでは、
.NET SDKをさらに抽象化したものが、
同じ、
var asset = context.Assets.CreateFromFile(
@"C:\Video\azure.wmv",
AssetCreationOptions.None,
(a, p) =>
{
Console.WriteLine(" 経過 {0}%", p.Progress);
});
なんと、 注目をすべき点は、 ここでは、 前回もご紹介したコードですので、 指定したファイルをアップロードする、 とくに重要な引数を説明します。 エンコード時には、 Media Services .NET SDK Extensionsでは、 個々のエンコード設定については、 JobはSubmitをするまでは実行されません。 また、 ストリーミングを行うためには、 ストリーミングサーバの要求後、 MPEG-DASHは、 .NETを使うことで、 まずは手軽に動画配信を楽しんでください。Media Services .NET SDK extensionsでのVODアプリ開発
Azureメディアサービスへの接続
var context = new CloudMediaContext(
"accountName",
"accountKey"
);
ファイルのアップロード
var asset = context.Assets.CreateFromFile(
@"C:\Video\azure.wmv",
AssetCreationOptions.None,
(a, p) =>
{
Console.WriteLine(" 経過 {0}%", p.Progress);
});
引数 説明 Asset
Creation
Optionsストレージ内でファイルを暗号化して保持するかどうかを指定します。 Common
Encryption
ProtectedPlayReadyなどのDRMなどで保護済みのもの Envelope
Encryption
ProtectedAESなどの暗号化で保護されているもの None 暗号化しない Storage
EncryptedAzureで管理しているストレージの暗号化機能を使う エンコード
// 1. ジョブ作成
var job = context.Jobs.CreateWithSingleTask(
MediaProcessorNames.WindowsAzureMediaEncoder,
MediaEncoderTaskPresetStrings.H264AdaptiveBitrateMP4SetSD16x9,
asset,
asset.Name + "- output",
AssetCreationOptions.None);
MediaProcessorNames:
名前 プロセッサ ID 説明 Azure Media Encoder nb:mpid:UUID:70bdc2c3-ebf4-42a9-8542-5afc1e55d217 Media Encoderを使用してエンコードタスクを実行できます。サムネイル作成、 Azure Media Packager nb:mpid:UUID:A2F9AFE9-7146-4882-A5F7-DA4A85E06A93 .mp4からスムーズ ストリーミング形式への変換や、
Azure Media PackagerのタスクプリセットAzure Media Encryptor nb:mpid:UUID:38A620D8-B8DC-4E39-BB2E-7D589587232B PlayReady Protectionを使用して、
Azure Media EncryptorのタスクプリセットStorage Decryption nb:mpid:UUID:aec03716-7c5e-4f68-b592-f4850eba9f10 ストレージ暗号化を使用して暗号化されたメディア資産を解読することができます
MediaEncoderTaskPresetStrings
// 2. ジョブ実行.
job.
配信準備の設定
context.
配信方式 メソッド Smooth Asset. HLS Asset. MPEG-DASH Asset. まとめ