Compartir a través de


Configuración de secuencias de audio

Por lo general, las secuencias de audio son las más sencillas de configurar. Obtenga una configuración de secuencia del códec mediante los métodos de IWMCodecInfo , tal y como se describe en Obtención de información de configuración de flujo de códecs. En la mayoría de las circunstancias, no debe modificar la configuración de las recuperadas.

El formato de códec que seleccione de los enumerados depende del uso previsto de los archivos ASF realizados con el perfil. La descripción del formato de códec recuperada por IWMCodecInfo2::GetCodecFormatDesc resume las características del formato. Si la aplicación no muestra las descripciones para elegir entre ellas, puede llamar a QueryInterface en la interfaz IWMStreamConfig del formato de códec para obtener la interfaz IWMMediaProps . A continuación, puede recuperar la estructura de WM_MEDIA_TYPE llamando a IWMMediaProps::GetMediaType. Al examinar la estructura WM_MEDIA_TYPE y la estructura WAVEFORMATEX a la que apunta, puede determinar la configuración del formato de códec y compararlos con sus requisitos.

Obtención de formatos de audio para la sincronización de A/V

El códec Audio de Windows Media y el códec Windows Media Audio Professional admiten formatos para archivos de solo audio y para archivos de audio/vídeo. Los formatos de solo audio están optimizados para archivos que solo contienen datos de audio, mientras que los formatos de audio/vídeo están optimizados para el audio que se encuentra en un archivo con una secuencia de vídeo. Al enumerar formatos de códec para estos códecs, los formatos de audio y vídeo vienen después de los formatos de solo audio. Todas las descripciones de formato de audio/vídeo contienen la cadena "(A/V)". Puede identificar los formatos diseñados para la sincronización de audio y vídeo mediante programación comprobando el número de paquetes por segundo. Los formatos de sincronización tienen 5 o más paquetes por segundo si la velocidad de bits es mayor o igual que 32 000 bits por segundo. Los formatos con velocidades de bits inferiores a 32 000 bits por segundo se pueden usar con vídeo sincronizado si usan 3 o más paquetes por segundo. El ejemplo de código del tema To Find Audio Formats contiene el código necesario para realizar esta comprobación:

if((pWave->nAvgBytesPerSec / pWave->nBlockAlign) >= 
       ((pWave->nAvgBytesPerSec >= 4000) ? 5.0 : 3.0))
{
    // Set this stream configuration as the new best match.
}

Obtención de formatos de audio de Low-Delay

El códec Windows Media 9.1 y el códec Windows Media Audio 9.1 Professional admiten formatos de retraso bajo. Estos formatos tienen una ventana de búfer más pequeña que otros formatos de audio. El audio con retraso bajo está pensado para mejorar el rendimiento en escenarios en los que los archivos o secuencias se cambiarán con frecuencia; por ejemplo, una aplicación que muestra una serie de canciones para el streaming en la interfaz de usuario y permite a los usuarios cambiar arbitrariamente entre ellas.

Los formatos de retraso bajo solo están disponibles en modo CBR (un paso o dos pasos). Las descripciones de formato de retraso bajo contienen la cadena "Low Delay". Puede identificar los formatos mediante programación comprobando el valor de velocidad de bits del formato. A los formatos de retraso bajo se les asignan velocidades de bits de 1 kilobit menores que las velocidades de bits del formato normal equivalente. Por ejemplo, el códec Windows Media Audio 9.1 admite un formato CBR de un solo paso con una velocidad de bits de 192 kbps. El formato equivalente de retraso bajo tiene una velocidad de bits de 191 kbps. Además, con la excepción del formato mono de 5 kbps compatible con el códec Windows Media Audio 9.1, los formatos de retraso bajo son los únicos formatos que tienen un valor de velocidad de bits impar.

Configuración de audio de velocidad de bits variable

Cuando necesites un formato de velocidad de bits variable (VBR) para uno de los códecs de audio de Windows Media, puedes obtenerlo estableciendo la configuración de enumeración en el método IWMCodecInfo3::SetCodecEnumerationSetting . Establezca g_wszVBREnabled en True y establezca g_wszNumPasses en 1 para VBR basado en calidad o 2 para VBR de dos pasos (restringido o sin restricciones). Si usa VBR de dos pasos restringidos, debe establecer manualmente la velocidad de bits máxima y la ventana de búfer para la secuencia mediante los métodos de IWMPropertyVault , tal y como se describe en Configuración de secuencias de VBR.

En los perfiles vbR basados en calidad, el miembro nAvgBytesPerSec de la estructura WAVEFORMATEX contiene el nivel de calidad (de 1 a 100) en el byte de orden bajo y los tres bytes de orden superior se establecen en 0x7fffff. No intente modificar la configuración de calidad modificando este valor manualmente; Debe usar el formato tal y como se recupera del códec. Para usar un valor de calidad diferente, debe enumerar los formatos hasta que encuentre uno que satisfaga sus necesidades. Además, nAvgBytesPerSec no se conservará en el archivo ASF; cuando se obtiene la estructura WAVEFORMATEX de un archivo que se ha abierto con el objeto reader, nAvgBytesPerSec contiene un valor aproximado que representa el número medio de bytes por segundo.

Nota

Al configurar secuencias de audio, nunca debe tener un valor de ventana de búfer de audio mayor que el valor de las secuencias de vídeo del archivo. Normalmente, esto no es un problema, ya que los valores de la ventana del búfer de audio deben oscilar entre 1,5 y 3 segundos y los valores de vídeo deben oscilar entre 3 y 5 segundos. Si una ventana de búfer de audio es mayor que una ventana de búfer de vídeo, el archivo se reproducirá con las secuencias ligeramente fuera de sincronización.

 

Configuración común a todos los flujos

Configuración de secuencias

Para buscar formatos de audio