Criar uma instância de MFT de codificador
No Microsoft Media Foundation, os codificadores são implementados como MFTs (Media Foundation Transforms). Para criar um codificador, primeiro encontre o codificador mais adequado às suas necessidades.
Codecs de áudio do Windows Media
Categoria: MFT_CATEGORY_AUDIO_ENCODER
Tipo principal: MFMediaType_Audio
Subtipo: MFAudioFormat_WMAudioV9, MFAudioFormat_WMAudioV8, MFAudioFormat_WMAudio_Lossless, MFAudioFormat_WMASPDIF
Codecs de vídeo do Windows Media
Categoria: MFT_CATEGORY_VIDEO_ENCODER
Tipo principal: MFMediaType_Video
SubType: MFVideoFormat_WVC1, MFVideoFormat_WMV3, MFVideoFormat_WMV2, MFVideoFormat_WMV1
O Media Foundation fornece várias funções que seu aplicativo pode chamar para enumerar os diversos codificadores disponíveis no sistema. Os codificadores são registrados como objetos COM, e a entrada do Registro segue o formato padrão para fábricas de classe COM. O Registro mantém os CLSIDs para os codificadores, que são categorizados pelo formato de mídia (áudio ou vídeo). Os identificadores de classe dos codificadores do Windows Media são definidos como constantes no arquivo de cabeçalho wmcodecdsp.h. No Media Foundation, os codificadores podem ser registrados por meio de chamadas para MFTRegisterLocal ou MFTRegisterLocalByCLSID, especificando a categoria e os tipos compatíveis de entrada e de saída. Após o registro bem-sucedido por meio dessas funções, as MFTs são consideradas pelas funções de enumeração do Media Foundation.
Para criar uma instância de uma MFT de codificador, um aplicativo tem as opções a seguir.
- Crie a MFT de codificador diretamente e receba um ponteiro para a interface IMFTransform. Para obter mais informações, consulte Criar um codificador usando CoCreateInstance.
- Crie uma instância do objeto de ativação para a MFT de codificador e receba um ponteiro para a interface IMFActivate. Para obter mais informações, consulte Usar objetos de ativação de um codificador.
Se o seu aplicativo estiver usando Componentes ASF da camada de pipeline para codificar um arquivo no formato ASF, insira a MFT de codificador no pipeline como um nó de transformação. Ao criar o nó de transformação na topologia de codificação, você pode definir o tipo de objeto como um ponteiro para a interface IMFTransform ou o objeto IMFActivate. O Media Foundation fornece objetos de ativação para codificadores do Windows Media para que eles possam ser convenientemente definidos como o nó de transformação na topologia de codificação. Quando a topologia é resolvida, a sessão de mídia usa o objeto de ativação para criar uma instância da MFT de codificador.
Tópicos relacionados