Perfis
[A funcionalidade associada a esta página, Windows Media Format 11 SDK, é uma funcionalidade herdada. Foi substituído por Source Reader e Sink Writer. do Source Reader e Sink Writer foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize do Leitor de Origem e do Gravador de Separadores em vez de SDK do Windows Media Format 11, sempre que possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
Um perfil é uma coleção de dados que descreve a configuração de um arquivo ASF. No mínimo, um perfil deve conter definições de configuração para um único fluxo.
As informações de fluxo em um perfil contêm a taxa de bits, a janela de buffer e as propriedades de mídia para o fluxo. As informações de fluxo para áudio e vídeo descrevem exatamente como a mídia é configurada no arquivo, incluindo qual codec (se houver) será usado para compactar os dados.
Um perfil também contém informações sobre os vários recursos de arquivo ASF que serão usados em arquivos criados com ele. Estes incluem de Exclusão Mútua, de Priorização de Fluxo, de Compartilhamento de Largura de Banda e Extensões de Unidade de Dados.
As versões anteriores do SDK do Windows Media Format forneciam perfis de sistema pré-configurados, que podiam ser usados para criar tipos comuns de arquivos ou ligeiramente alterados para atender às necessidades do seu aplicativo. Os perfis de sistema não são suportados para os codecs do Windows Media 9 Series. Isso ocorre porque o número de tipos "comuns" de arquivos cresceu exponencialmente com a adição de novos recursos. Espera-se que praticamente todo criador de conteúdo tenha necessidades que vão além das soluções simples fornecidas pelos perfis do sistema. Você ainda pode usar os perfis de sistema antigos como ponto de partida. Para obter mais informações, consulte Usando perfis de sistema.
Você deve fornecer ao gravador um perfil para cada arquivo que você escreve. Você pode especificar um perfil para usar com o gravador chamando IWMWriter::SetProfile.
Os dados de perfil existem em várias formas diferentes que podem ser usadas pelo SDK do Windows Media Format. As informações do perfil também podem ser acessadas de várias maneiras. Isso pode gerar confusão sobre o que é um perfil e como ele é usado.
O diagrama a seguir mostra como os dados de perfil são usados no SDK.
Os dados de perfil assumem três formas diferentes: dados contidos em um objeto de perfil em um aplicativo, um arquivo XML no disco e dados no cabeçalho de um arquivo ASF. Cada uma dessas formas de dados é mostrada como um retângulo sombreado no diagrama.
Dados em um objeto de perfil
Ao editar um perfil, você usa um objeto de perfil, que encapsula todos os dados do perfil. Você pode criar um objeto de perfil vazio usando o objeto do gerenciador de perfis. Você também pode usar o objeto do gerenciador de perfis para carregar dados de perfil existentes em um objeto de perfil.
A maioria dos dados de perfil deve ser adicionada e manipulada através do uso de objetos que representam partes individuais do perfil. Isso inclui objetos de configuração de fluxo, objetos de exclusão mútua, objetos de compartilhamento de largura de banda e um objeto de priorização de fluxo. Cada um desses tipos de objeto pode ser criado usando métodos no objeto de perfil. Fazer alterações nesses objetos não afeta o objeto de perfil até que você use um método no objeto de perfil para incluir os dados atualizados do outro objeto.
Dados em um arquivo XML
Os dados de perfil são armazenados no disco na forma de um arquivo XML com a extensão de nome de arquivo .prx. Incluído com o SDK do Windows Media Format está uma coleção de perfis chamados perfis de sistema que abrangem os tipos mais comuns de arquivos ASF. Os perfis do sistema são armazenados em um arquivo chamado WMSysPr9.prx. (Observe que esse arquivo na verdade não contém perfis de sistema para o Windows Media 9 Series porque o conceito de perfis de sistema não é mais usado.) Quando você salva seus próprios perfis personalizados, você deve salvá-los em seus próprios arquivos.
Você pode usar o objeto gerenciador de perfis para salvar os dados de um objeto de perfil em uma cadeia de caracteres de texto XML. Em seguida, você pode usar as funções de E/S de arquivo que desejar para salvar a cadeia de caracteres em um arquivo no disco.
Dados no cabeçalho de um arquivo ASF
O gravador pega as informações do perfil e as usa para criar os fluxos que vão para a seção de dados do arquivo ASF. A maior parte dos dados de perfil é armazenada na seção de cabeçalho do arquivo quando um arquivo é gravado. Na reprodução, o objeto leitor (ou o objeto leitor síncrono) pode acessar as informações no cabeçalho do arquivo. Nesse caso, o objeto de leitura cria um objeto de perfil e o preenche com os dados do cabeçalho.
Ao acessar os dados do perfil usando o leitor (ou leitor síncrono), você pode fazer alterações nas informações do perfil, mas não há como aplicar essas alterações ao arquivo no leitor. Você pode aplicar as informações de perfil de um arquivo em um leitor a um perfil em um gravador para criar um novo arquivo com as mesmas configurações do arquivo no leitor. Nesse caso, quaisquer alterações feitas nas informações do perfil antes de definir o perfil no gravador serão refletidas nas informações do perfil registradas pelo escritor.
Usando o Editor de Perfil
Em vez de criar perfis usando o SDK do Windows Media Format, você pode usar o Editor de Perfil, um utilitário incluído no Codificador do Windows Media. Em seu aplicativo de codificação, use o método IWMProfileManager::LoadProfileByData para carregar o perfil salvo. Em alguns cenários, por exemplo, se você usar um número limitado de perfis que nunca são modificados dinamicamente, pode ser mais conveniente usar o Editor de perfis para criar seus perfis.
No entanto, se você usar o Editor de Perfil, é recomendável que você não use a configuração "Tamanho do vídeo: mesmo que a entrada de vídeo". Quando essa caixa de seleção estiver marcada, o Editor de Perfil criará um perfil com a altura e a largura da saída de vídeo definidas como zero. Quando o Codificador do Windows Media encontra esses perfis, ele define os valores corretos para corresponder à sua entrada de vídeo. No entanto, o gravador no SDK do Windows Media Format não o faz automaticamente, portanto, você deve garantir que seu aplicativo defina o tamanho do quadro de vídeo nos casos em que o perfil não tenha nenhum.
Observação Alguns itens de configuração de fluxo não são armazenados no perfil. Os dados no perfil descrevem o formato do arquivo ASF concluído. As propriedades de mídia de entrada e outros dados de configuração usados pelo objeto writer para configurar os codecs não são salvos no perfil. Isso inclui todas as propriedades definidas usando o métodoIWMPropertyVault::SetProperty.
Tópicos relacionados