Codificación de vídeo y audio con Media Services

logotipo de media services v3


¿Busca la documentación de Media Services, versión 2?

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. Este proceso también se conoce como compresión de vídeo o transcodificación. 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.

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.

Importante

Media Services no factura los trabajos cancelados o con errores. Por ejemplo, un trabajo que se ha completado al 50 % y se ha cancelado, no se factura al 50 % de los minutos del trabajo. Solo se cobran los trabajos finalizados.

  • 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. Este archivo MP4 se escribe en un recurso de la cuenta de almacenamiento. Puede usar los SDK o las API de Azure Storage (por ejemplo, API de REST de almacenamiento o SDK de .NET) para descargar el archivo directamente. Si creó el recurso de salida con un nombre de contenedor específico en el almacenamiento, use esa ubicación. De lo contrario, puede usar Media Services para enumerar las direcciones URL del contenedor de recursos.
  • 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). 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. 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) o use el valor predeterminado recomendado de codificación en función del contenido. Puede usar Media Services para codificar los archivos intermedios con varias velocidades de bits. 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. 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. 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.

En el siguiente diagrama se muestra el flujo de trabajo para la codificación a petición con empaquetado dinámico.

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.

Transformaciones y trabajos

Para codificar con Media Services v3, debe crear una transformación y un trabajo. 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. Para obtener más información, consulte Transformaciones y trabajos.

Al codificar con Media Services, se usan valores preestablecidos para indicar al codificador cómo se deben procesar los archivos multimedia de entrada. En Media Services v3, se usa Standard Encoder para codificar los archivos. Por ejemplo, puede especificar la resolución de vídeo o el número de canales de audio que desea en el contenido codificado.

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. Para más información, vea Procedimiento de codificación con una transformación personalizada.

A partir de enero de 2019, al codificar con Standard Encoder para generar archivos MP4, se genera un archivo .mpi nuevo y se agrega a la salida de activos. Este archivo MPI está diseñado para mejorar el rendimiento de escenarios de streaming y empaquetado dinámico.

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.

Creación de una entrada de trabajo a partir de una dirección URL de HTTPS

Cuando se envían trabajos para procesar los vídeos, es necesario indicar a Media Services dónde encontrar el vídeo de entrada. Una de las opciones es especificar una dirección URL de HTTPS como una entrada de trabajo. Actualmente, Media Services v3 no admite la codificación de transferencia fragmentada a través de direcciones URL HTTPS.

Ejemplos

Creación de una entrada de trabajo a partir de un archivo local

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).

Ejemplos

Codificación de un archivo local con valores preestablecidos integrados

Creación de la entrada del trabajo con creación de subclips

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. Esta funcionalidad se puede usar con cualquier elemento Transformación compilado mediante los valores preestablecidos BuiltInStandardEncoderPreset o StandardEncoderPreset.

Puede especificar crear un trabajo con un solo clip de un vídeo a petición o archivo en directo (un evento grabado). La entrada del trabajo podría ser un recurso o una dirección URL HTTPS.

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.

Ejemplos

Ver ejemplos:

Valores preestablecidos integrados

Media Services admite los siguientes valores preestablecidos de codificación integrados:

BuiltInStandardEncoderPreset

BuiltInStandardEncoderPreset se usa para establecer un valor preestablecido integrado para codificar el vídeo de entrada con Standard Encoder.

