VENTES: 1-800-867-1389

Création d'un travail d'encodage avec l'API REST de Media Services

Mis à jour: juillet 2014

Après la réception d’éléments multimédias dans Microsoft Azure Media Services, le contenu multimédia peut faire l’objet d’un encodage, d’une modification de format TRANSMUX, de l’apposition d’un filigrane, etc. avant de le transmettre à des clients. Pour garantir des performances et une disponibilité optimales, ces activités sont programmées et exécutées dans plusieurs instances de rôle en arrière-plan. Ces activités sont appelées des travaux et chaque travail se compose de tâches atomiques qui effectuent le travail réel sur le fichier d’élément multimédia. Si vous envisagez de réaliser le même ensemble de tâches sur un large éventail d’éléments multimédias, Media Services prend en charge JobTemplates et TaskTemplates pour vous permettre d’accomplir cet objectif.

ImportantImportant
Lorsque vous utilisez l'API REST de Media Services, prenez en compte les éléments suivants :

En fonction du type de traitement que vous souhaitez réaliser, chaque travail peut comporter une ou plusieurs tâches. Via l’API REST, vous pouvez créer des travaux et leurs tâches associées de deux façons : les tâches peuvent être définies inline via la propriété de navigation des tâches sur des entités de travail, ou via le traitement par lots OData. Le Kit de développement logiciel (SDK) de Media Services utilise le traitement par lots. Toutefois, dans un souci de lisibilité des exemples de codes de cette rubrique, les tâches sont définies inline. Pour plus d’informations sur le traitement par lots, voir Traitement par lots OData (Open Data Protocol) (éventuellement en anglais).

L’exemple suivant décrit la création et la publication d’un travail comportant une tâche visant à encoder une vidéo à une résolution et une qualité précises. Les présélections de configuration des tâches correctes sont spécifiées dans la rubrique Présélections système de l'encodeur Media Services.

POST https://media.windows.net/API/Jobs HTTP/1.1
Content-Type: application/json;odata=verbose
Accept: application/json;odata=verbose
DataServiceVersion: 3.0
MaxDataServiceVersion: 3.0
x-ms-version: 2.2
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=1336802231&Issuer=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&HMACSHA256=gR%2fNaIZgolFLxBOmfSECrp16Mp0Mti3KoePVjBUCzls%3d
Host: media.windows.net
Content-Length: 476

{"Name" : "NewTestJob", "InputMediaAssets" : [{"__metadata" : {"uri" : "https://media.windows.net/api/Assets('nb%3Acid%3AUUID%3Aaab7f15b-3136-4ddf-9962-e9ecb28fb9d2')"}}],  "Tasks" : [{"Configuration" : "H264 Broadband 720p", "MediaProcessorId" : "nb:mpid:UUID:70bdc2c3-ebf4-42a9-8542-5afc1e55d217",  "TaskBody" : "<?xml version=\"1.0\" encoding=\"utf-8\"?><taskBody><inputAsset>JobInputAsset(0)</inputAsset><outputAsset>JobOutputAsset(0)</outputAsset></taskBody>"}]}

Si l’opération réussit, la réponse suivante est renvoyée :

HTTP/1.1 201 Created
Cache-Control: no-cache
Content-Length: 1017
Content-Type: application/json;odata=verbose;charset=utf-8
Location: https://media.windows.net/api/Jobs('nb%3Ajid%3AUUID%3A40dc7bef-6bd9-2247-9f3d-d80bc257d715')
Server: Microsoft-IIS/7.5
x-ms-request-id: d2052a71-95b1-4a52-9420-ccca1202a5fb
X-Content-Type-Options: nosniff
DataServiceVersion: 1.0;
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Fri, 11 May 2012 21:32:40 GMT

{"d":{"__metadata":{"id":"https://media.windows.net/api/Jobs('nb%3Ajid%3AUUID%3A40dc7bef-6bd9-2247-9f3d-d80bc257d715')","uri":"https://media.windows.net/api/Jobs('nb%3Ajid%3AUUID%3A40dc7bef-6bd9-2247-9f3d-d80bc257d715')","type":"Microsoft.Cloud.Media.Vod.Rest.Data.Models.Job"},"Tasks":{"__deferred":{"uri":"https://media.windows.net/api/Jobs('nb%3Ajid%3AUUID%3A40dc7bef-6bd9-2247-9f3d-d80bc257d715')/Tasks"}},"OutputMediaAssets":{"__deferred":{"uri":"https://media.windows.net/api/Jobs('nb%3Ajid%3AUUID%3A40dc7bef-6bd9-2247-9f3d-d80bc257d715')/OutputMediaAssets"}},"InputMediaAssets":{"__deferred":{"uri":"https://media.windows.net/api/Jobs('nb%3Ajid%3AUUID%3A40dc7bef-6bd9-2247-9f3d-d80bc257d715')/InputMediaAssets"}},"Id":"nb:jid:UUID:40dc7bef-6bd9-2247-9f3d-d80bc257d715","Name":"NewTestJob","Created":"\/Date(1336771959431)\/","LastModified":"\/Date(1336771959431)\/","EndTime":null,"Priority":0,"RunningDuration":0,"StartTime":null,"State":0,"TemplateId":null}}

