匯出 (0) 列印
全部展開

使用 Media Services REST API 傳遞資產

更新日期: 2014年2月

Microsoft Azure Media Services 提供將內容傳遞到用戶端的多種機制。您可以讓機制從 Blob 儲存體帳戶下載內容,或從 Media Services 串流內容。

下面各節介紹如何將內容傳遞到用戶端:

如需詳細資訊以及傳遞媒體內容的相關概念和術語,請參閱 傳遞內容

Important重要事項
使用 Media Services REST API 時,適用下列考量:

Important重要事項
使用定位器時,適用下列考量:

  • 從建立定位器到可以使用定位器,這中間可能會有 30 到 40 秒的延遲。SAS URL 與原始定位器都會發生這樣的延遲問題。

  • 資產同時最多只能有五個關聯的唯一定位器。如需詳細資訊,請參閱Locator

  • Media Services 在建置串流內容的 URL 時使用 IAssetFile.Name 屬性值 (例如,http://{WAMSAccount}.origin.mediaservices.windows.net/{GUID}/{IAssetFile.Name}/streamingParameters)。因此,不允許百分比編碼。名稱屬性的值沒有以下任何保留的百分比編碼字元:!*'();:@&=+$,/?%#[]"。檔案副檔名只能有一個 ‘.’。

下載或串流任何媒體內容之前,先定義具有讀取權限的 AccessPolicy,並建立適當的 Locator 實體,利用它指定要為用戶端啟用的傳遞機制類型。如需可用屬性的詳細資訊,請參閱AccessPolicy 實體屬性

以下範例顯示如何為指定的資產指定讀取權限的 AccessPolicy。

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 實體。然後您使用 AccessPolicy Id 與包含您要傳遞之檔案的資產 (例如輸出資產) 的 Asset ID,來建立 Locator 實體。

note附註
此基本工作流程與擷取資產時上傳檔案的工作流程相同。如需上傳檔案的詳細資訊,請參閱將檔案上傳至 Blob 儲存。另外,如同上傳檔案一樣,如果您 (或您的用戶端) 需要立即存取檔案,請將 StartTime 值設定為目前時間的五分鐘前。這是必要的動作,因為用戶端與 Media Services 的時鐘可能會有時間差。StartTime 值必須是以下 DateTime 格式:YYYY-MM-DDTHH:mm:ssZ (例如 "2014-05-23T17:53:50Z")。

下列程式碼顯示如何下載先前建立及上傳的媒體檔案。AccessPolicy 設定了讀取權限,而 Locator 路徑則會參考 SAS 下載 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":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 屬性參考您在要求中指定之 Asset ID 的 SAS URL。若要下載檔案,請在下載之前,在 SAS URL 中加入您要下載之內容的檔案名稱。

以下範例顯示如何使用網頁瀏覽器,從 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重要事項
如果是下載儲存體加密的內容,必須先手動將其解密才能呈現,或在處理工作 (Task) 中使用 Storage Decryption MediaProcessor 安全地輸出處理的檔案到 OutputAsset,然後從該資產下載。如需處理的詳細資訊,請參閱使用 Media Services REST API 建立編碼工作。另外,建立了 SAS URL 定位器之後,就不能更新定位器。例如,不能使用更新的 StartTime 值重複使用同定位器。這是因為建立 SAS URL 的方式的限制。如果要在定位器過期之後存取可下載的資產,必須使用新的 StartTime 建立新的定位器。

建立原始 URL 定位器與建立 SAS URL 定位器的唯一差別,是 "Type" 值和要串流的內容必須從 MP4 轉換為 Smooth Streaming 格式 (.ism*)。後者可以在處理工作 (Task) 中使用「MP4 到 Smooth Streaming MediaProcessor」轉換。若要串流到 iOS 裝置,還必須新增處理工作 (Task),此工作會使用「Smooth Streaming 到 HLS MediaProcessor」轉換來建立包含串流至這些裝置之必要檔案的輸出資產。關於工作 (Task) 鏈結的範例,請參閱建立工作 (Job)。而且原始定位器和 SAS URL 定位器不同,在建立定位器之後還可以使用新的 StartTime 來更新原始定位器。如需定位器及如何更新定位器的詳細資訊,請參閱Locator

下面的程式碼示範如何建立原始 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)\/"}}

若要在串流媒體播放器中參考 Smooth Streaming 原始 URL,必須在 Path 屬性附加 Smooth Streaming 資訊清單檔案的名稱,後面接 "/manifest"。例如,使用前面範例中所示的原始 URL,則 Smooth Streaming 用戶端使用的實際 URL 會是 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 值使用 http://media.windows.net URI 做為範例。實際值依您所連接的 Media Services 部署而定。

另請參閱

顯示:
© 2014 Microsoft