Partilhar via


Exclusão mútua

[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.]

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

Há situações em que você não quer 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, você deseja que apenas um deles seja entregue de cada vez. A exclusão mútua é um recurso do SDK do Windows Media Format que permite especificar vários 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
  • Desconhecido

Exclusão mútua por taxa de bits

A exclusão mútua de taxa de bits é um tipo especial de exclusão mútua e é mais comumente referida como exclusão mútua de taxa de bits múltiplos (MBR). Uma exclusão mútua de MBR contém vários fluxos que se originam da mesma entrada, mas são codificados em 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 suporta MBR para fluxos de áudio e vídeo. O SDK também suporta um tipo especial de vídeo MBR chamado MBR de vários tamanhos de vídeo. Isso é como o 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 alguns outros com taxas de bits mais altas e tamanho de vídeo de 640 x 480.

Exclusão mútua por língua

A exclusão mútua baseada na língua foi concebida para ser utilizada com conteúdos (geralmente áudio) gravados em várias línguas. Uma exclusão mútua baseada na língua inclui vários fluxos que se originam de entradas únicas. Cada entrada é o mesmo conteúdo, mas em um idioma diferente.

Para que a exclusão mútua por idioma 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 oferecer suporte a arquivos com exclusão mútua baseada em idioma, 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 suportar fluxos de vídeo que contêm o mesmo conteúdo codificado com proporções diferentes. Normalmente, isso é usado ao fornecer vídeo em uma versão de caixa de correio (proporção 16:9), bem como formatado para telas de televisão (proporção 4:3).

A seleção de uma apresentação para reprodução é, na maioria das vezes, determinada pelo usuário. Se você escrever um aplicativo para reproduzir arquivos ASF e quiser oferecer 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 visualizaçã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 que são mutuamente exclusivos uns dos outros. Por exemplo, você pode querer 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 idioma, 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 que melhor se adapta à largura de banda disponível no momento da reprodução. Se você não quiser usar o fluxo padrão, você pode definir a seleção de fluxo como manual antes de começar a ler um arquivo.

A seleção manual de fluxo aplica-se a todo o arquivo. Podem surgir dificuldades quando existem exclusões mútuas de diferentes tipos no mesmo ficheiro. 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 manual de fluxo. Se você usar a seleção manual de fluxo, no entanto, o leitor não selecionará automaticamente o fluxo de taxa de bits múltipla. Você deve planejar essa eventualidade em seu aplicativo se planeja oferecer 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.

de recursos do arquivo ASF

Usando a exclusão mútua