Plusieurs aspects importants sont à prendre en considération dans une demande de travail :

  • les propriétés TaskBody DOIVENT utiliser des littéraux XML pour définir le nombre d’éléments multimédias en entrée ou en sortie qui seront utilisés par la tâche. La rubrique Tâche contient la définition de schéma XML pour le code XML.

  • Dans la définition TaskBody, chaque valeur interne pour <inputAsset> et <outputAsset> doit être définie en tant que JobInputAsset(valeur ou JobOutputAsset(valeur).

  • Une tâche peut comporter plusieurs éléments multimédias en sortie. Un JobOutputAsset(x) ne peut être utilisé qu’une seule fois en tant que sortie d’une tâche dans un travail.

  • Vous pouvez spécifier JobInputAsset ou JobOutputAsset en tant qu’élément multimédia en entrée d’une tâche.

  • Les tâches ne doivent pas former de cycle.

  • Le paramètre valeur que vous transmettez à JobInputAsset ou JobOutputAsset représente la valeur d’index d’un élément multimédia. Les éléments multimédias réels sont définis dans les propriétés de navigation InputMediaAssets et OutputMediaAssets sur la définition de l’entité de travail.

  • noteRemarque
    Étant donné que Media Services est conçu sur la base d’OData v3, les éléments multimédias individuels dans les collections de propriétés de navigation InputMediaAssets et OutputMediaAssets sont référencés via une paire nom/valeur "__metadata : uri".

  • InputMediaAssets mappe vers un ou plusieurs éléments multimédias que vous avez créés dans Media Services. Les OutputMediaAssets sont créés par le système. Ils ne référencent pas d’élément multimédia existant.

  • OutputMediaAssets peut être nommé en utilisant l’attribut assetName. Si cet attribut est absent, le nom du OutputMediaAsset sera attribué d’après la valeur de texte interne de l’élément >outputAsset< avec un suffixe représentant la valeur du nom du travail ou la valeur de l’ID du travail (dans le cas où la propriété Name ne serait pas définie). Par exemple, si vous attribuez à assetName la valeur « Sample », la propriété Name de OutputMediaAsset sera définie sur « Sample ». Toutefois, si vous n’aviez pas attribué de valeur à assetName, mais que vous aviez attribué le nom « NewJob » au travail, la propriété Name de OutputMediaAsset aurait été « JobOutputAsset(valeur)_NewJob ».

    L’exemple suivant illustre la définition de l’attribut assetName :

    "<?xml version=\"1.0\" encoding=\"utf-8\"?><taskBody><inputAsset>JobInputAsset(0)</inputAsset><outputAsset assetName=\"CustomOutputAssetName\">JobOutputAsset(0)</outputAsset></taskBody>"
    
  • Pour activer le chaînage des tâches :

    • Un travail doit comporter au moins 2 tâches.

    • Au moins une tâche doit avoir en entrée la sortie d’une autre tâche du travail.

Pour plus d’informations sur les entités Travail et Tâche, voir Job et Tâche, respectivement.

Comme indiqué dans l’introduction, lorsque vous traitez plusieurs éléments multimédias à l’aide d’un ensemble classique de tâches, les JobTemplates sont particulièrement utiles pour spécifier les présélections des tâches, l’ordre des tâches par défaut, etc.

L’exemple suivant illustre la création d’un JobTemplate avec un TaskTemplate défini inline. Le TaskTemplate utilise Azure Media Encoder en tant que MediaProcessor pour encoder le fichier d’élément multimédia, mais vous pouvez également utiliser d’autres MediaProcessors.

POST https://media.windows.net/API/JobTemplates HTTP/1.1
Content-Type: application/json;odata=verbose
Accept: application/json;odata=verbose
DataServiceVersion: 3.0
MaxDataServiceVersion: 3.0
x-ms-version: 2.2
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=1336731433&Issuer=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&HMACSHA256=w%2bpnT6CW6jSzyVgJLP2cN0QyLL0peOt8PJC6XnPhvZ4%3d
Host: media.windows.net
Content-Length: 574
Expect: 100-continue

{"Name" : "NewJobTemplate25", "JobTemplateBody" : "<?xml version=\"1.0\" encoding=\"utf-8\"?><jobTemplate><taskBody taskTemplateId=\"nb:ttid:UUID:071370A3-E63E-4E81-A099-AD66BCAC3789\"><inputAsset>JobInputAsset(0)</inputAsset><outputAsset>JobOutputAsset(0)</outputAsset></taskBody></jobTemplate>", "TaskTemplates" : [{"Id" : "nb:ttid:UUID:071370A3-E63E-4E81-A099-AD66BCAC3789", "Configuration" : "H264 Smooth Streaming 720p", "MediaProcessorId" : "nb:mpid:UUID:70bdc2c3-ebf4-42a9-8542-5afc1e55d217", "Name" : "SampleTaskTemplate2", "NumberofInputAssets" : 1, "NumberofOutputAssets" : 1}] }
ImportantImportant
Contrairement à d’autres entités Media Services, vous devez définir un nouvel identificateur GUID pour chaque TaskTemplate et le placer dans le taskTemplateId et dans la propriété Id du corps de votre demande. Le schéma d’identification du contenu doit respecter le schéma décrit dans la rubrique Identify Azure Media Services Entities. Par ailleurs, vous ne pouvez pas mettre à jour les JobTemplates. Vous devez en créer un comprenant vos modifications.

Si l’opération réussit, la réponse suivante est renvoyée :

HTTP/1.1 201 Created
Cache-Control: no-cache
Content-Length: 959
Content-Type: application/json;odata=verbose;charset=utf-8
Location: https://media.windows.net/api/JobTemplates('nb%3Ajtid%3AUUID%3A42da394a-bed5-1749-a541-b0d5447f60d0')
Server: Microsoft-IIS/7.5
x-ms-request-id: b57dcc60-60d8-491c-a91c-8a65fa8aa5cb
X-Content-Type-Options: nosniff
DataServiceVersion: 1.0;
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Fri, 11 May 2012 00:17:38 GMT

{"d":{"__metadata":{"id":"https://media.windows.net/api/JobTemplates('nb%3Ajtid%3AUUID%3A42da394a-bed5-1749-a541-b0d5447f60d0')","uri":"https://media.windows.net/api/JobTemplates('nb%3Ajtid%3AUUID%3A42da394a-bed5-1749-a541-b0d5447f60d0')","type":"Microsoft.Cloud.Media.Vod.Rest.Data.Models.JobTemplate"},"TaskTemplates":{"__deferred":{"uri":"https://media.windows.net/api/JobTemplates('nb%3Ajtid%3AUUID%3A42da394a-bed5-1749-a541-b0d5447f60d0')/TaskTemplates"}},"Id":"nb:jtid:UUID:42da394a-bed5-1749-a541-b0d5447f60d0","Created":"\/Date(1336695459669)\/","JobTemplateBody":"<?xml version=\"1.0\" encoding=\"utf-8\"?><jobTemplate><taskBody taskTemplateId=\"nb:ttid:UUID:071370A3-E63E-4E81-A099-AD66BCAC3789\"><inputAsset>JobInputAsset(0)</inputAsset><outputAsset>JobOutputAsset(0)</outputAsset></taskBody></jobTemplate>","LastModified":"\/Date(1336695459669)\/","Name":"NewJobTemplate25","NumberofInputAssets":0,"TemplateType":1}}

L’exemple suivant illustre la création d’un travail référençant un Id JobTemplate :

POST https://media.windows.net/API/Jobs HTTP/1.1
Content-Type: application/json;odata=verbose
Accept: application/json;odata=verbose
DataServiceVersion: 3.0
MaxDataServiceVersion: 3.0
x-ms-version: 2.2
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=1336908022&Issuer=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&HMACSHA256=RYXOraO6Z%2f7l9whWZQN%2bypeijgHwIk8XyikA01Kx1%2bk%3d
Host: media.windows.net
Content-Length: 249

{"Name" : "NewTestJob", "InputMediaAssets" : [{"__metadata" : {"uri" : "https://media.windows.net/api/Assets('nb%3Acid%3AUUID%3A3f1fe4a2-68f5-4190-9557-cd45beccef92')"}}], "TemplateId" : "nb:jtid:UUID:15e6e5e6-ac85-084e-9dc2-db3645fbf0aa"}

Si l’opération réussit, la réponse suivante est renvoyée :

HTTP/1.1 201 Created
Cache-Control: no-cache
Content-Length: 1064
Content-Type: application/json;odata=verbose;charset=utf-8
Location: https://media.windows.net/api/Jobs('nb%3Ajid%3AUUID%3Ab21b1baf-8cee-734e-9f1a-b0f12b06e2d5')
Server: Microsoft-IIS/7.5
x-ms-request-id: 82feb593-ee74-45db-85c5-24c0a7600f2d
X-Content-Type-Options: nosniff
DataServiceVersion: 1.0;
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Sun, 13 May 2012 01:22:53 GMT

{"d":{"__metadata":{"id":"https://media.windows.net/api/Jobs('nb%3Ajid%3AUUID%3Ab21b1baf-8cee-734e-9f1a-b0f12b06e2d5')","uri":"https://media.windows.net/api/Jobs('nb%3Ajid%3AUUID%3Ab21b1baf-8cee-734e-9f1a-b0f12b06e2d5')","type":"Microsoft.Cloud.Media.Vod.Rest.Data.Models.Job"},"Tasks":{"__deferred":{"uri":"https://media.windows.net/api/Jobs('nb%3Ajid%3AUUID%3Ab21b1baf-8cee-734e-9f1a-b0f12b06e2d5')/Tasks"}},"OutputMediaAssets":{"__deferred":{"uri":"https://media.windows.net/api/Jobs('nb%3Ajid%3AUUID%3Ab21b1baf-8cee-734e-9f1a-b0f12b06e2d5')/OutputMediaAssets"}},"InputMediaAssets":{"__deferred":{"uri":"https://media.windows.net/api/Jobs('nb%3Ajid%3AUUID%3Ab21b1baf-8cee-734e-9f1a-b0f12b06e2d5')/InputMediaAssets"}},"Id":"nb:jid:UUID:b21b1baf-8cee-734e-9f1a-b0f12b06e2d5","Name":"NewTestJob","Created":"\/Date(1336872171998)\/","LastModified":"\/Date(1336872171998)\/","EndTime":null,"Priority":0,"RunningDuration":0,"StartTime":null,"State":0,"TemplateId":"nb:jtid:UUID:15e6e5e6-ac85-084e-9dc2-db3645fbf0aa"}}
noteRemarque
Cette réponse est identique à celle de l’exemple de création d’un travail précédent, sauf que la propriété TemplateId est définie.

Vous pouvez récupérer l’état du travail en utilisant la propriété State, comme dans l’exemple suivant. Pour plus d’informations sur la récupération des valeurs de propriétés, voir Gestion des éléments multimédias avec l'API REST Media Services. Pour plus d’informations sur les propriétés disponibles, voir Propriétés de l’entité de travail.

GET https://media.windows.net/api/Jobs('nb%3Ajid%3AUUID%3A0f7d4b0e-ea6c-9748-ad34-09575bdfbd21')/State HTTP/1.1
Content-Type: application/json;odata=verbose
Accept: application/json;odata=verbose
DataServiceVersion: 3.0
MaxDataServiceVersion: 3.0
x-ms-version: 2.2
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=1336908022&Issuer=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&HMACSHA256=RYXOraO6Z%2f7l9whWZQN%2bypeijgHwIk8XyikA01Kx1%2bk%3d
Host: media.windows.net
Content-Length: 0

Si l’opération réussit, la réponse suivante est renvoyée :

HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Length: 17
Content-Type: application/json;odata=verbose;charset=utf-8
Server: Microsoft-IIS/7.5
x-ms-request-id: 01324d81-18e2-4493-a3e5-c6186209f0c8
X-Content-Type-Options: nosniff
DataServiceVersion: 1.0;
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Sun, 13 May 2012 05:16:53 GMT

{"d":{"State":2}}

Media Services vous donne la possibilité d’annuler des travaux en cours d’exécution via la fonction CancelJob. Cet appel renvoie un code d’erreur 400 si vous tentez d’annuler un travail alors que son état est Annulé, Annulation en cours, Erreur ou Terminé.

L’exemple suivant illustre l’appel de la fonction CancelJob.

GET https://media.windows.net/API/CancelJob?jobid='nb%3ajid%3aUUID%3a9e9533ba-2b9b-fa4c-a33d-73eebd49039b' HTTP/1.1
Content-Type: application/json;odata=verbose
Accept: application/json;odata=verbose
DataServiceVersion: 3.0
MaxDataServiceVersion: 3.0
x-ms-version: 2.2
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=1336908753&Issuer=https%3a%2f%2fwamsprodglobal001acs.accesscontrol.windows.net%2f&HMACSHA256=kolAgnFfbQIeRv4lWxKSFa4USyjWXRm15Kd%2bNd5g8eA%3d
Host: media.windows.net

Si l’opération réussit, un code de réponse 204 est renvoyé sans aucun corps de message.

noteRemarque
Vous devez encoder l’ID du travail avec une URL (généralement sous la forme nb:jid:UUID: valeur) lorsque vous le transmettez en tant que paramètre à la fonction CancelJob.

Voir aussi

Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.
Afficher:
© 2014 Microsoft