Definindo propriedades no coletor de arquivos
O coletor de arquivos ASF é uma implementação do IMFMediaSink fornecida pelo Media Foundation que um aplicativo pode usar para arquivar dados de mídia ASF em um arquivo. Para obter informações sobre o modelo de objeto e o uso geral dos Coletores de Mídia do ASF, consulte Coletores de Mídia DO ASF.
Depois de Criar o coletor de arquivos ASF, ele deve ser configurado com informações sobre os fluxos no arquivo de saída. Este procedimento é descrito em Adicionando informações de fluxo ao coletor de arquivos ASF. Você pode definir propriedades adicionais no coletor de arquivos dependendo do tipo de codificação; buckets com vazamento; propriedades gerais do arquivo. Essas configurações não são escritas no objeto de cabeçalho asf final. Este tópico descreve o processo de adição dessas propriedades no repositório de propriedades do coletor de arquivos.
O objeto ContentInfo mantém as propriedades de arquivo global e as propriedades de fluxo individuais para o coletor de arquivos. Para obter informações sobre como obter uma referência para o objeto ContentInfo do coletor de arquivos, consulte Criando o coletor de arquivos ASF.
Para obter uma referência ao repositório de propriedades do coletor de arquivos (IPropertyStore), chame IMFASFContentInfo::GetEncodingConfigurationPropertyStore na referência do objeto ContentInfo do coletor de arquivos.
Propriedades de Codificação de Fluxo
Para codificar o conteúdo corretamente, o arquivo precisa saber determinadas informações de codificação, como o tipo de codificação e os parâmetros de codificação relacionados. Esses valores são definidos no coletor de arquivos como valores de propriedade em um repositório de propriedades mantido pelo objeto ContentInfo do ASF. Se você estiver configurando o coletor de arquivos antes de instanciar os codificadores relevantes, poderá usar o objeto ContentInfo com todas as propriedades populadas para criar os codificadores do Windows Media. Nesse caso, as propriedades são definidas automaticamente nos codificadores instanciados. Por outro lado, se você estiver criando os codificadores antes do coletor, verifique se as propriedades definidas nos codificadores serão copiadas para o repositório de propriedades do coletor de arquivos.
Para definir as propriedades de codificação, você precisa de acesso ao repositório de propriedades no nível do fluxo do coletor de arquivos. Passe o número do fluxo no parâmetro wStreamNumber do método IMFASFContentInfo::GetEncodingConfigurationPropertyStore . Os números de fluxo devem corresponder aos valores definidos ao configurar cada fluxo no perfil. Os valores de propriedade são definidos chamando IPropertyStore::SetValue. A tabela a seguir descreve as propriedades com suporte.
As propriedades dependem do tipo de codificação. Para obter informações sobre as propriedades e os respectivos valores que você deve definir, consulte Propriedades de codificação.
Propriedade Bucket leaky
Parâmetros de bucket com vazamento determinam a janela de buffer real usada pelo codificador para o fluxo. A propriedade MFPKEY_ASFSTREAMSINK_CORRECTED_LEAKYBUCKET do coletor de arquivos contém os parâmetros de bucket vazados, a taxa de bits, a janela do buffer e a integridade inicial do buffer. Essa propriedade é definida no repositório de propriedades no nível do fluxo para o coletor de arquivos e deve ser definida depois que os codificadores forem criados e configurados. Esse valor é definido no . Durante a negociação de tipo de mídia, o codificador decide a janela de buffer e a taxa de bits a ser usada. Você pode obter esses valores usando a interface IWMCodecLeakyBucket , que é definida em wmcodecifaces.h e você deve vincular ao wmcodecdspuuid.lib para chamar seus métodos.
Os valores recuperados podem ser definidos para essa propriedade para cada fluxo no coletor de arquivos ASF.
Propriedades globais do coletor de arquivos
Para obter o repositório de propriedades global do coletor de arquivos, passe 0 no parâmetro wStreamNumber do método IMFASFContentInfo::GetEncodingConfigurationPropertyStore . Os valores de propriedade são definidos chamando IPropertyStore::SetValue. A tabela a seguir descreve as propriedades com suporte.
Propriedades no nível do arquivo | Descrição |
---|---|
MFPKEY_ASFMEDIASINK_BASE_SENDTIME | O tempo de envio indica quando a carga dentro do bucket com vazamento será liberada. Esse valor de propriedade indica a primeira hora de envio. O multiplexer usa esse valor para calcular os tempos de envio subsequentes para os pacotes gerados e garante que os dados fluam constantemente por meio do bucket com vazamento. |
MFPKEY_ASFMEDIASINK_AUTOADJUST_BITRATE | Esse valor BOOL indica se o multiplexer precisa ajustar a taxa de bits automaticamente para garantir que os dados não estourom o bucket com vazamento. |
MFPKEY_ASFMEDIASINK_DRMACTION | Isso indica a ação DRM do coletor de mídia DO ASF para geração de arquivos. Nesta versão, há suporte apenas para o transcódigo DRM. |
Tópicos relacionados