非常に詳細で技術的に正確な方法: ストリーミング コンテンツの配信では、Smooth Streams をユーザーに配信するために何をすべきかが明確にわかります。
それ以外に、WaMediaWeb プロジェクトのReadmeとコードを調べることもできます。
public string GetSmoothStreamingOriginLocator(Models.Asset assetToStream)
{
// Get a reference to the manifest file from the collection
// of streaming files in the asset.
var manifestFile = assetToStream.MediaAsset.AssetFiles.Where(x => x.Name.EndsWith(".ism")).FirstOrDefault();
// Cast the reference to a true IFileInfo type.
if (null == manifestFile)
{
return null;
}
// Create an 1-day readonly access policy.
IAccessPolicy streamingPolicy = this.MediaService.MediaContext.AccessPolicies.Create("Streaming policy",
TimeSpan.FromDays(1),
AccessPermissions.Read);
// Create the origin locator. Set the start time as 5 minutes
// before the present so that the locator can be accessed immediately
// if there is clock skew between the client and server.
ILocator originLocator =
(from l in this.MediaService.MediaContext.Locators
where l.AssetId.Equals(assetToStream.MediaAsset.Id)
select l).FirstOrDefault();
if (originLocator == null)
{
originLocator = this.MediaService.MediaContext
.Locators.CreateLocator(LocatorType.OnDemandOrigin, assetToStream.MediaAsset,
streamingPolicy,
DateTime.UtcNow.AddMinutes(-5));
}
// Create a full URL to the manifest file. Use this for playback
// in streaming media clients.
string urlForClientStreaming = originLocator.Path + manifestFile.Name + "/manifest";
// Display the full URL to the streaming manifest file.
Console.WriteLine("URL to manifest for client streaming: ");
Console.WriteLine(urlForClientStreaming);
return urlForClientStreaming;
}
アップデート
現在、Azure Media Services ではCDN はサポートされていません。以前の SDK/API には AzureCdnOriginlocator がありましたが、現在は削除されています。そのため、Azure Media Services の現在のパブリック プレビュー状態では、CDN を使用できません。スムーズなストリーミングには、OnDemandOrigin Locator のみを使用できます。
SAS ロケーターを取得するオプションもあります。ただし、SAS Locator を使用すると、ストレージ アカウントの残りのファイル (異なるビットレート チャンク) ではなくマニフェストにアクセスできるため、スムーズなストリームには使用できません。
更新 2
github の私のコードは、最新の (最新の) API と SDK で最新です。
更新 3
間違えた!CDN について何かを発見しました。そのため、 How to: Enable CDNに関するドキュメントは正しいですが、少し不完全です。
そのハウツーに記載されている手順に従ってください。CDN のメディア サービス アカウントをアクティブ化すると、説明されている手動のプロセスを通じて、CDN エンドポイントを使用できるようになります。
そうは言っても、OnDemandOrigin ロケーターは次のようになります。
http://wamsamsreg001orig-hs.cloudapp.net/7f98142c-b513-40be-8d3c-5bf73fe442bb/2012-10-12-320.ism/manifest
を Azure CDN エンドポイントに置き換える必要がありwamsamsreg001orig-hs.cloudapp.net
ます。これは次のようaz02930.vo.msecnd.net
になり、ストリーミング マニフェストの新しい URL を取得します。
http://az02930.vo.msecnd.net/7f98142c-b513-40be-8d3c-5bf73fe442bb/2012-10-12-320.ism/manifest
それが少し明確であることを願っています。API や SDK を介して CDN を自動的に取得することはできません。手動で文字列を操作する必要があり、CDN エンドポイントを知る必要があります。
それは私にとっても新しいことです。コードを更新する必要があります - CDN を提供する部分です。
また、ロケーターは作成されてもすぐには利用できないことに注意してください。ロケータが使用可能になるのは、作成後約 30 ~ 40 秒です。