Come codificare un asset mediante Media Encoder StandardHow to encode an asset by using Media Encoder Standard

PanoramicaOverview

Per distribuire un video digitale in Internet è necessario comprimere il file multimediale.To deliver digital video over the Internet, you must compress the media. I file video digitali hanno dimensioni piuttosto elevate e possono risultare troppo grandi per la distribuzione su Internet o per la visualizzazione corretta nei dispositivi dei clienti.Digital video files are large and may be too large to deliver over the Internet, or for your customers’ devices to display properly. Mediante il processo di codifica è possibile comprimere video e audio per consentire ai clienti di visualizzare i file multimediali.Encoding is the process of compressing video and audio so your customers can view your media.

I processi di codifica sono tra le operazioni di elaborazione più frequenti in Servizi multimediali di Azure.Encoding jobs are one of the most common processing operations in Azure Media Services. Questi processi vengono creati per convertire i file multimediali da una codifica all'altra.You create encoding jobs to convert media files from one encoding to another. Durante la codifica è possibile usare il codificatore multimediale incorporato in Servizi multimediali (Media Encoder Standard).When you encode, you can use the Media Services built-in encoder (Media Encoder Standard). È inoltre possibile usare un codificatore fornito da un partner di Servizi multimediali.You can also use an encoder provided by a Media Services partner. I codificatori di terze parti sono disponibili tramite il Marketplace di Azure.Third-party encoders are available through the Azure Marketplace. È possibile specificare i dettagli relativi alle attività di codifica usando stringhe di set di impostazioni definite per il codificatore oppure file di configurazione di set di impostazioni.You can specify the details of encoding tasks by using preset strings defined for your encoder, or by using preset configuration files. Per i tipi di set di impostazioni disponibili, vedere Task Presets for Media Encoder Standard (Set di impostazioni disponibili per Media Encoder Standard).To see the types of presets that are available, see Task Presets for Media Encoder Standard.

Ogni processo può includere una o più attività in base al tipo di elaborazione che si desidera eseguire.Each job can have one or more tasks depending on the type of processing that you want to accomplish. Usando l'API REST è possibile creare i processi e le attività correlate procedendo in due modi diversi:Through the REST API, you can create jobs and their related tasks in one of two ways:

  • Le Attività possono essere definite in linea mediante la proprietà di navigazione attività nelle entità dei processi.Tasks can be defined inline through the Tasks navigation property on Job entities.
  • Usare l'elaborazione batch OData.Use OData batch processing.

È consigliabile codificare sempre i file di origine in un set MP4 a velocità in bit adattiva e quindi convertire il set nel formato desiderato mediante la creazione dinamica dei pacchetti.We recommend that you always encode your source files into an adaptive bitrate MP4 set, and then convert the set to the desired format by using dynamic packaging.

Se l'asset di output è protetto con crittografia di archiviazione, è necessario configurare i criteri di distribuzione degli asset.If your output asset is storage encrypted, you must configure the asset delivery policy. Per altre informazioni, vedere Configurazione dei criteri di distribuzione degli asset.For more information, see Configuring asset delivery policy.

ConsiderazioniConsiderations

Quando si accede alle entità in Servizi multimediali, è necessario impostare valori e campi di intestazione specifici nelle richieste HTTP.When accessing entities in Media Services, you must set specific header fields and values in your HTTP requests. Per altre informazioni, vedere Panoramica dell'API REST di Servizi multimediali.For more information, see Setup for Media Services REST API Development.

Prima di iniziare a fare riferimento ai supporti multimediali, verificare di avere il corretto processore ID del supporto.Before you start referencing media processors, verify that you have the correct media processor ID. Per altre informazioni, vedere Ottenere processori di contenuti multimediali.For more information, see Get media processors.

Connettersi a Servizi multimedialiConnect to Media Services

Per informazioni su come connettersi all'API AMS, vedere Accedere all'API di Servizi multimediali di Azure con l'autenticazione di Azure AD.For information on how to connect to the AMS API, see Access the Azure Media Services API with Azure AD authentication.

Creare un processo con una singola attività di codificaCreate a job with a single encoding task

Nota

Quando si usa l'API REST di Servizi multimediali, tenere presenti le seguenti considerazioni:

Quando si accede alle entità in Servizi multimediali, è necessario impostare valori e campi di intestazione specifici nelle richieste HTTP. Per altre informazioni, vedere Configurazione dello sviluppo dell'API REST di Servizi multimediali.

Quando usando JSON e specificando per l'utilizzo di Metadata (parola chiave) nella richiesta (ad esempio, per un oggetto collegato riferimento), è necessario impostare il Accept intestazione formato JSON dettagliato: Accettare: application/json; odata = verbose.

