Codificación de vídeo y audio con Media ServicesEncoding video and audio with Media Services

El término codificación en Media Services se aplica al proceso de convertir archivos que contienen vídeo o audio digital de un formato estándar a otro, con el objetivo de (a) reducir el tamaño de los archivos o (b) producir un formato que sea compatible con un amplia gama de dispositivos y aplicaciones.The term encoding in Media Services applies to the process of converting files containing digital video and/or audio from one standard format to another, with the purpose of (a) reducing the size of the files, and/or (b) producing a format that's compatible with a broad range of devices and apps. Este proceso también se conoce como compresión de vídeo o transcodificación.This process is also referred to as video compression, or transcoding. Consulte Compresión de datos y What Is Encoding and Transcoding? (¿Qué es la codificación y transcodificación?) para más información sobre los conceptos.See the Data compression and the What Is Encoding and Transcoding? for further discussion of the concepts.

Normalmente, los vídeos se entregan a los dispositivos y aplicaciones a través de una descarga progresiva o el streaming con velocidad de bits adaptable.Videos are typically delivered to devices and apps by progressive download or through adaptive bitrate streaming.

  • Para la entrega a través de una descarga progresiva, puede usar Azure Media Services para convertir un archivo multimedia digital (intermedio) en un archivo MP4 que contiene el vídeo que se ha codificado con el códec H.264 y audio que se ha codificado con el códec AAC.To deliver by progressive download, you can use Azure Media Services to convert a digital media file (mezzanine) into an MP4 file, which contains video that's been encoded with the H.264 codec, and audio that's been encoded with the AAC codec. Este archivo MP4 se escribe en un recurso de la cuenta de almacenamiento.This MP4 file is written to an Asset in your storage account. Puede usar los SDK o las API de Azure Storage (por ejemplo, API REST de almacenamiento o SDK de .NET) para descargar el archivo directamente.You can use the Azure Storage APIs or SDKs (for example, Storage REST API or .NET SDK) to download the file directly. Si creó el recurso de salida con un nombre de contenedor específico en el almacenamiento, use esa ubicación.If you created the output Asset with a specific container name in storage, use that location. De lo contrario, puede usar Media Services para enumerar las direcciones URL del contenedor de recursos.Otherwise, you can use Media Services to list the asset container URLs.
  • Para preparar el contenido para la entrega a través del streaming con velocidad de bits adaptable, el archivo intermedio se debe codificar en varias velocidades de bits (de alta a baja).To prepare content for delivery by adaptive bitrate streaming, the mezzanine file needs to be encoded at multiple bitrates (high to low). Para garantizar una transición correcta de la calidad, se reduce la resolución del vídeo a medida que disminuye la velocidad de bits.To ensure graceful transition of quality, the resolution of the video is lowered as the bitrate is lowered. Esto resulta en lo que se conoce como una escala de codificación: una tabla de resoluciones y velocidades de bits (consulte Escala de velocidad de bits generada automáticamente).This results in a so-called encoding ladder–a table of resolutions and bitrates (see auto-generated adaptive bitrate ladder). Puede usar Media Services para codificar los archivos intermedios con varias velocidades de bits.You can use Media Services to encode your mezzanine files at multiple bitrates. Al hacerlo, obtendrá un conjunto de archivos MP4 y archivos de configuración de streaming asociados que se escriben en un recurso en la cuenta de almacenamiento.In doing so, you'll get a set of MP4 files and associated streaming configuration files written to an Asset in your storage account. Luego puede usar la funcionalidad de empaquetado dinámico de Media Services para entregar el vídeo a través de protocolos de streaming, como MPEG-DASH y HLS.You can then use the Dynamic Packaging capability in Media Services to deliver the video via streaming protocols like MPEG-DASH and HLS. Esto requiere crear un localizador de streaming y generar direcciones URL de streaming que correspondan a los protocolos admitidos, que luego se pueden entregar a los dispositivos o aplicaciones según sus funcionalidades.This requires you to create a Streaming Locator and build streaming URLs corresponding to the supported protocols, which can then be handed off to devices/apps based on their capabilities.

En el siguiente diagrama se muestra el flujo de trabajo para la codificación a petición con empaquetado dinámico.The following diagram shows the workflow for on-demand encoding with dynamic packaging.

Flujo de trabajo para codificación a petición con empaquetado dinámico

