Tutorial: Codificación de un archivo remoto según una dirección URL y transmisión del vídeo: REST
¿Busca la documentación de Media Services, versión 2?
Azure Media Services permite codificar los archivos multimedia en formatos que se pueden reproducir en una gran variedad de exploradores y dispositivos. Por ejemplo, puede que quiera transmitir su contenido en los formatos HLS o MPEG DASH de Apple. Antes de la transmisión, primero debe codificar su archivo de medios digitales de alta calidad. Para obtener instrucciones acerca de la codificación, consulte El concepto de codificación.
En este tutorial se muestra cómo codificar un archivo según una dirección URL y transmitir el vídeo con Azure Media Services mediante REST.
Advertencia
No se recomienda intentar encapsular la API REST de Media Services directamente en su propio código de biblioteca, ya que hacerlo correctamente con fines de producción requeriría la implementación de la lógica de reintentos de Azure Resource Manager completa y comprender cómo administrar operaciones de larga duración en las API de Azure Resource Manager. Esto se controla automáticamente mediante los SDK de cliente de varios lenguajes (.NET, Java, TypeScript, Python, Ruby, etc.) y reduce las posibilidades de que tenga problemas con la lógica de reintentos o las llamadas API con errores. Los SDK de cliente lo controlan todo automáticamente. La colección de Postman se proporciona más como una herramienta de enseñanza y para mostrar lo que los SDK de cliente hacen realmente en la conexión durante el desarrollo con los distintos SDK de cliente.

En este tutorial se muestra cómo realizar las siguientes acciones:
- Creación de una cuenta de Media Services
- Acceso a la API de Media Services
- Descarga de archivos Postman
- Configuración de Postman
- Envío de solicitudes mediante Postman
- Prueba de la URL de streaming
- Limpieza de recursos
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Prerrequisitos
Cree una cuenta de Media Services.
Asegúrese de recordar los valores que usó para el nombre de la cuenta de Media Services y el nombre del grupo de recursos
Instale el cliente de REST de Postman para ejecutar las API de REST mostradas en algunos de los tutoriales de REST de AMS.
Usamos Postman pero cualquier herramienta de REST sería adecuada. Otras alternativas son: Visual Studio Code con el complemento de REST o Telerik Fiddler.
Descarga de archivos Postman
Clone un repositorio de GitHub que contenga los archivos de recopilación y entorno de Postman.
git clone https://github.com/Azure-Samples/media-services-v3-rest-postman.git
Acceso a la API
Para más información, consulte Obtención de credenciales para acceder a Media Services API
Configuración de Postman
Configuración del entorno
Abra la aplicación Postman.
A la derecha de la pantalla, seleccione la opción Manage Environments (Administrar entornos).

En el cuadro de diálogo Manage Environments (Administrar entornos), haga clic en Import (Importar).
Vaya al archivo
Azure Media Service v3 Environment.postman_environment.jsonque se descargó cuando clonóhttps://github.com/Azure-Samples/media-services-v3-rest-postman.git.Se agrega el entorno Azure Media Service v3 Environment.
Nota
Actualice las variables de acceso con los valores que obtuvo de la sección Acceso a la API de Media Services anterior.
Haga doble clic en el archivo seleccionado y escriba los valores que obtuvo al seguir los pasos descritos en acceso a la API.
Cierre el cuadro de diálogo.
Seleccione el entorno Azure Media Service v3 Environment en la lista desplegable.

Configuración de la colección
Haga clic en Import (Importar) para importar el archivo de la colección.
Vaya al archivo
Media Services v3.postman_collection.jsonque se descargó cuando clonóhttps://github.com/Azure-Samples/media-services-v3-rest-postman.gitElija el archivo Media Services v3.postman_collection.json.

Envío de solicitudes mediante Postman
En esta sección se enviarán solicitudes que son significativas para codificar y crear direcciones URL, de modo que pueda hacer streaming del archivo. En concreto, se envían las solicitudes siguientes:
- Obtención del token de Azure AD para la autenticación de la entidad de servicio
- Inicio de un punto de conexión de streaming
- Creación de un recurso de salida
- Cree una transformación
- Creación de un trabajo
- Creación de un objeto StreamingLocator
- Enumeración de las rutas de acceso de StreamingLocator
Nota
En este tutorial se da por hecho que va a crear todos los recursos con nombres únicos.
Obtención del token de Azure AD
En la ventana izquierda de la aplicación Postman, seleccione "Step 1: Get AAD Auth token" (Paso 1: Obtención del token de autorización de AAD).
A continuación, seleccione "Get Azure AD Token for Service Principal Authentication" (Obtener token de Azure AD para la autenticación de la entidad de servicio).
Presione Enviar.
Se envía la siguiente operación POST.
https://login.microsoftonline.com/:aadTenantDomain/oauth2/tokenLa respuesta regresa con el token y establece la variable de entorno "AccessToken" en el valor del token. Para ver el código que establece "AccessToken", haga clic en la pestaña Tests (Pruebas).

