Codificación de vídeo y audio con Media Services
Advertencia
Azure Media Services se retirará el 30 de junio de 2024. Para obtener más información, consulte la Guía de retirada de AMS.
Sugerencia
¿Quieres generar miniaturas, unir dos vídeos, crear un subclip de vídeo o girarlo (entre otras cosas)? Puede encontrar códigos de ejemplo de Media Services en la página Ejemplos.
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 que devuelven 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 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.
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.
Puedes empezar a trabajar rápidamente con alguno de los valores preestablecidos integrados recomendados basados en los procedimientos recomendados del sector o puedes optar por crear un valor preestablecido destinado a su escenario específico o los requisitos de dispositivos.
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.
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: 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, puedes 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, puedes configurar el valor preestablecido con PresetConfigurations mediante la propiedad «maxBitrateBps».
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 128 kbps. Si desea reducir las velocidades de bits para el audio, puede crear un valor preestablecido de codificación personalizado en la transformación y ajustar la velocidad de muestreo o el recuento de canales para bajar a valores inferiores para AAC-LC.
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 128 kbps. Si desea reducir las velocidades de bits para el audio, puede crear un valor preestablecido de codificación personalizado en la transformación y ajustar la velocidad de muestreo o el recuento de canales para bajar a valores inferiores para AAC-LC.
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 128 kbps. Si desea reducir las velocidades de bits para el audio, puede crear un valor preestablecido de codificación personalizado en la transformación y ajustar la velocidad de muestreo o el recuento de canales para bajar a valores inferiores para AAC-LC.
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.
Valores preestablecidos personalizados
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.
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).
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
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.
Ejemplos de codificación
Consulte la amplia lista de ejemplos de codificación.
Obtener ayuda y soporte técnico
Puede ponerse en contacto con Media Services con preguntas o seguir nuestras actualizaciones mediante uno de los métodos siguientes:
- PREGUNTAS Y RESPUESTAS
-
Stack Overflow. Etiquete preguntas con
azure-media-services
. - @MSFTAzureMedia o use @AzureSupport para solicitar soporte técnico.
- Abra una incidencia de soporte técnico a través del Azure Portal.