En este tema se proporcionan instrucciones sobre cómo codificar el contenido con Media Services v3.This topic gives you guidance on how to encode your content with Media Services v3.

Transformaciones y trabajosTransforms and jobs

Para codificar con Media Services v3, debe crear una transformación y un trabajo.To encode with Media Services v3, you need to create a Transform and a Job. La transformación define la receta para la configuración de la codificación y las salidas, y el trabajo es una instancia de la receta.The transform defines a recipe for your encoding settings and outputs; the job is an instance of the recipe. Para obtener más información, consulte Transformaciones y trabajos.For more information, see Transforms and Jobs.

Al codificar con Media Services, se usan valores preestablecidos para indicar al codificador cómo se deben procesar los archivos multimedia de entrada.When encoding with Media Services, you use presets to tell the encoder how the input media files should be processed. Por ejemplo, puede especificar la resolución de vídeo o el número de canales de audio que desea en el contenido codificado.For example, you can specify the video resolution and/or the number of audio channels you want in the encoded content.

Puede empezar a trabajar rápidamente con alguno de los valores preestablecidos integrados recomendados basados en los procedimientos recomendados del sector o puede optar por crear un valor preestablecido destinado a su escenario específico o los requisitos de dispositivos.You can get started quickly with one of the recommended built-in presets based on industry best practices or you can choose to build a custom preset to target your specific scenario or device requirements. Para más información, vea Procedimiento de codificación con una transformación personalizada.For more information, see Encode with a custom Transform.

A partir de enero de 2019, al codificar con Media Encoder Standard para generar archivos MP4, se genera un archivo .mpi nuevo y se agrega a la salida de activos.Starting with January 2019, when encoding with Media Encoder Standard to produce MP4 file(s), a new .mpi file is generated and added to the output Asset. Este archivo MPI está diseñado para mejorar el rendimiento de escenarios de streaming y empaquetado dinámico.This MPI file is intended to improve performance for dynamic packaging and streaming scenarios.

Nota

No debe modificar ni quitar el archivo MPI, así como tampoco tener ninguna dependencia en el servicio en la existencia (o no) de este tipo de archivo.You shouldn't modify or remove the MPI file, or take any dependency in your service on the existence (or not) of such a file.

Creación de una entrada de trabajo a partir de una dirección URL de HTTPSCreating job input from an HTTPS URL

Cuando se envían trabajos para procesar los vídeos, es necesario indicar a Media Services dónde encontrar el vídeo de entrada.When you submit Jobs to process your videos, you have to tell Media Services where to find the input video. Una de las opciones es especificar una dirección URL de HTTPS como una entrada de trabajo.One of the options is to specify an HTTPS URL as a job input. Actualmente, Media Services v3 no admite la codificación de transferencia fragmentada a través de direcciones URL HTTPS.Currently, Media Services v3 doesn't support chunked transfer encoding over HTTPS URLs.

EjemplosExamples

Creación de una entrada de trabajo a partir de un archivo localCreating job input from a local file

El vídeo de entrada se puede almacenar como un recurso de Media Services, en cuyo caso se crea un recurso de entrada basado en un archivo (almacenado localmente o en Azure Blob Storage).The input video can be stored as a Media Service Asset, in which case you create an input asset based on a file (stored locally or in Azure Blob storage).

EjemplosExamples

Codificación de un archivo local con valores preestablecidos integradosEncode a local file using built-in presets

Creación de la entrada del trabajo con creación de subclipsCreating job input with subclipping

Al codificar un vídeo, puede especificar que también se recorte el archivo de origen y que se genere una salida que solo tenga una parte deseada de la entrada de vídeo.When encoding a video, you can specify to also trim or clip the source file and produce an output that has only a desired portion of the input video. Esta funcionalidad se puede usar con cualquier elemento Transformación compilado mediante los valores preestablecidos BuiltInStandardEncoderPreset o StandardEncoderPreset.This functionality works with any Transform that's built using either the BuiltInStandardEncoderPreset presets, or the StandardEncoderPreset presets.

Puede especificar crear un trabajo con un solo clip de un vídeo a petición o archivo en directo (un evento grabado).You can specify to create a Job with a single clip of a video on-demand or live archive (a recorded event). La entrada del trabajo podría ser un recurso o una dirección URL HTTPS.The job input could be an Asset or an HTTPS URL.

Sugerencia