Inicio de un punto de conexión de streaming
Para iniciar la transmisión del vídeo, primero debe iniciar el punto de conexión de streaming desde el que quiere hacerlo.
Nota
Solo se le cobrará cuando el punto de conexión de streaming esté en estado de ejecución.
En la ventana izquierda de la aplicación Postman, seleccione "Streaming and Live" (Streaming y en vivo).
A continuación, seleccione "Start StreamingEndpoint" (Iniciar punto de conexión de streaming).
Presione Enviar.
Se envía la siguiente operación POST:
https://management.azure.com/subscriptions/:subscriptionId/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaservices/:accountName/streamingEndpoints/:streamingEndpointName/start?api-version={{api-version}}Si la solicitud es correcta, se devuelve
Status: 202 Accepted.Este estado significa que se ha aceptado el procesamiento de la solicitud, pero no se ha completado. Puede consultar el estado de la operación según el valor del encabezado de respuesta
Azure-AsyncOperation.Por ejemplo, la siguiente operación GET devuelve el estado de la operación:
https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/<resourceGroupName>/providers/Microsoft.Media/mediaservices/<accountName>/streamingendpointoperations/1be71957-4edc-4f3c-a29d-5c2777136a2e?api-version=2018-07-01En el artículo Seguimiento de las operaciones asincrónicas de Azure se explica de forma detallada cómo realizar un seguimiento del estado de las operaciones asincrónicas de Azure mediante los valores devueltos en la respuesta.
Creación de un recurso de salida
El recurso de salida almacena el resultado del trabajo de codificación.
En la ventana izquierda de la aplicación Postman, seleccione "Assets" (Recursos).
A continuación, seleccione "Create or update an Asset" (Crear o actualizar un recurso).
Presione Enviar.
Se envía la siguiente operación PUT:
https://management.azure.com/subscriptions/:subscriptionId/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaServices/:accountName/assets/:assetName?api-version={{api-version}}La operación tiene el siguiente cuerpo:
{ "properties": { "description": "My Asset", "alternateId" : "some GUID", "storageAccountName": "<replace from environment file>", "container": "<supply any valid container name of your choosing>" } }
Nota
Asegúrese de reemplazar los nombres del contenedor y de la cuenta de almacenamiento por los del archivo de entorno, o bien especifique los suyos propios.
Cuando complete los pasos que se describen en el resto de este artículo, asegúrese de que proporciona parámetros válidos en los cuerpos de la solicitud.
Creación de una transformación
Cuando se codifica o procesa contenido en Media Services, es un patrón común configurar los ajustes de codificación como una receta. Después, podría enviar un trabajo para aplicar esa receta a un vídeo. Al enviar nuevos trabajos en cada nuevo vídeo, está aplicando dicha receta a todos los vídeos de la biblioteca. Una receta en Media Services se llama transformación. Para obtener más información, consulte Transformaciones y trabajos. El ejemplo descrito en este tutorial define una receta que codifica el vídeo para transmitirlo a varios dispositivos iOS y Android.
Al crear una nueva instancia de la transformación, debe especificar qué desea originar como salida. El parámetro requerido es un objeto TransformOutput. Cada objeto TransformOutput contiene un valor preestablecido. El valor preestablecido describe las instrucciones paso a paso de las operaciones de procesamiento de vídeo o audio que se utilizarán para generar el objeto TransformOutput deseado. El ejemplo descrito en este artículo utiliza un valor preestablecido integrado denominado AdaptiveStreaming. El valor preestablecido codifica el vídeo de entrada en una escala de velocidad de bits generada automáticamente (pares resolución-velocidad de bits) basada en la resolución y la velocidad de bits, y produce archivos ISO MP4 con vídeo H.264 y audio AAC correspondiente a cada par resolución-velocidad de bits. Para más información sobre este valor preestablecido, consulte el artículo sobre la generación automática de la escala de velocidad de bits.
Puede usar un valor de EncoderNamedPreset integrado o valores preestablecidos personalizados.
Nota
Al crear una transformación, debe comprobar primero si ya existe una con el método Get. En este tutorial se da por hecho que va a crear la transformación con un nombre único.
En la ventana izquierda de la aplicación Postman, seleccione "Encoding and Analysis" (Codificación y análisis).
A continuación, seleccione "Create Transform" (Crear transformación).
Presione Enviar.
Se envía la siguiente operación PUT.
https://management.azure.com/subscriptions/:subscriptionId/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaServices/:accountName/transforms/:transformName?api-version={{api-version}}La operación tiene el siguiente cuerpo:
{ "properties": { "description": "Standard Transform using an Adaptive Streaming encoding preset from the library of built-in Standard Encoder presets", "outputs": [ { "onError": "StopProcessingJob", "relativePriority": "Normal", "preset": { "@odata.type": "#Microsoft.Media.BuiltInStandardEncoderPreset", "presetName": "AdaptiveStreaming" } } ] } }
Creación de un trabajo
Un trabajo es la solicitud real a Media Services para aplicar la transformación creada a un determinado contenido de vídeo o audio. El trabajo especifica información como la ubicación del vídeo de entrada y la ubicación de la salida.
En este ejemplo, la entrada del trabajo se basa en una dirección URL HTTPS ("https://nimbuscdn-nimbuspm.streaming.mediaservices.windows.net/2b533311-b215-4409-80af-529c3e853622/").
En la ventana izquierda de la aplicación Postman, seleccione "Encoding and Analysis" (Codificación y análisis).
A continuación, seleccione "Create or Update Job" (Crear o actualizar trabajo).
Presione Enviar.
Se envía la siguiente operación PUT.
https://management.azure.com/subscriptions/:subscriptionId/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaServices/:accountName/transforms/:transformName/jobs/:jobName?api-version={{api-version}}La operación tiene el siguiente cuerpo:
{ "properties": { "input": { "@odata.type": "#Microsoft.Media.JobInputHttp", "baseUri": "https://nimbuscdn-nimbuspm.streaming.mediaservices.windows.net/2b533311-b215-4409-80af-529c3e853622/", "files": [ "Ignite-short.mp4" ] }, "outputs": [ { "@odata.type": "#Microsoft.Media.JobOutputAsset", "assetName": "testAsset1" } ] } }
El trabajo tarda algún tiempo en completarse y cuando lo hace querrá recibir una notificación. Para ver el progreso del trabajo, se recomienda usar Event Grid. Event Grid está diseñado para conseguir alta disponibilidad, rendimiento coherente y escalado dinámico. Con Event Grid, sus aplicaciones pueden escuchar y reaccionar a eventos de casi todos los servicios de Azure y de orígenes personalizados. El control de eventos sencillo y reactivo basado en HTTP le ayuda a crear soluciones eficaces con filtrado y enrutamiento de eventos inteligente. Consulte Enrutamiento de eventos a un punto de conexión web personalizado.
El trabajo pasa normalmente por los siguientes estados: Programado, En cola, Procesando, Finalizado (el estado final). Si el trabajo ha encontrado un error, obtendrá el estado Error. Si el trabajo está en proceso de cancelación, obtendrá Cancelando y Cancelado cuando haya terminado.
Códigos de error de trabajo
Consulte Códigos de error.
Creación de un localizador de streaming
Una vez finalizado el trabajo de codificación, el siguiente paso es poner el vídeo del recurso de salida a disposición de los clientes para su reproducción. Puede hacerlo en dos pasos: primero, cree un objeto StreamingLocator y, en segundo lugar, cree las direcciones URL de streaming que pueden usar los clientes.
El proceso de creación de un localizador de streaming se denomina publicación. De forma predeterminada, el localizador de streaming es válido inmediatamente después de realizar las llamadas a la API y dura hasta que se elimina, salvo que configure las horas de inicio y de finalización opcionales.
Al crear un objeto StreamingLocator, debe especificar el objeto StreamingPolicyName deseado. En este ejemplo, va a transmitir contenido no cifrado, de modo que se puede usar la directiva de streaming sin cifrar predefinida, "Predefined_ClearStreamingOnly".
Importante
Al utilizar el objeto StreamingPolicy personalizado, debe diseñar un conjunto limitado de dichas directivas para su cuenta de Media Service y reutilizarlas para sus objetos StreamingLocator siempre que se necesiten las mismas opciones y protocolos de cifrado.
La cuenta de Media Service tiene una cuota para el número de entradas de Streaming Policy. No debe crear un objeto Streaming Policy para cada localizador de streaming.
En la ventana izquierda de la aplicación Postman, seleccione "Streaming Policies and Locators" (Directivas de streaming y localizadores).
A continuación, seleccione "Create a Streaming Locator (clear)" (Crear un localizador de streaming [sin cifrado]).
Presione Enviar.
Se envía la siguiente operación PUT.
https://management.azure.com/subscriptions/:subscriptionId/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaServices/:accountName/streamingLocators/:streamingLocatorName?api-version={{api-version}}La operación tiene el siguiente cuerpo:
{ "properties": { "streamingPolicyName": "Predefined_ClearStreamingOnly", "assetName": "testAsset1", "contentKeys": [], "filters": [] } }
Enumeración de rutas de acceso y creación de direcciones URL de streaming
Enumeración de rutas de acceso
Ahora que se ha creado el objeto StreamingLocator, puede obtener las direcciones URL de streaming.
En la ventana izquierda de la aplicación Postman, seleccione "Streaming Policies" (Directivas de streaming).
A continuación, seleccione "List Paths" (Enumerar rutas de acceso).
Presione Enviar.
Se envía la siguiente operación POST.
https://management.azure.com/subscriptions/:subscriptionId/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaServices/:accountName/streamingLocators/:streamingLocatorName/listPaths?api-version={{api-version}}La operación no tiene cuerpo:
Anote una de las rutas de acceso que desea usar con el streaming, la utilizará en la sección siguiente. En este caso, se devolvieron las rutas de acceso siguientes:
"streamingPaths": [ { "streamingProtocol": "Hls", "encryptionScheme": "NoEncryption", "paths": [ "/cdb80234-1d94-42a9-b056-0eefa78e5c63/Ignite-short.ism/manifest(format=m3u8-aapl)" ] }, { "streamingProtocol": "Dash", "encryptionScheme": "NoEncryption", "paths": [ "/cdb80234-1d94-42a9-b056-0eefa78e5c63/Ignite-short.ism/manifest(format=mpd-time-csf)" ] }, { "streamingProtocol": "SmoothStreaming", "encryptionScheme": "NoEncryption", "paths": [ "/cdb80234-1d94-42a9-b056-0eefa78e5c63/Ignite-short.ism/manifest" ] } ]
Creación de las direcciones URL de streaming
En esta sección, crearemos una dirección URL de streaming de HLS. Las direcciones URL constan de los siguientes valores:
El protocolo a través del cual se envían datos. En este caso, "https".
Nota
Si el reproductor está hospedado en un sitio https, asegúrese de actualizar la dirección URL a "https".
Nombre de host de StreamingEndpoint. En este caso, el nombre es "amsaccount-usw22.streaming.media.azure.net".
Para obtener el nombre de host puede utilizar la siguiente operación GET:
https://management.azure.com/subscriptions/00000000-0000-0000-0000-0000000000000/resourceGroups/:resourceGroupName/providers/Microsoft.Media/mediaservices/:accountName/streamingEndpoints/default?api-version={{api-version}}Y asegúrese de que establece los parámetros
resourceGroupNameyaccountNamepara ajustarse al archivo del entorno.Una ruta de acceso que obtuvo en la sección anterior (rutas de lista).
Como resultado, se creó la siguiente dirección URL de HLS
https://amsaccount-usw22.streaming.media.azure.net/cdb80234-1d94-42a9-b056-0eefa78e5c63/Ignite-short.ism/manifest(format=m3u8-aapl)
Prueba de la URL de streaming
Nota
Asegúrese de que el punto de conexión de streaming desde el que va a hacer streaming del contenido esté en ejecución.
Para probar el streaming, este artículo usa Azure Media Player.
- Abra un explorador web y vaya a https://aka.ms/azuremediaplayer/.
- En el cuadro URL:, pegue la dirección URL que ha creado.
- Presione Actualizar Player.
Azure Media Player puede usarse para realizar pruebas, pero no debe usarse en un entorno de producción.
Limpieza de los recursos en su cuenta de Media Services
Por lo general, debe limpiar todo excepto los objetos que piensa reutilizar (típicamente, reutilizará transformaciones y conservará los objetos StreamingLocator, etc.). Si desea que la cuenta esté limpia después de la experimentación, debe eliminar los recursos que no piensa volver a usar.
Para eliminar un recurso, seleccione la operación "Eliminar..." en el recurso que desea eliminar.
Limpieza de recursos
Si ya no necesita ninguno de los recursos del grupo de recursos, incluida las cuentas de almacenamiento y de Media Services que ha creado en este tutorial, elimine el grupo de recursos que ha creado antes.
Ejecute el siguiente comando de la CLI:
az group delete --name amsResourceGroup
Formule preguntas, realice comentarios y obtenga actualizaciones
Consulte el artículo Comunidad de Azure Media Services para ver diferentes formas de formular preguntas, enviar comentarios y obtener actualizaciones de Media Services.
Pasos siguientes
Ahora que sabe cómo cargar, codificar y transmitir el vídeo, consulte el siguiente artículo: