Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El codificador de audio MPEG-2 de Microsoft Media Foundation es una transformación de Media Foundation que codifica audio mono o estéreo a audio MPEG-1 (ISO/IEC 11172-3) o audio MPEG-2 (ISO/IEC 13818-3).
El codificador admite audio de capa 1 y capa 2. No admite audio MPEG-Layer 3 (MP3). Para MPEG-2, el codificador admite la parte frecuencias de muestreo baja (LSF) del audio MPEG-2. No admite las extensiones multicanal. El MFT genera una secuencia elemental MPEG. No puede generar secuencias elementales en paquetes, secuencias de programa ni flujos de transporte.
Identificador de clase
El identificador de clase (CLSID) del codificador de audio MEPG-2 se CLSID_CMPEG2AudioEncoderMFT, definido en el archivo de encabezado wmcodecdsp.h.
Tipos de salida
El tipo de salida debe establecerse primero, antes del tipo de entrada. En la tabla siguiente se enumeran los atributos obligatorios y opcionales para el tipo de medio de salida.
Atributo | Descripción | Observaciones |
---|---|---|
MF_MT_MAJOR_TYPE | Tipo principal. | Necesario. Debe ser MFMediaType_Audio. |
MF_MT_SUBTYPE | Subtipo de audio. | Necesario. Debe ser MFAudioFormat_MPEG. Este subtipo se usa para audio MPEG-1 y MPEG-2. |
MF_MT_AUDIO_SAMPLES_PER_SECOND | Muestras por segundo. | Necesario. Se admiten los siguientes valores para MPEG-1 y MPEG-2:
|
MF_MT_AUDIO_NUM_CHANNELS | Número de canales. | Necesario. Debe ser 1 (mono) o 2 (estéreo). |
MF_MT_AUDIO_CHANNEL_MASK | Especifica la asignación de canales de audio a las posiciones del hablante. | Opcional. Si se establece, el valor debe ser 0x3 para estéreo (canales frontales izquierdo y derecho) o 0x4 para mono (canal de centro frontal). |
MF_MT_AUDIO_AVG_BYTES_PER_SECOND | Velocidad de bits de la secuencia MPEG codificada, en bytes por segundo. | Opcional. Las especificaciones ISO/IEC 11172-3 e ISO/IEC 13818-3 (LSF) definen varias velocidades de bits, según la frecuencia de muestreo, el número de canales y la capa de audio (1 o 2). El codificador tiene como valor predeterminado audio de nivel 2. Si no se establece el atributo MF_MT_AUDIO_AVG_BYTES_PER_SECOND , el codificador usa las siguientes velocidades de bits predeterminadas:
También puede establecer la velocidad de bits mediante la interfaz ICodecAPI . Vea Comentarios para obtener más información. |
Si no se establecen los atributos opcionales, el codificador los agrega al tipo de medio después de establecer el tipo.
Tipos de entrada
En la tabla siguiente se enumeran los atributos obligatorios y opcionales para el tipo de medio de entrada.
Atributo | Descripción | Observaciones |
---|---|---|
MF_MT_MAJOR_TYPE | Tipo principal. | Necesario. Debe ser MFMediaType_Audio. |
MF_MT_SUBTYPE | Subtipo de audio. | Necesario. Debe ser MFAudioFormat_PCM o MFAudioFormat_Float. |
MF_MT_AUDIO_BITS_PER_SAMPLE | Número de bits por muestra de audio. | Necesario. El valor debe ser 16 si el subtipo es MFAudioFormat_PCM o 32 si el subtipo es MFAudioFormat_Float. |
MF_MT_AUDIO_SAMPLES_PER_SECOND | Muestras por segundo. | Necesario. Debe coincidir con el tipo de salida. |
MF_MT_AUDIO_NUM_CHANNELS | Número de canales. | Necesario. Debe coincidir con el tipo de salida. |
MF_MT_AUDIO_BLOCK_ALIGNMENT | Alineación de bloques, en bytes. | Necesario. Calcule el valor de la siguiente manera:
|
MF_MT_AUDIO_AVG_BYTES_PER_SECOND | Velocidad de bits de la secuencia AC3 codificada, en bytes por segundo. | Necesario. Debe ser igual a la alineación de bloques × muestras por segundo. |
MF_MT_AUDIO_CHANNEL_MASK | Especifica la asignación de canales de audio a las posiciones del hablante. | Opcional. Si se establece, el valor debe coincidir con el tipo de salida. |
MF_MT_AUDIO_VALID_BITS_PER_SAMPLE | Número de bits válidos de datos de audio en cada muestra de audio. | Opcional. Si se establece, el valor debe ser idéntico a MF_MT_AUDIO_BITS_PER_SAMPLE. |
El codificador no admite la conversión de frecuencia de muestreo ni la conversión estéreo/mono. Si no se establecen los atributos opcionales, el codificador los agrega al tipo de medio después de establecer el tipo.
Propiedades de códec
El codificador admite las siguientes propiedades a través de la interfaz ICodecAPI .
Propiedad | Descripción | Valor predeterminado |
---|---|---|
CODECAPI_AVEncCommonMeanBitRate | Especifica la velocidad media de bits codificada, en bits por segundo. | Tal como se describe para el atributo MF_MT_AUDIO_AVG_BYTES_PER_SECOND en el tipo de medio de salida. |
CODECAPI_AVEncMPACodingMode | Especifica el modo de codificación de audio MPEG. | Estéreo para audio de 2 canales o canal único para audio de 1 canal. Para audio de 2 canales, el codificador también admite doble canal y estéreo conjunto. |
CODECAPI_AVEncMPACopyright | Especifica si se establece el bit de copyright en la secuencia de audio MPEG. | Sin derechos de autor. |
CODECAPI_AVEncMPAEmphasisType | Especifica el tipo de filtro de énfasis que se debe usar cuando se descodifica la secuencia codificada. | No se ha especificado ningún énfasis. |
AVEncMPAEnableRedundancyProtection | Especifica si se va a agregar una comprobación de redundancia cíclica (CRC) al encabezado de marco. | Se escribe una suma de comprobación CRC en la secuencia de bits. |
CODECAPI_AVEncMPALayer | Especifica la capa de audio MPEG. | Audio de capa 2. |
CODECAPI_AVEncMPAOriginalBitstream | Especifica si se va a establecer para el bit original en la secuencia de audio MPEG. | El bit "Original" está desactivado. |
CODECAPI_AVEncMPAPrivateUserBit | Especifica si se va a establecer para el bit de usuario privado en la secuencia de audio MPEG. | El bit de usuario privado está desactivado. |
Para obtener un puntero a la interfaz ICodecAPI , llame a QueryInterface en el MFT.
MFT implementa los siguientes métodos de ICodecAPI :
Todos los demás métodos ICodecAPI devuelven E_NOTIMPL.
Comentarios
Cada fotograma de audio MPEG contiene muestras de audio de 384 (capa 1) o 1152 (capa 2) por canal. Sin embargo, cada búfer de entrada para el codificador puede contener cualquier número de muestras de PCM. El tamaño de cada búfer de entrada debe ser un múltiplo de la alineación del bloque. El codificador almacena en caché las muestras de entrada hasta que tiene suficiente para un marco de audio MPEG.
Cada búfer de salida contiene un marco MPEG sin formato. El tamaño de cada búfer de salida depende de la velocidad de bits y de la frecuencia de muestreo.
Configuración del codificador
Para cambiar cualquiera de los valores predeterminados en el codificador, realice los pasos siguientes:
Cree una instancia del codificador MFT.
Llame a IMFTransform::GetOutputAvailableType para obtener la lista de los tipos de salida preferidos. El codificador enumera todas las velocidades de muestra para mono y estéreo. Seleccione uno de estos tipos de medios, en función de la frecuencia de muestreo y el número de canales. El atributo MF_MT_AUDIO_AVG_BYTES_PER_SECOND indica la velocidad de bits predeterminada, en bytes por segundo.
Opcional: puede invalidar la velocidad de bits predeterminada estableciendo un nuevo valor para MF_MT_AUDIO_AVG_BYTES_PER_SECOND en el tipo de medio de salida. Las velocidades de bits válidas dependen de la frecuencia de muestreo, el número de canales y la capa de audio.
Nota
En este punto del proceso de configuración, el codificador tiene como valor predeterminado audio de capa 2 y solo aceptará velocidades de capa 2 bits. Podrá cambiar el codificador a la capa 1 en un paso posterior (consulte el paso 7). En ese caso, deje la velocidad de bits predeterminada por ahora; puede volver a cambiarlo en el paso 8.
Llame a IMFTransform::SetOutputType para establecer el tipo de medio de salida. Si establece su propio valor para MF_MT_AUDIO_AVG_BYTES_PER_SECOND y MFT rechaza el tipo de medio de salida, es probable que se deba a que especificó una velocidad de bits no válida.
Llame a IMFTransform::GetInputAvailableType para enumerar el tipo de medio de entrada. Dado que la frecuencia de muestreo y el número de canales deben ser idénticas al tipo de salida, solo se enumeran dos opciones: entrada PCM de punto flotante de 32 bits y entrada PCM de 16 bits. Seleccione una de estas opciones.
Llame a IMFTransform::SetInputType para establecer el tipo de medio de entrada.
Opcional: para codificar audio de nivel 1, establezca la propiedad CODECAPI_AVEncMPALayeren eAVEncMPALayer_1.
Opcional: Para cambiar la velocidad de bits, establezca la CODECAPI_ propiedad AVEncCommonMeanBitRate . La velocidad de bits debe ser una de las velocidades de bits válidas enumeradas en las especificaciones MPEG-1 o MPEG-2 LSF. Como alternativa, puede llamar a ICodecAPI::GetParameterValues para obtener una lista de velocidades de bits válidas, en función de la configuración actual.
Opcional: Con audio de dos canales, puedes establecer la propiedad AVEncMPACodingMode CODECAPI_ para cambiar el modo de codificación a doble canal o estéreo conjunto. Puede llamar a ICodecAPI::GetParameterRange para obtener las opciones válidas. (Para audio de 1 canal, la única opción es mono).
Opcional: establezca cualquiera de las demás propiedades de ICodecAPI enumeradas anteriormente.
Es importante seguir el orden de estos pasos. En concreto, establezca el tipo de medio de salida antes de cambiar las propiedades de ICodecAPI . Además, debe establecer las propiedades de ICodecAPI antes de que MFT reciba la primera muestra de entrada. Una vez que MFT recibe la entrada, las propiedades del códec son de solo lectura y ICodecAPI::SetValue devuelve el valor S_FALSE.
Velocidades de bits admitidas
El codificador admite las siguientes velocidades de bits.
MPEG-1
MPEG-2
Capa 1
Capa 2
Capa 1
Capa 2
32
32*
32
8
64
48*
38
16
96
56*
56
24
128
64
64
32
160
80*
80
40
192
96
96
48
224
112
112
56
256
128
128
64
288
160
144
80
320
192
160
96
352
224**
176
112
384
256**
192
128
416
230**
224
144
448
384**
256
160
- \* Solo Mono \*\* Estéreo
Tipos de medios de ejemplo
Este es un ejemplo de los tipos de medios necesarios para codificar PCM entero de 16 bits, audio estéreo de 48 kHz a la velocidad de bits predeterminada.
Tipo de medio de salida:
Atributo | Valor |
---|---|
MF_MT_MAJOR_TYPE | MFMediaType_Audio |
MF_MT_SUBTYPE | MFAudioFormat_MPEG |
MF_MT_AUDIO_SAMPLES_PER_SECOND | 48000 |
MF_MT_AUDIO_NUM_CHANNELS | 2 |
Tipo de medio de entrada:
Atributo | Valor |
---|---|
MF_MT_MAJOR_TYPE | MFMediaType_Audio |
MF_MT_SUBTYPE | MFAudioFormat_PCM |
MF_MT_AUDIO_BITS_PER_SAMPLE | 16 |
MF_MT_AUDIO_SAMPLES_PER_SECOND | 48000 |
MF_MT_AUDIO_NUM_CHANNELS | 2 |
MF_MT_AUDIO_BLOCK_ALIGNMENT | 4 |
MF_MT_AUDIO_AVG_BYTES_PER_SECOND | 192000 |
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible |
Windows 8 [solo aplicaciones de escritorio] |
Servidor mínimo compatible |
No se admite ninguno |
Archivo DLL |
|
Consulte también