Si quiere hacer streaming de un sublip del vídeo sin volver a codificarlo, considere la posibilidad de usar manifiestos de filtrado previo con el empaquetador dinámico.If you want to stream a sublip of your video without re-encoding the video, consider using Pre-filtering manifests with Dynamic Packager.

EjemplosExamples

Ver ejemplos:See examples:

Valores preestablecidos integradosBuilt-in presets

Media Services admite los siguientes valores preestablecidos de codificación integrados:Media Services supports the following built-in encoding presets:

BuiltInStandardEncoderPresetBuiltInStandardEncoderPreset

BuiltInStandardEncoderPreset se usa para establecer un valor preestablecido integrado para codificar el vídeo de entrada con Standard Encoder.BuiltInStandardEncoderPreset is used to set a built-in preset for encoding the input video with the Standard Encoder.

Actualmente se admiten los valores preestablecidos siguientes:The following presets are currently supported:

  • EncoderNamedPreset.AACGoodQualityAudio: genera un solo archivo MP4 que contiene únicamente audio estéreo codificado a 192 kbps.EncoderNamedPreset.AACGoodQualityAudio: produces a single MP4 file containing only stereo audio encoded at 192 kbps.
  • EncoderNamedPreset.AdaptiveStreaming (recomendado): Para más información, consulte Generación automática de una escala de velocidad de bits.EncoderNamedPreset.AdaptiveStreaming (recommended): For more information, see auto-generating a bitrate ladder.
  • EncoderNamedPreset.ContentAwareEncodingExperimental: expone un valor preestablecido experimental para la codificación según el contenido.EncoderNamedPreset.ContentAwareEncodingExperimental: exposes an experimental preset for content-aware encoding. Dado cualquier contenido de entrada, el servicio intenta determinar automáticamente el número óptimo de capas, la velocidad de bits adecuada y la configuración de resolución para la entrega a través del streaming adaptable.Given any input content, the service attempts to automatically determine the optimal number of layers, and appropriate bitrate and resolution settings for delivery by adaptive streaming. Los algoritmos subyacentes seguirán evolucionando con el tiempo.The underlying algorithms will continue to evolve over time. La salida contendrá archivos MP4 con el vídeo y audio intercalados.The output will contain MP4 files with video and audio interleaved. Para más información, consulte Valor preestablecido experimental para la codificación según el contenido.For more information, see Experimental preset for content-aware encoding.
  • EncoderNamedPreset.H264MultipleBitrate1080p: genera un conjunto de ocho archivos MP4 alineados con GOP, que abarcan desde 6000 kbps hasta 400 kbps y audio AAC estéreo.EncoderNamedPreset.H264MultipleBitrate1080p: produces a set of eight GOP-aligned MP4 files, ranging from 6000 kbps to 400 kbps, and stereo AAC audio. La resolución comienza en 1080p y baja hasta 360p.Resolution starts at 1080p and goes down to 360p.
  • EncoderNamedPreset.H264MultipleBitrate720p: genera un conjunto de seis archivos MP4 alineados con GOP, que abarcan desde 3400 kbps hasta 400 kbps y audio AAC estéreo.EncoderNamedPreset.H264MultipleBitrate720p: produces a set of six GOP-aligned MP4 files, ranging from 3400 kbps to 400 kbps, and stereo AAC audio. La resolución comienza en 720p y baja hasta 360p.Resolution starts at 720p and goes down to 360p.
  • EncoderNamedPreset.H264MultipleBitrateSD: genera un conjunto de cinco archivos MP4 alineados con GOP, que abarcan desde 1600 kbps hasta 400 kbps y audio AAC estéreo.EncoderNamedPreset.H264MultipleBitrateSD: produces a set of five GOP-aligned MP4 files, ranging from 1600 kbps to 400 kbps, and stereo AAC audio. La resolución comienza en 480p y baja hasta 360p.Resolution starts at 480p and goes down to 360p.
  • EncoderNamedPreset.H264SingleBitrate1080p: genera un archivo MP4 en el que el vídeo se codifica con el códec H.264 a 6750 kbps y una altura de imagen de 1080 píxeles y el audio estéreo se codifica con el códec AAC-LC a 64 kbps.EncoderNamedPreset.H264SingleBitrate1080p: produces an MP4 file where the video is encoded with H.264 codec at 6750 kbps and a picture height of 1080 pixels, and the stereo audio is encoded with AAC-LC codec at 64 kbps.
  • EncoderNamedPreset.H264SingleBitrate720p: genera un archivo MP4 en el que el vídeo se codifica con el códec H.264 a 4500 kbps y una altura de imagen de 720 píxeles y el audio estéreo se codifica con el códec AAC-LC a 64 kbps.EncoderNamedPreset.H264SingleBitrate720p: produces an MP4 file where the video is encoded with H.264 codec at 4500 kbps and a picture height of 720 pixels, and the stereo audio is encoded with AAC-LC codec at 64 kbps.
  • EncoderNamedPreset.H264SingleBitrateSD: genera un archivo MP4 en el que el vídeo se codifica con el códec H.264 a 2200 kbps y una altura de imagen de 480 píxeles y el audio estéreo se codifica con el códec AAC-LC a 64 kbps.EncoderNamedPreset.H264SingleBitrateSD: produces an MP4 file where the video is encoded with H.264 codec at 2200 kbps and a picture height of 480 pixels, and the stereo audio is encoded with AAC-LC codec at 64 kbps.

