Очень подробный и технически точный Как доставить потоковое содержимое даст вам кристально ясное представление о том, что нужно сделать, чтобы доставить Smooth Streams вашим пользователям.
Помимо этого, вы также можете ознакомиться с Readme и Код в проекте WaMediaWeb:
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;
}
ОБНОВЛЕНИЕ
CDN не в настоящее время поддерживается в службах мультимедиа Azure. Раньше в предыдущем SDK/API был AzureCdnOriginlocator, но теперь он удален. Таким образом, с текущим состоянием общедоступной предварительной версии Azure Media Services вы не можете использовать CDN. Вы можете использовать локатор OnDemandOrigin только для бесперебойной потоковой передачи.
У вас также есть возможность получить локатор SAS. Однако вы не можете использовать SAS Locator для плавных потоков, потому что он просто предоставит вам доступ к манифесту, а не к остальным файлам (фрагментам с разным битрейтом) в учетной записи хранения.
ОБНОВЛЕНИЕ 2
Мой код на github обновлен последними (на сегодняшний день) API и SDK.
ОБНОВЛЕНИЕ 3
Я ошибся! Только что узнал кое-что о CDN. Итак, документация по Как to: Включить CDN правильно, но немного неполно.
Выполните шаги, описанные в этом руководстве. После того как вы активируете свою учетную запись служб мультимедиа для CDN с помощью описанного ручного процесса, вы сможете использовать свою конечную точку CDN.
Сказав это, локатор OnDemandOrigin приведет к чему-то вроде:
http://wamsamsreg001orig-hs.cloudapp.net/7f98142c-b513-40be-8d3c-5bf73fe442bb/2012-10-12-320.ism/manifest
Вам нужно заменить wamsamsreg001orig-hs.cloudapp.net
на конечную точку Azure CDN, что-то вроде az02930.vo.msecnd.net
, и получить этот новый URL-адрес для манифеста потоковой передачи:
http://az02930.vo.msecnd.net/7f98142c-b513-40be-8d3c-5bf73fe442bb/2012-10-12-320.ism/manifest
Надеюсь, это немного ясно. Вы не можете использовать CDN автоматически через API и/или SDK, вы должны вручную манипулировать строками и знать свою конечную точку CDN.
Для меня это тоже что-то новое. Мне нужно обновить свой код — часть с предоставлением CDN.
Также обратите внимание, что локаторы не доступны сразу после их создания. Примерно через 30-40 секунд после создания локатор будет доступен.
person
astaykov
schedule
06.12.2012