Il seguente esempio mostra come creare e pubblicare un processo con un'attività impostata per codificare un video con determinati valori di risoluzione e qualità.The following example shows you how to create and post a job with one task set to encode a video at a specific resolution and quality. Quando si esegue la codifica con Media Encoder Standard, è possibile usare i set di impostazioni di attività specificati qui.When you encode with Media Encoder Standard, you can use task configuration presets specified here.

Richiesta:Request:

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.17
Authorization: Bearer <token value>
x-ms-client-request-id: 00000000-0000-0000-0000-000000000000
Host: media.windows.net

{"Name" : "NewTestJob", "InputMediaAssets" : [{"__metadata" : {"uri" : "https://media.windows.net/api/Assets('nb%3Acid%3AUUID%3Aaab7f15b-3136-4ddf-9962-e9ecb28fb9d2')"}}],  "Tasks" : [{"Configuration" : "Adaptive Streaming", "MediaProcessorId" : "nb:mpid:UUID:ff4df607-d419-42f0-bc17-a481b1331e56",  "TaskBody" : "<?xml version=\"1.0\" encoding=\"utf-8\"?><taskBody><inputAsset>JobInputAsset(0)</inputAsset><outputAsset>JobOutputAsset(0)</outputAsset></taskBody>"}]}

Risposta:Response:

HTTP/1.1 201 Created

. . .

Impostare il nome dell'asset di outputSet the output asset's name

Il seguente esempio mostra impostare l'attributo assetName:The following example shows how to set the assetName attribute:

{ "TaskBody" : "<?xml version=\"1.0\" encoding=\"utf-8\"?><taskBody><inputAsset>JobInputAsset(0)</inputAsset><outputAsset assetName=\"CustomOutputAssetName\">JobOutputAsset(0)</outputAsset></taskBody>"}

ConsiderazioniConsiderations

  • Le proprietà TaskBody devono usare codice XML letterale per definire il numero di asset di input o di output che vengono usati dall'attività.TaskBody properties must use literal XML to define the number of input, or output assets that are used by the task. L'articolo di attività contiene la definizione di Schema XML per il codice XML.The task article contains the XML Schema Definition for the XML.
  • Nella definizione TaskBody ogni valore interno per e deve essere impostato come JobInputAsset(value) o JobOutputAsset(value).In the TaskBody definition, each inner value for and must be set as JobInputAsset(value) or JobOutputAsset(value).
  • Un'attività può avere più asset di output.A task can have multiple output assets. Un oggetto JobOutputAsset(x) può essere usato solo una volta come output di un'attività in un processo.One JobOutputAsset(x) can only be used once as an output of a task in a job.
  • È possibile specificare JobInputAsset o JobOutputAsset come asset di input di un'attività.You can specify JobInputAsset or JobOutputAsset as an input asset of a task.
  • Le attività non devono formare un ciclo.Tasks must not form a cycle.
  • Il parametro del valore passato a JobInputAsset o JobOutputAsset rappresenta il valore di indice di un asset.The value parameter that you pass to JobInputAsset or JobOutputAsset represents the index value for an asset. Gli asset effettivi vengono definiti nelle proprietà di navigazione InputMediaAssets e OutputMediaAssets nella definizione dell'entità del processo.The actual assets are defined in the InputMediaAssets and OutputMediaAssets navigation properties on the job entity definition.
  • Poiché servizi multimediali si basa su OData versione 3, i singoli asset nelle raccolte di proprietà di navigazione InputMediaAssets e OutputMediaAssets viene fatto riferimento tramite un " Metadata: uri" coppia nome-valore.Because Media Services is built on OData v3, the individual assets in the InputMediaAssets and OutputMediaAssets navigation property collections are referenced through a "__metadata: uri" name-value pair.
  • InputMediaAssets è mappata a uno o più asset creati in Servizi multimediali.InputMediaAssets maps to one or more assets that you created in Media Services. Le proprietà OutputMediaAssets vengono create dal sistema.OutputMediaAssets are created by the system. Non fanno riferimento a un asset esistente.They don't reference an existing asset.
  • Per assegnare un nome a OutputMediaAssets è possibile usare l'attributo assetName.OutputMediaAssets can be named by using the assetName attribute. Se questo attributo non è presente, il nome della proprietà OutputMediaAssets corrisponde al valore del testo interno dell'elemento preceduto dal nome o dall'ID del processo, nel caso in cui la proprietà Name non sia definita.If this attribute is not present, then the name of the OutputMediaAsset is whatever the inner text value of the element is with a suffix of either the Job Name value, or the Job Id value (in the case where the Name property isn't defined). Se ad esempio si è impostato "Sample" come valore di assetName, la proprietà Name di OutputMediaAssets sarà impostata su "Sample".For example, if you set a value for assetName to "Sample," then the OutputMediaAsset Name property is set to "Sample." Se invece non si è impostato un valore per assetName, ma si è impostato "NewJob" come nome del processo, il nome di OutputMediaAssets sarà "JobOutputAsset(value)_NewJob".However, if you didn't set a value for assetName, but did set the job name to "NewJob," then the OutputMediaAsset Name would be "JobOutputAsset(value)_NewJob."