Para ver la lista más actualizada de valores preestablecidos, consulte los valores preestablecidos integrados que se usarán para codificar vídeos.To see the most up-to-date presets list, see built-in presets to be used for encoding videos.

Para ver cómo se usan los valores preestablecidos, consulte Carga, codificación y transmisión en secuencias de videos.To see how the presets are used, see Uploading, encoding, and streaming files.

StandardEncoderPresetStandardEncoderPreset

StandardEncoderPreset describe la configuración que se utilizará al codificar el vídeo de entrada con Standard Encoder.StandardEncoderPreset describes settings to be used when encoding the input video with the Standard Encoder. Utilice este valor preestablecido al personalizar los valores preestablecidos de transformación.Use this preset when customizing Transform presets.

ConsideracionesConsiderations

Al crear valores preestablecidos personalizados, se aplican las consideraciones siguientes:When creating custom presets, the following considerations apply:

  • Todos los valores de alto y ancho del contenido de AVC deben ser un múltiplo de cuatro.All values for height and width on AVC content must be a multiple of four.
  • En Azure Media Services v3, todas las velocidades de bits de codificación se expresan en bits por segundo.In Azure Media Services v3, all of the encoding bitrates are in bits per second. Esto difiere de los valores preestablecidos en las API v2, en donde se usaban kilobits por segundo como unidad.This is different from the presets with our v2 APIs, which used kilobits/second as the unit. Por ejemplo, si la velocidad de bits de v2 se especificaba como 128 (kilobits/segundo), en v3 se establecería en 128 000 (bits/segundo).For example, if the bitrate in v2 was specified as 128 (kilobits/second), in v3 it would be set to 128000 (bits/second).

Personalización de los valores preestablecidosCustomizing presets

Media Services es totalmente compatible con la personalización de todos los valores preestablecidos para que cubran sus necesidades y requisitos de codificación específicos.Media Services fully supports customizing all values in presets to meet your specific encoding needs and requirements. Para obtener ejemplos en los que se muestra cómo personalizar los valores preestablecidos del codificador, consulte la lista siguiente:For examples that show how to customize encoder presets, see the list below:

EjemplosExamples

Esquema de valores preestablecidosPreset schema

En Media Services v3, los valores preestablecidos son entidades fuertemente tipadas en la propia API.In Media Services v3, presets are strongly typed entities in the API itself. Encontrará la definición de "esquema" de estos objetos en la especificación de Open API (o Swagger).You can find the "schema" definition for these objects in Open API Specification (or Swagger). También puede ver las definiciones preestablecidas (como StandardEncoderPreset) en la API de REST y el SDK de .NET (o en otra documentación de referencia del SDK de Media Services v3).You can also view the preset definitions (like StandardEncoderPreset) in the REST API, .NET SDK (or other Media Services v3 SDK reference documentation).

Escalado de la codificación en v3Scaling encoding in v3

Para escalar el procesamiento multimedia, consulte Escalado con CLI.To scale media processing, see Scale with CLI.

Formule preguntas, realice comentarios y obtenga actualizacionesAsk questions, give feedback, get updates

Consulte el artículo Comunidad de Azure Media Services para ver diferentes formas de formular preguntas, enviar comentarios y obtener actualizaciones de Media Services.Check out the Azure Media Services community article to see different ways you can ask questions, give feedback, and get updates about Media Services.

Pasos siguientesNext steps