Compartilhar via


Usando o gravador do coletor

Visão geral

Tipos de contêiner de arquivo

O gravador de coletor tem suporte interno para vários tipos de contêiner de arquivo. Para obter uma lista completa, consulte MF_TRANSCODE_CONTAINERTYPE. Você pode dar suporte a tipos de contêiner adicionais escrevendo um coletor de mídia personalizado. O contêiner de arquivos é especificado quando você cria uma nova instância do gravador do coletor.

Formatos de fluxo

Para cada fluxo, o aplicativo deve especificar o seguinte.

  • O formato de entrada é o formato que o aplicativo envia para o gravador do coletor.
  • O formato de saída é o formato que será gravado no arquivo.

Os formatos de entrada e saída podem ser compactados ou descompactados. O gravador de coletor dá suporte às seguintes combinações:

  • Entrada descompactada com saída compactada. Esse é o caso típico e é usado para cenários de codificação ou transcodificação. Um codificador do Microsoft Media Foundation deve estar disponível que aceite o tipo de entrada e codifica para o tipo de saída.
  • Entrada compactada com saída idêntica. Use essa combinação para remuxar um arquivo sem transcodificação.
  • Entrada descompactada com saída idêntica. Use essa combinação para gravar áudio ou vídeo descompactado em um contêiner de arquivos.

O gravador do coletor não dá suporte ao redimensionamento de vídeo, à conversão de taxa de quadros ou à resampling de áudio, a menos que essas funções sejam fornecidas pelo codificador. Caso contrário, o aplicativo pode usar processadores de sinal digital para converter os dados de entrada, antes de enviar os dados para o

Criando o gravador do coletor

Há duas funções que criam o gravador do coletor:

Se você estiver usando um dos coletores de mídia internos, a função MFCreateSinkWriterFromURL é preferível, pois o chamador não precisa configurar o coletor de mídia.

O método MFCreateSinkWriterFromURL fornece várias opções para especificar o tipo de contêiner de arquivo. No caso mais simples, a função usa a extensão de nome de arquivo na URL para selecionar o contêiner de arquivos. Para obter detalhes, consulte a página de referência da função.

Por exemplo, o código a seguir especifica o nome do arquivo "output.wmv" para a URL. Com base na extensão de nome de arquivo, o gravador do coletor carregará o Coletor de Mídia ASF para criar um arquivo ASF (Advanced Systems Format).

    HRESULT hr = MFCreateSinkWriterFromURL(L"output.wmv", NULL, NULL, &pSinkWriter);

No caso de MFCreateSinkWriterFromMediaSink, o tipo de arquivo é determinado pelo coletor de mídia.

Gravador de Coletor