Compartilhar via


Exclusão mútua

[O recurso associado a esta página, Windows Media Format 11 SDK, é um recurso herdado. Ele foi substituído por Leitor de Origem e Gravador de Coletor. O Leitor de Origem e o Gravador do Coletor foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use o Leitor de Origem e o Gravador do Coletor em vez do SDK do Windows Media Format 11, quando 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.]

Cada arquivo ASF contém um ou mais fluxos, cada um contendo dados de mídia digital. Em circunstâncias normais, cada fluxo é associado a uma única saída. Na reprodução, o objeto leitor fornece exemplos para cada saída. Portanto, como padrão, cada fluxo em um arquivo ASF é entregue pelo leitor na reprodução.

Há situações em que você não deseja que todos os fluxos sejam entregues ao cliente. Por exemplo, se você criar um arquivo de vídeo com cinco fluxos de áudio, um para cada um dos cinco idiomas, desejará que apenas um deles seja entregue por vez. A exclusão mútua é um recurso do SDK de Formato de Mídia do Windows que permite especificar uma série de fluxos mutuamente exclusivos que equivalem à mesma saída.

A exclusão mútua é definida no perfil usado para criar um arquivo. Você configura a exclusão mútua em um perfil usando objetos de exclusão mútua. Você adiciona fluxos um de cada vez ao objeto de exclusão mútua, define o tipo e inclui o objeto no perfil.

O SDK do Windows Media Format reconhece quatro tipos de exclusão mútua:

  • Taxa de bits
  • Idioma
  • Apresentação
  • Unknown

Exclusão mútua por taxa de bits

A exclusão mútua da taxa de bits é um tipo especial de exclusão mútua e é mais comumente conhecida como exclusão mútua de MBR (taxa de bits múltipla). Uma exclusão mútua MBR contém vários fluxos que se originam da mesma entrada, mas são codificados a taxas de bits diferentes. Ao reproduzir um arquivo com MBR, o leitor determina o melhor fluxo a ser usado com base na largura de banda disponível.

O SDK do Windows Media Format dá suporte ao MBR para fluxos de áudio e vídeo. O SDK também dá suporte a um tipo especial de vídeo MBR chamado MBR de tamanho de vídeo múltiplo. Isso é como um vídeo MBR normal, exceto que os fluxos individuais podem ter tamanhos de quadro diferentes. Por exemplo, você pode ter alguns fluxos no tamanho de vídeo padrão de 320 x 240 e outros com taxas de bits mais altas e tamanho de vídeo 640 x 480.

Exclusão mútua por linguagem

A exclusão mútua baseada em linguagem foi projetada para uso com conteúdo (geralmente áudio) gravado em vários idiomas. Uma exclusão mútua baseada em linguagem inclui vários fluxos que se originam de entradas exclusivas. Cada entrada é o mesmo conteúdo, mas em um idioma diferente.

Para que a exclusão mútua por linguagem funcione, o aplicativo de leitura deve incluir lógica para selecionar o idioma apropriado. Se você escrever um aplicativo para reproduzir arquivos ASF e quiser dar suporte a arquivos com exclusão mútua baseada em linguagem, selecione o fluxo apropriado antes de iniciar a reprodução.

Exclusão mútua por apresentação

A exclusão mútua baseada em apresentação é fornecida para dar suporte a fluxos de vídeo que contêm o mesmo conteúdo codificado com taxas de proporção diferentes. Normalmente, isso é usado ao fornecer vídeo em uma versão de caixa de correio (taxa de proporção 16:9), bem como formatado para telas de televisão (taxa de proporção 4:3).

A seleção de uma apresentação para reprodução geralmente é determinada pelo usuário. Se você escrever um aplicativo para reproduzir arquivos ASF e quiser dar suporte a arquivos com exclusão mútua baseada em apresentação, deverá apresentar ao usuário a opção de selecionar um tipo de apresentação para exibição.

Exclusão mútua desconhecida

Você pode criar exclusão mútua com base em qualquer critério que desejar. Todos os tipos de exclusão mútua personalizados devem ser criados usando o tipo desconhecido.

Recursos avançados de exclusão mútua

Você também pode usar a exclusão mútua para atribuir fluxos a grupos mutuamente exclusivos uns dos outros. Por exemplo, talvez você queira ter fluxos de áudio em vários idiomas e atribuir um fluxo de vídeo diferente a cada um. Você usa a exclusão mútua para agrupar cada fluxo de áudio com seu fluxo de vídeo correspondente e tornar todos os grupos mutuamente exclusivos.

O leitor seleciona automaticamente fluxos para todas as exclusões mútuas. Para todos os tipos de exclusão mútua, exceto MBR e exclusão mútua baseada em linguagem, o leitor sempre seleciona o fluxo padrão, que é o primeiro fluxo adicionado ao objeto de exclusão mútua no perfil. Para MBR, o leitor seleciona o fluxo mais adequado à largura de banda disponível no momento da reprodução. Se você não quiser usar o fluxo padrão, poderá definir a seleção de fluxo como manual antes de começar a ler um arquivo.

A seleção manual de fluxo se aplica a todo o arquivo. As dificuldades podem surgir quando você tem exclusões mútuas de tipos diferentes no mesmo arquivo. Por exemplo, um arquivo pode conter exclusão mútua baseada em taxa de bits e exclusão mútua personalizada. Para selecionar um fluxo diferente do padrão na exclusão mútua personalizada, você deve usar a seleção de fluxo manual. No entanto, se você usar a seleção manual de fluxo, o leitor não selecionará automaticamente o fluxo de taxa de vários bits. Você deve planejar essa eventualidade em seu aplicativo se planeja dar suporte a vários tipos de exclusão mútua em um único arquivo. Normalmente, isso significa criar suas próprias rotinas de seleção de fluxo para tipos normalmente automáticos de exclusão mútua.

Recursos do arquivo ASF

Usando exclusão mútua