Creare un processo con attività concatenateCreate a job with chained tasks

In molti scenari di applicazione, gli sviluppatori desiderano creare una serie di attività di elaborazione.In many application scenarios, developers want to create a series of processing tasks. In Servizi multimediali è possibile creare una serie di attività concatenate.In Media Services, you can create a series of chained tasks. Ogni attività esegue diversi passaggi di elaborazione e può usare processori di contenuti multimediali differenti.Each task performs different processing steps and can use different media processors. Le attività concatenate possono trasferire un asset da un'attività a un'altra e consentono quindi l'esecuzione delle attività dell'asset in sequenza lineare.The chained tasks can hand off an asset from one task to another, performing a linear sequence of tasks on the asset. Tuttavia, non è necessario che le attività eseguite in un processo siano in sequenza.However, the tasks performed in a job are not required to be in a sequence. Quando si crea un'attività concatenata, gli oggetti ITask concatenati vengono creati in un singolo oggetto IJob.When you create a chained task, the chained ITask objects are created in a single IJob object.

Nota

Attualmente è previsto un limite di 30 attività per processo. Se è necessario concatenare più di 30 attività, creare più processi in modo da contenerle tutte.

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.17
Authorization: Bearer <token value>
x-ms-client-request-id: 00000000-0000-0000-0000-000000000000

{  
   "Name":"NewTestJob",
   "InputMediaAssets":[  
      {  
         "__metadata":{  
            "uri":"https://testrest.cloudapp.net/api/Assets('nb%3Acid%3AUUID%3A910ffdc1-2e25-4b17-8a42-61ffd4b8914c')"
         }
      }
   ],
   "Tasks":[  
      {  
         "Configuration":"H264 Adaptive Bitrate MP4 Set 720p",
         "MediaProcessorId":"nb:mpid:UUID:ff4df607-d419-42f0-bc17-a481b1331e56",
         "TaskBody":"<?xml version=\"1.0\" encoding=\"utf-8\"?><taskBody><inputAsset>JobInputAsset(0)</inputAsset><outputAsset>JobOutputAsset(0)</outputAsset></taskBody>"
      },
      {  
         "Configuration":"H264 Smooth Streaming 720p",
         "MediaProcessorId":"nb:mpid:UUID:ff4df607-d419-42f0-bc17-a481b1331e56",
         "TaskBody":"<?xml version=\"1.0\" encoding=\"utf-16\"?><taskBody><inputAsset>JobOutputAsset(0)</inputAsset><outputAsset>JobOutputAsset(1)</outputAsset></taskBody>"
      }
   ]
}

ConsiderazioniConsiderations

Per abilitare il concatenamento di attività:To enable task chaining:

  • Un processo deve avere almeno due attività.A job must have at least two tasks.
  • Deve essere presente almeno un'attività il cui input viene usato come output di un'altra attività nel processo.There must be at least one task whose input is the output of another task in the job.

Utilizzare l'elaborazione batch ODataUse OData batch processing

Nell'esempio seguente viene illustrato come utilizzare l'elaborazione batch OData per creare un processo e un’attività.The following example shows how to use OData batch processing to create a job and tasks. Per informazioni sull'elaborazione batch, vedere l'articolo relativo all' elaborazione batch OData (Open Data Protocol).For information on batch processing, see Open Data Protocol (OData) Batch Processing.

POST https://media.windows.net/api/$batch HTTP/1.1
DataServiceVersion: 1.0;NetFx
MaxDataServiceVersion: 3.0;NetFx
Content-Type: multipart/mixed; boundary=batch_a01a5ec4-ba0f-4536-84b5-66c5a5a6d34e
Accept: multipart/mixed
Accept-Charset: UTF-8
Authorization: Bearer <token>
x-ms-version: 2.17
x-ms-client-request-id: 00000000-0000-0000-0000-000000000000
Host: media.windows.net


--batch_a01a5ec4-ba0f-4536-84b5-66c5a5a6d34e
Content-Type: multipart/mixed; boundary=changeset_122fb0a4-cd80-4958-820f-346309967e4d

--changeset_122fb0a4-cd80-4958-820f-346309967e4d
Content-Type: application/http
Content-Transfer-Encoding: binary

