2013-11-08 8 views
1

Я пытаюсь использовать OSM Player в качестве видеопроигрывателя для видео, размещенного в Windows Azure Media Services. К сожалению, похоже, что OSM Player не может воспроизводить эти файлы.OSM Player Поддержка Windows Azure Media Services

Вот шаги, которые я взял:

  1. Настройка услуги Средства массовой информации в консоли управления Windows Azure.
  2. На вкладке «Содержимое» загружен видеофайл. Точное видео файл можно найти здесь: https://archive.org/download/Windows7WildlifeSampleVideo/Wildlife_512kb.mp4
  3. После успешной загрузки, я нажал на видео, а затем нажал «Encode»
  4. Из вариантов кодирования, я выбрал Общую предустановку: «Воспроизведение через HTML5 (IE/Chrome/Safari)».
  5. Затем я нажал кнопку «checkbox».
  6. После успешного кодирования я нажал кнопку публикации. Сгенерированный URL-адрес выглядел примерно так: https: // [xxx] .blob.core.windows.net/[xxx] /Wildlife_512kb_H264_4500kbps_AAC_und_ch2_128kbps.mp4?sv=2012-02-12 & st = [xxx] & se = [ ххх] & ср = с = & си [XXX] & сиг = [XXX]

Потенциально чувствительные части URL были заменены на [XXX].

Когда я пытаюсь использовать OSM Player с этим видео, видео никогда не загружается. Кто-нибудь получил OSM Player для работы с видео, размещенными в Windows Azure Media Services? Если да, существуют ли какие-либо специальные настройки, которые необходимо использовать для кодирования или воспроизведения?

Спасибо!

ответ

1

«Воспроизведение через HTML5 (IE/Chrome/Safari)» в портальных картах с предустановленной Azure Media «H264 Broadband 720p». (Доступный список системных представлений см. http://msdn.microsoft.com/en-us/library/azure/dn619392.aspx). Этот пресет создает файл с одним битрейтом mp4, отображает файл с расширением * .ism и 2 xml-файлами с метаданными.

Url, который вы указали, является URL-адресом контейнера для активов, а не URL-адресом файла mp4, который вам нужно использовать. Существует два способа играть в активы через osm-плеер: указывая на Azure Storage (SAS Locator) и указывая на сервер Origin Azure Media Services. Пример ниже показывает, как построить uris для обоих сценариев. Конструкции Uri были упрощены в методах расширения sdk. См. Расширения локатора в https://github.com/Azure/azure-sdk-for-media-services-extensions.

 //Fetching existing job 
     IJob job = _mediaContext.Jobs.Where(c => c.Id == "nb:jid:UUID:29e033f5-402d-bc47-8f8d-56d83ff6915c").FirstOrDefault(); 
     //Assume it has 1 output asset 
     IAsset asset = job.OutputMediaAssets[0]; 

     //Access policy to publish asset for 5 days 
     const string days = "5days"; 
     IAccessPolicy policy = _mediaContext.AccessPolicies.Where(c=>c.Name == days).FirstOrDefault(); 

     //If not exists we creating access policy 
     if (policy == null) 
     { 
      policy =_mediaContext.AccessPolicies.Create(days, TimeSpan.FromDays(5), AccessPermissions.Read | AccessPermissions.List); 
     } 

     //Remove previously used locators 
     _mediaContext.Locators.ToList().ForEach(c=>c.Delete()); 

     //Creating Sas Locator. Users directly access asset through Azure storage 
     ILocator sasLocator = _mediaContext.Locators.CreateLocator(LocatorType.Sas, asset, policy); 
     IAssetFile mp4File = asset.AssetFiles.Where(c => c.Name.Contains(".mp4")).FirstOrDefault(); 
     string srcUri = sasLocator.BaseUri + "/" + mp4File.Name + sasLocator.ContentAccessComponent; 

     //Creating OnDemandOrigin Locator. Users access assets through origin server 
     ILocator ondemandOriginLocator = _mediaContext.Locators.CreateLocator(LocatorType.OnDemandOrigin, asset, policy); 
     IAssetFile ismFile = asset.AssetFiles.Where(c => c.Name.Contains(".ism")).FirstOrDefault(); 
     string ondemandUri = ondemandOriginLocator.Path + ismFile.Name +"/Manifest"; 
Смежные вопросы