Actualmente se admiten los valores preestablecidos integrados siguientes:

  • EncoderNamedPreset.AACGoodQualityAudio: genera un solo archivo MP4 que contiene únicamente audio estéreo codificado a 192 kbps.

  • EncoderNamedPreset.AdaptiveStreaming (recomendado): admite la codificación de velocidad de bits adaptable H.264. Para más información, consulte Generación automática de una escala de velocidad de bits.

  • EncoderNamerPreset.H265AdaptiveStreaming: similar al valor preestablecido AdaptiveStreaming, pero usa el códec HEVC (H.265). Genera un conjunto de archivos MP4 alineados con GOP con vídeo H.265 y audio AAC estéreo. Genera automáticamente una escala de velocidad de bits basada en la resolución de entrada, la tasa de bits y la velocidad de fotogramas. El valor preestablecido que se generó automáticamente nunca superará la resolución de entrada. Por ejemplo, si la entrada es 720p, la salida permanecerá en 720p en el mejor de los casos.

  • EncoderNamedPreset.ContentAwareEncoding: expone un valor preestablecido para la codificación compatible con el contenido H.264. Genera un conjunto de archivos MP4 con alineación GOP mediante la codificación compatible con el contenido. Dado cualquier contenido de entrada, el servicio realiza un análisis ligero inicial del mismo y usa los resultados para 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. Este valor predefinido resulta particularmente eficaz en los vídeos de complejidad baja y media, donde los archivos de salida tendrán velocidades de bits más lentas, pero una calidad que seguirá ofreciendo una buena experiencia a los espectadores. La salida contendrá archivos MP4 con el vídeo y audio intercalados. Este valor preestablecido solo genera salidas de hasta 1080P HD. Si se requiere una salida de 4K, puede configurar el valor preestablecido con PresetConfigurations mediante la propiedad "maxBitrateBps". Para más información, vea Codificación que tiene en cuenta el contenido.

  • EncoderNamedPreset.H265ContentAwareEncoding: expone un valor preestablecido para la codificación en función del contenido HEVC (H.265). Genera un conjunto de archivos MP4 con alineación GOP mediante la codificación compatible con el contenido. Dado cualquier contenido de entrada, el servicio realiza un análisis ligero inicial del mismo y usa los resultados para 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. Este valor predefinido resulta particularmente eficaz en los vídeos de complejidad baja y media, donde los archivos de salida tendrán velocidades de bits más lentas, pero una calidad que seguirá ofreciendo una buena experiencia a los espectadores. La salida contendrá archivos MP4 con el vídeo y audio intercalados. Este valor preestablecido genera una salida de hasta 4K HD. Si se requiere una salida de 8K, puede configurar el valor preestablecido con PresetConfigurations mediante la propiedad "maxBitrateBps".

    Nota

    Asegúrese de usar ContentAwareEncoding en lugar de ContentAwareEncodingExperimental, que está en desuso

  • 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. La resolución comienza en 1080p y baja hasta 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. La resolución comienza en 720p y baja hasta 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. La resolución comienza en 480p y baja hasta 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.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.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.H265SingleBitrate720P: genera un archivo MP4 en el que el vídeo se codifica con el códec HEVC (H.265) a 1800 kbps y una altura de imagen de 720 píxeles, y el audio estéreo se codifica con el códec AAC-LC a 128 kbps.

  • EncoderNamedPreset.H265SingleBitrate1080p: genera un archivo MP4 en el que el vídeo se codifica con el códec HEVC (H.265) a 3500 kbps y una altura de imagen de 1080 píxeles, y el audio estéreo se codifica con el códec AAC-LC a 128 kbps.

  • EncoderNamedPreset.H265SingleBitrate4K: genera un archivo MP4 en el que el vídeo se codifica con el códec HEVC (H.265) a 9500 kbps y una altura de imagen de 2160 píxeles, y el audio estéreo se codifica con el códec AAC-LC a 128 kbps.

Para ver la lista más actualizada de valores preestablecidos, consulte los valores preestablecidos integrados que se usarán para codificar vídeos.

Para ver cómo se usan los valores preestablecidos, consulte Carga, codificación y transmisión en secuencias de videos.

StandardEncoderPreset

StandardEncoderPreset describe la configuración que se utilizará al codificar el vídeo de entrada con Standard Encoder. Utilice este valor preestablecido al personalizar los valores preestablecidos de transformación.

Consideraciones

Al crear valores preestablecidos personalizados, se aplican las consideraciones siguientes:

  • Todos los valores de alto y ancho del contenido de AVC deben ser un múltiplo de cuatro.
  • En Azure Media Services v3, todas las velocidades de bits de codificación se expresan en bits por segundo. Esto difiere de los valores preestablecidos en las API v2, en donde se usaban kilobits por segundo como unidad. 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).

Personalización de los valores preestablecidos

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. Para obtener ejemplos en los que se muestra cómo personalizar los valores preestablecidos del codificador, consulte la lista siguiente:

Ejemplos

Esquema de valores preestablecidos

En Media Services v3, los valores preestablecidos son entidades fuertemente tipadas en la propia API. Encontrará la definición de "esquema" de estos objetos en la especificación de Open API (o 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).

Escalado de la codificación en v3

Para escalar el procesamiento multimedia, consulte Escalado con CLI. En el caso de las cuentas que se crearon con la versión 2020-05-01 o posterior de la API o a través de Azure Portal, ya no se requieren unidades reservadas de multimedia ni el escalado. El escalado será automático y lo controlará internamente el servicio.

Facturación

Media Services no factura los trabajos cancelados o con errores. Por ejemplo, un trabajo que se ha completado al 50 % y se ha cancelado, no se factura al 50 % de los minutos del trabajo. Solo se cobran los trabajos finalizados.

Para más información, consulte los precios.

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