POST https://media.windows.net/api/Jobs HTTP/1.1
Content-ID: 1
Content-Type: application/json
Accept: application/json
DataServiceVersion: 3.0
MaxDataServiceVersion: 3.0
Accept-Charset: UTF-8
Authorization: Bearer <token>
x-ms-version: 2.17
x-ms-client-request-id: 00000000-0000-0000-0000-000000000000

{"Name" : "NewTestJob", "InputMediaAssets@odata.bind":["https://media.windows.net/api/Assets('nb%3Acid%3AUUID%3A2a22445d-1500-80c6-4b34-f1e5190d33c6')"]}

--changeset_122fb0a4-cd80-4958-820f-346309967e4d
Content-Type: application/http
Content-Transfer-Encoding: binary

POST https://media.windows.net/api/$1/Tasks HTTP/1.1
Content-ID: 2
Content-Type: application/json;odata=verbose
Accept: application/json;odata=verbose
DataServiceVersion: 3.0
MaxDataServiceVersion: 3.0
Accept-Charset: UTF-8
Authorization: Bearer <token>
x-ms-version: 2.17
x-ms-client-request-id: 00000000-0000-0000-0000-000000000000

{  
   "Configuration":"H264 Adaptive Bitrate MP4 Set 720p",
   "MediaProcessorId":"nb:mpid:UUID:ff4df607-d419-42f0-bc17-a481b1331e56",
   "TaskBody":"<?xml version=\"1.0\" encoding=\"utf-8\"?><taskBody><inputAsset>JobInputAsset(0)</inputAsset><outputAsset assetName=\"Custom output name\">JobOutputAsset(0)</outputAsset></taskBody>"
}

--changeset_122fb0a4-cd80-4958-820f-346309967e4d--
--batch_a01a5ec4-ba0f-4536-84b5-66c5a5a6d34e--

Creare un processo tramite JobTemplateCreate a job by using a JobTemplate

Quando si elaborano più asset usando un set comune di attività, usare JobTemplate per specificare le impostazioni di attività predefinite o per impostare l'ordine delle attività.When you process multiple assets by using a common set of tasks, use a JobTemplate to specify the default task presets, or to set the order of tasks.

L'esempio seguente mostra come creare JobTemplate con un'entità TaskTemplate definita inline.The following example shows how to create a JobTemplate with a TaskTemplate that is defined inline. L'entità TaskTemplate usa Media Encoder Standard come entità MediaProcessor per codificare il file di asset.The TaskTemplate uses the Media Encoder Standard as the MediaProcessor to encode the asset file. Tuttavia, può usare anche altre entità Mediaprocessor.However, other MediaProcessors can be used as well.

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.17
Authorization: Bearer <token value>
Host: media.windows.net


{"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:ff4df607-d419-42f0-bc17-a481b1331e56", "Name" : "SampleTaskTemplate2", "NumberofInputAssets" : 1, "NumberofOutputAssets" : 1}] }

Nota

A differenza di altre entità di Servizi multimediali, è necessario definire un nuovo identificatore GUID per ogni entità TaskTemplate e inserirlo nel corpo della richiesta in taskTemplateId e nella proprietà Id. Lo schema di identificazione del contenuto deve seguire lo schema descritto in Identificare le entità di Servizi multimediali di Azure. Inoltre, non è possibile aggiornare le entità JobTemplate. È invece necessario crearne una nuova con le modifiche aggiornate.

Se l'esito è positivo, viene restituita la seguente risposta:If successful, the following response is returned:

HTTP/1.1 201 Created

. . .

L'esempio seguente mostra come creare un processo che fa riferimento all'ID di un'entità JobTemplate:The following example shows how to create a job that references a JobTemplate Id:

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.17
Authorization: Bearer <token value>
Host: media.windows.net


{"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"}

Se l'esito è positivo, viene restituita la seguente risposta:If successful, the following response is returned:

HTTP/1.1 201 Created

. . .

Funzionalità di codifica avanzate da esplorareAdvanced Encoding Features to explore

Percorsi di apprendimento di Servizi multimedialiMedia Services learning paths

Altre informazioni sui percorsi di apprendimento di Servizi multimediali di Azure:Read about the Azure Media Services learning paths:

Fornire commenti e suggerimentiProvide feedback

Usare il forum di suggerimenti degli utenti per fornire commenti e suggerimenti su come migliorare Servizi multimediali di Azure.Use the User Voice forum to provide feedback and make suggestions on how to improve Azure Media Services. È anche possibile passare direttamente a una delle categorie seguenti:You also can go directly to one of the following categories:

Passaggi successiviNext steps

Dopo aver spiegato il processo per la codifica di un asset, si può passare all'argomento Procedura per controllare lo stato dei processi con Servizi multimediali.Now that you know how to create a job to encode an asset, see How to check job progress with Media Services.

Vedere anche See also

Ottenere processori di contenuti multimedialiGet Media Processors