Экспорт (0) Печать
Развернуть все

Доставка ресурсов с помощью API REST служб мультимедиа

Обновлено: Август 2014 г.

Microsoft Azure Media Services предоставляет несколько механизмов для доставки контента клиентам. Вы может позволить им загружать контент из учетной записи хранилища BLOB-объектов или получать их в потоковом режиме из Службы Media Services.

В следующих разделах описывается, как доставить контент клиентам:

Дополнительные сведения, концепции и термины, связанные с доставкой мультимедиа-контента, см. в разделе Доставка контента.

ImportantВажно!
При работе с API REST служб мультимедиа учитывайте следующее.

ImportantВажно!
При работе с локаторами необходимо учитывать следующие рекомендации.

  • До возможности использования после создания локатора может возникнуть задержка на 30-40 секунд. Эта проблема возникает для локаторов URL-адресов SAS и источника.

  • С одним активом не может быть связано больше пяти уникальных локаторов одновременно. Дополнительные сведения см. в Локатор.

  • Службы мультимедиа используют значение свойства IAssetFile.Name при формировании URL-адресов для потоковой передачи контента (например, http://{WAMSAccount}.origin.mediaservices.windows.net/{GUID}/{IAssetFile.Name}/streamingParameters.) Поэтому кодирование в последовательность с процентом не разрешено. Свойство Name не может содержать следующие зарезервированные символы, закодированные в последовательность с процентом: !*'();:@&=+$,/?%#[]". Кроме того, может использоваться только одна точка (".") для расширения имени файла.

Перед загрузкой или потоковой передачей мультимедиа-контента сначала определите AccessPolicy с разрешениями для чтения и создайте соответствующий объект Locator, который определяет тип механизма доставки, который необходимо включить для клиентов. Дополнительные сведения о доступных свойствах см. в разделе Свойства объекта AccessPolicy.

В следующем примере показано, как задать AccessPolicy с разрешениями на чтение для указанного объекта Asset.

POST https://media.windows.net/API/AccessPolicies HTTP/1.1
Content-Type: application/json;odata=verbose
Accept: application/json;odata=verbose
DataServiceVersion: 3.0
MaxDataServiceVersion: 3.0
x-ms-version: 2.5
Authorization: Bearer http%3a%2f%2fschemas.xmlsoap.org%2fws%2f2005%2f05%2fidentity%2fclaims%2fnameidentifier=youraccountname&urn%3aSubscriptionId=2f84471d-b1ae-4e75-aa09-010f0fc0cf5b&http%3a%2f%2fschemas.microsoft.com%2faccesscontrolservice%2f2010%2f07%2fclaims%2fidentityprovider=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&Audience=urn%3aWindowsAzureMediaServices&ExpiresOn=1337067658&Issuer=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&HMACSHA256=dithjGvlXR9HlyAf5DE99N5OCYkPAxsHIcsTSjm9%2fVE%3d
Host: media.windows.net
Content-Length: 74
Expect: 100-continue

{"Name": "DownloadPolicy", "DurationInMinutes" : "300", "Permissions" : 1}

При успешном выполнении возвращается код 201, описывающий созданный объект AccessPolicy. Свойство Id объекта AccessPolicy используется вместе со свойством Id объекта Asset, содержащий файл, который необходимо доставить (например, выходной ресурс) для создания объекта Locator.

noteПримечание
Этот базовый рабочий процесс аналогичен загрузке файла при передаче актива. Дополнительные сведения о загрузке файлов см. в разделе Загрузка файла в хранилище BLOB-объекта. Кроме того, как и при загрузке файлов, если вам (или вашим клиентам) необходимо быстро получить доступ к файлам, задайте для свойства StartTime время, равное текущему времени минус пять минут. Это действие необходимо, так как между клиентом и Службы Media Services может быть рассинхронизация времени. Значение StartTime должно быть указано в следующем формате DateTime: YYYY-MM-DDTHH:mm:ssZ (например, "2014-05-23T17:53:50Z").

В следующем примере кода показано, как загрузить файл мультимедиа, созданный и загруженный ранее. Для AccessPolicy заданы разрешения чтения, а путь локатора указывает на URL-адрес загрузки SAS.

POST https://media.windows.net/API/Locators HTTP/1.1
Content-Type: application/json;odata=verbose
Accept: application/json;odata=verbose
DataServiceVersion: 3.0
MaxDataServiceVersion: 3.0
x-ms-version: 2.5
Authorization: Bearer http%3a%2f%2fschemas.xmlsoap.org%2fws%2f2005%2f05%2fidentity%2fclaims%2fnameidentifier=youraccountname&urn%3aSubscriptionId=2f84471d-b1ae-4e75-aa09-010f0fc0cf5b&http%3a%2f%2fschemas.microsoft.com%2faccesscontrolservice%2f2010%2f07%2fclaims%2fidentityprovider=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&Audience=urn%3aWindowsAzureMediaServices&ExpiresOn=1337067658&Issuer=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&HMACSHA256=dithjGvlXR9HlyAf5DE99N5OCYkPAxsHIcsTSjm9%2fVE%3d
Host: media.windows.net
Content-Length: 182
Expect: 100-continue

{"AccessPolicyId": "nb:pid:UUID:38c71dd0-44c5-4c5f-8418-08bb6fbf7bf8", "AssetId" : "nb:cid:UUID:eb5540a2-116e-4d36-b084-7e9958f7f3c3", "StartTime" : "2014-05-17T16:45:53", "Type":1}

В случае успеха возвращается следующий ответ:

HTTP/1.1 201 Created
Cache-Control: no-cache
Content-Length: 1150
Content-Type: application/json;odata=verbose;charset=utf-8
Location: https://media.windows.net/api/Locators('nb%3Alid%3AUUID%3A8e5a821d-2194-4d00-8884-adf979856874')
Server: Microsoft-IIS/7.5
x-ms-request-id: 8cfd8556-3064-416a-97f2-67d9e35f0911
X-Content-Type-Options: nosniff
DataServiceVersion: 1.0;
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Mon, 14 May 2012 21:41:32 GMT

{"d":{"__metadata":{"id":"https://media.windows.net/api/Locators('nb%3Alid%3AUUID%3A8e5a821d-2194-4d00-8884-adf979856874')","uri":"https://media.windows.net/api/Locators('nb%3Alid%3AUUID%3A8e5a821d-2194-4d00-8884-adf979856874')","type":"Microsoft.Cloud.Media.Vod.Rest.Data.Models.Locator"},"AccessPolicy":{"__deferred":{"uri":"https://media.windows.net/api/Locators('nb%3Alid%3AUUID%3A8e5a821d-2194-4d00-8884-adf979856874')/AccessPolicy"}},"Asset":{"__deferred":{"uri":"https://media.windows.net/api/Locators('nb%3Alid%3AUUID%3A8e5a821d-2194-4d00-8884-adf979856874')/Asset"}},"Id":"nb:lid:UUID:8e5a821d-2194-4d00-8884-adf979856874","ExpirationDateTime":"\/Date(1337049393000)\/","Type":1,"Path":"https://yourstorageaccount.blob.core.windows.net/asset-3df042ec-a396-4c62-a217-16c7a2569640?st=2012-05-14T21%3A36%3A33Z&se=2012-05-15T02%3A36%3A33Z&sr=c&si=8e5a821d-2194-4d00-8884-adf979856874&sig=y75dViDpC5V8WutrXM%2B%2FGpR3uOtqmlISiNlHU1YUBOg%3D","AccessPolicyId":"nb:pid:UUID:38c71dd0-44c5-4c5f-8418-08bb6fbf7bf8","AssetId":"nb:cid:UUID:eb5540a2-116e-4d36-b084-7e9958f7f3c3","StartTime":"\/Date(1337031393000)\/"}}

Свойство Path ссылается на URL-адрес SAS для кода актива, заданного в запросе. Чтобы загрузить файл, добавьте имя файла контента, который требуется загрузить, в URL-адрес SAS перед загрузкой.

В следующем примере показано, как загрузить файл из хранилища BLOB-объектов с помощью браузера:

GET https://yourstorageaccount.blob.core.windows.net/asset-3df042ec-a396-4c62-a217-16c7a2569640/samplevid.wmv?st=2012-05-14T21%3A36%3A33Z&se=2012-05-15T02%3A36%3A33Z&sr=c&si=8e5a821d-2194-4d00-8884-adf979856874&sig=y75dViDpC5V8WutrXM%2B%2FGpR3uOtqmlISiNlHU1YUBOg%3D HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: en-US
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Host: yourstorageaccount.blob.core.windows.net
Connection: Keep-Alive

В случае успеха возвращается следующий ответ:

HTTP/1.1 200 OK
Content-Length: 4045744
Content-Type: application/octet-stream
Last-Modified: Mon, 14 May 2012 21:41:26 GMT
ETag: 0x8CF00317343F6D8
Server: Blob Service Version 1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: da01ef74-7bf6-4837-b36d-8a6c08a26c3f
Date: Mon, 14 May 2012 22:02:45 GMT

??v?3?????>1?p????m.?v9?/??s?a?(C?D?
wsh?1hfN??C?V??,?-?sd??:?j?dCfT?,?6????8?f?p??o??"?????6C??q?????KbP???w*????i
[Remaining data truncated for readability.]
ImportantВажно!
Если вы загружаете зашифрованный контент, необходимо вручную расшифровать его перед отображением или использовать обработчик мультимедиа "Расшифровка хранилища" в задаче обработки, чтобы передать расшифрованные обработанные файлы в OutputAsset, а затем загрузить данные из этого ресурса. Дополнительные сведения об обработке см. в разделе Создание задания кодирования с помощью REST API служб мультимедиа. Кроме того, локаторы URL-адресов SAS не могут обновиться после их создания. Например, нельзя повторно использовать один объект Locator с обновленным значением StartTime. Это связано с тем, как создаются URL-адреса SAS. Чтобы получить доступ к ресурсу для загрузки после истечения срока действия объекта Locator, необходимо создать новый с новым значением StartTime.

Единственное отличие при создании локатора URL-адреса источника от создания локатора URL-адресов источника — это значение "Type" и необходимость преобразования контента для потоковой передачи из формата MP4 в формат Smooth Streaming (.ism*). Последнее можно выполнить с помощью обработчика мультимедиа "MP4 в Smooth Streaming" задачи обработки. Для потоковой передачи на устройства iOS вам также необходимо добавить задачу обработки, которая использует обработчик мультимедиа "Smooth Streaming в HLS" для создания выходного актива, который содержит файлы, необходимые для потоковой передачи на эти устройства. Пример цепочки задач см. в разделе Создание задания. В отличие от локаторов URL-адресов SAS, локаторы источника можно обновить новыми значениям StartTime после создания локатора. Дополнительные сведения о локаторах и их обновлении см. в разделе Локатор.

В следующем примере кода показано, как создать локатор URL-адреса источника:

POST https://media.windows.net/API/Locators HTTP/1.1
Content-Type: application/json;odata=verbose
Accept: application/json;odata=verbose
DataServiceVersion: 3.0
MaxDataServiceVersion: 3.0
x-ms-version: 2.5
Authorization: Bearer http%3a%2f%2fschemas.xmlsoap.org%2fws%2f2005%2f05%2fidentity%2fclaims%2fnameidentifier=youraccountname&urn%3aSubscriptionId=2f84471d-b1ae-4e75-aa09-010f0fc0cf5b&http%3a%2f%2fschemas.microsoft.com%2faccesscontrolservice%2f2010%2f07%2fclaims%2fidentityprovider=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&Audience=urn%3aWindowsAzureMediaServices&ExpiresOn=1337067658&Issuer=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&HMACSHA256=dithjGvlXR9HlyAf5DE99N5OCYkPAxsHIcsTSjm9%2fVE%3d
Host: media.windows.net
Content-Length: 182
Expect: 100-continue

{"AccessPolicyId": "nb:pid:UUID:38c71dd0-44c5-4c5f-8418-08bb6fbf7bf8", "AssetId" : "nb:cid:UUID:eb5540a2-116e-4d36-b084-7e9958f7f3c3", "StartTime" : "2014-05-17T16:45:53",, "Type":2}

В случае успеха возвращается следующий ответ:

HTTP/1.1 201 Created
Cache-Control: no-cache
Content-Length: 981
Content-Type: application/json;odata=verbose;charset=utf-8
Location: https://media.windows.net/api/Locators('nb%3Alid%3AUUID%3A52034bf6-dfae-4d83-aad3-3bd87dcb1a5d')
Server: Microsoft-IIS/7.5
x-ms-request-id: 2eac4158-fc78-4fa2-81ee-c9f582dc385f
X-Content-Type-Options: nosniff
DataServiceVersion: 1.0;
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Mon, 14 May 2012 21:41:39 GMT

{"d":{"__metadata":{"id":"https://media.windows.net/api/Locators('nb%3Alid%3AUUID%3A52034bf6-dfae-4d83-aad3-3bd87dcb1a5d')","uri":"https://media.windows.net/api/Locators('nb%3Alid%3AUUID%3A52034bf6-dfae-4d83-aad3-3bd87dcb1a5d')","type":"Microsoft.Cloud.Media.Vod.Rest.Data.Models.Locator"},"AccessPolicy":{"__deferred":{"uri":"https://media.windows.net/api/Locators('nb%3Alid%3AUUID%3A52034bf6-dfae-4d83-aad3-3bd87dcb1a5d')/AccessPolicy"}},"Asset":{"__deferred":{"uri":"https://media.windows.net/api/Locators('nb%3Alid%3AUUID%3A52034bf6-dfae-4d83-aad3-3bd87dcb1a5d')/Asset"}},"Id":"nb:lid:UUID:52034bf6-dfae-4d83-aad3-3bd87dcb1a5d","ExpirationDateTime":"\/Date(1337049395000)\/","Type":2,"Path":"http://media.windows.net/52034bf6-dfae-4d83-aad3-3bd87dcb1a5d/","AccessPolicyId":"nb:pid:UUID:38c71dd0-44c5-4c5f-8418-08bb6fbf7bf8","AssetId":"nb:cid:UUID:eb5540a2-116e-4d36-b084-7e9958f7f3c3","StartTime":"\/Date(1337031395000)\/"}}

Чтобы указать ссылку на URL-адрес источника Smooth Streaming в проигрывателе мультимедиа с поддержкой потоковой передачи, необходимо добавить в свойство Path имя файла манифеста Smooth Streaming, за которым следует строка "/manifest". Например, при использовании URL-адреса источника, показанного в предыдущем примере, фактическим URL-адресом, используемым клиентами Smooth Streaming, будет http://media.windows.net/52034bf6-dfae-4d83-aad3-3bd87dcb1a5d/samplevid.ism/manifest. А для клиентов HLS адресом будет http://media.windows.net/52034bf6-dfae-4d83-aad3-3bd87dcb1a5d/samplevid.isml/manifest(format=m3u8-aapl).

noteПримечание
В этом разделе в качестве примера в значении Path используется URI http://media.windows.net. Фактическое значение зависти от развертывания Службы Media Services, к которому вы подключены.

См. также

Основные понятия

Квоты и ограничения

Корпорация Майкрософт проводит интернет-опрос, чтобы выяснить ваше мнение о веб-сайте MSDN. Если вы желаете принять участие в этом интернет-опросе, он будет отображен при закрытии веб-сайта MSDN.

Вы хотите принять участие?
Показ:
© 2014 Microsoft