Share via


Usar objetos de activación de un codificador

Para convertir archivos multimedia en formato ASF, puede usar codificadores de Windows Media. Para usar estos codificadores, deben estar registrados en el sistema.

Para obtener información sobre el registro del codificador, consulte Creación de instancias de un codificador MFT.

Usar objetos de activación de un codificador

Como alternativa al uso de la interfaz IMFTransform de un codificador (descrito en Creación de un codificador mediante CoCreateInstance), puede crear una instancia del objeto de activación para el codificador. Los objetos de activación facilitan la creación del codificador y Media Foundation proporciona las dos funciones siguientes para este enfoque:

Ambas funciones requieren que cree el tipo de medio de destino y establezca las propiedades de codificación antes de llamar a estas funciones. Si la aplicación usa componentes asf de capa de canalización para codificar un archivo en formato ASF y ya ha creado y configurado los receptores multimedia de ASF, puede obtener este conjunto de información del receptor de medios de ASF.

MFCreateWMAEncoderActivate y MFCreateWMVEncoderActivate establecen el tipo de salida del codificador en el tipo de medio especificado por la aplicación.

Nota Si usa MFCreateWMAEncoderActivate y MFCreateWMVEncoderActivate , puede activar el codificador llamando a IMFActivate::ActivateObject , pero no puede cambiar los tipos de medios de entrada y salida del codificador ni puede cambiar ninguna de las propiedades de codificación.

Para obtener más información sobre cómo crear objetos de Media Foundation mediante objetos de activación, vea Objetos de activación.

Para obtener el tipo de medio de destino del receptor de medios ASF

  1. Obtenga un puntero al puntero IMFASFContentInfo del receptor de medios ASF llamando a IMFMediaSink::QueryInterface en el receptor de medios ASF y pasando IID_IMFASFContentInfo como identificador de interfaz.
  2. Obtenga el objeto de perfil de ASF asociado al objeto ContentInfo.
  3. Enumere las secuencias del perfil para obtener el tipo de medio de la secuencia.

Para obtener las propiedades de codificación del receptor de medios asf

  1. Si ha configurado las propiedades de codificación en el receptor de medios (descrito en Establecer propiedades en el receptor de archivos), puede hacer referencia al almacén de propiedades del receptor llamando a IMFMediaSink::QueryInterface en el receptor de medios asf y pasando IID_IPropertyStore como identificador de interfaz.

  2. Si tiene un puntero al objeto ContentInfo del receptor, puede llamar a IMFASFContentInfo::GetEncodingConfigurationPropertyStore para obtener una referencia al almacén de propiedades del receptor multimedia.

    Asegúrese de que todas las propiedades de codificación establecidas en el receptor de medios ASF se reflejan en el almacén de propiedades pasado a MFCreateWMAEncoderActivate y MFCreateWMVEncoderActivate. El codificador se configura automáticamente en función de la configuración especificada por la aplicación.

Al crear el nodo de transformación en la topología de codificación, puede establecer el tipo de objeto como puntero IMFActivate recibido en estas dos llamadas. Cuando se resuelve la topología, la sesión multimedia usa el objeto de activación para crear una instancia del codificador MFT.

Enumeración del codificador en Windows 7 y versiones posteriores

En el caso de las aplicaciones que se ejecutan en Windows 7, además de MFTEnum , puedes enumerar las MFT del codificador llamando a MFTEnumEx. Esta función devuelve un puntero al objeto de activación del codificador MFT. La estructura de la función es muy similar a MFTEnum descrita anteriormente, excepto MFTEnumEx, devuelve una matriz de punteros IMFActivate para los MFT del codificador que coinciden con los criterios de búsqueda.

Creación de instancias de un codificador MFT

Codificadores de Windows Media

Objetos de activación