Entradas, fluxos e saídas

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

Uma "entrada" nesta documentação é qualquer fluxo de dados de mídia digital (como áudio ou vídeo) que seu aplicativo entrega ao objeto gravador de uma fonte usando APIs apropriadas. As entradas devem ser entregues em um formato com suporte. Há suporte para vários formatos RGB e YUV padrão como entrada e os codecs de áudio dão suporte a PCM. Se um formato de entrada especificado não for suportado nativamente pelo codec, o objeto gravador criará uma instância de um objeto auxiliar de áudio ou vídeo capaz de converter uma ampla variedade de formatos em formatos que o codec pode aceitar. Para entradas de áudio, o objeto auxiliar ajustará a profundidade do bit, a taxa de exemplo e o número de canais conforme necessário. Para entradas de vídeo, o objeto auxiliar de vídeo executará conversões de espaço em cores e ajustes de tamanho de retângulo. Em alguns casos, dados compactados de áudio e vídeo podem ser passados em um fluxo de entrada. Uma entrada pode ser de algum outro tipo de mídia além de áudio e vídeo, como texto, comandos de script, imagens ainda ou dados arbitrários de arquivo.

Uma "saída" nesta documentação refere-se aos dados que o objeto leitor passa para um aplicativo para renderização. Uma saída equivale a um único fluxo no momento da reprodução. Se você estiver usando a exclusão mútua, todos os fluxos mutuamente exclusivos compartilharão uma única saída. Normalmente, os dados de saída estão na forma de dados de áudio ou vídeo não compactados, embora possam conter qualquer tipo de dados. Os formatos de saída de vídeo com suporte são listados em outro lugar nesta documentação.

O termo "fluxo" nesta documentação refere-se a dados em um arquivo ASF, em oposição a (1) os dados de origem de entrada antes de serem processados pelo objeto gravador e (2) os dados de saída após serem descompactados pelo objeto leitor. Um fluxo ASF contém dados provenientes de uma única entrada no objeto gravador, embora mais de um fluxo possa ser criado a partir da mesma entrada. Um fluxo tem o mesmo formato e configurações de compactação do início ao fim. Um arquivo ASF simples tem dois fluxos, um para áudio e outro para vídeo. Um arquivo mais complexo pode ter dois fluxos de áudio e vários fluxos de vídeo. Os fluxos de áudio podem ter as mesmas configurações de compactação, mas contêm conteúdo diferente, como uma narração em idiomas diferentes. Os fluxos de vídeo podem conter o mesmo conteúdo, mas têm configurações de compactação diferentes. As configurações de formato de mídia e compactação que o objeto gravador aplicará a cada fluxo são especificadas no perfil.

A relação entre entradas, fluxos e saídas pode ser de três tipos básicos. Os três diagramas a seguir ilustram as relações.

Na relação mais básica, que é um perfil sem nenhuma exclusão mútua, cada entrada é processada pelo gravador e inserida no arquivo ASF como um único fluxo. Na reprodução, o leitor lê o fluxo e fornece amostras descompactadas como uma única saída, conforme mostrado no diagrama a seguir.

diagrama mostrando a relação normal entre entradas, fluxos e saídas.

Uma relação mais complexa ocorre quando a exclusão mútua de taxa de bits múltipla é usada. Nesse caso, uma única entrada é processada pelo gravador e codificada a várias taxas de bits. Cada codificação dos dados é inserida no arquivo ASF como um fluxo separado. Na reprodução, o leitor determina qual fluxo descompactar com base na largura de banda disponível. Em seguida, o leitor lê o fluxo selecionado e fornece amostras descompactadas como uma única saída, conforme mostrado no diagrama a seguir.

diagrama mostrando as relações entre entradas, fluxos e saídas ao usar a exclusão mútua de taxa de bits múltipla.

O terceiro tipo de relação pode ocorrer quando uma exclusão mútua personalizada ou baseada em linguagem é usada. Nessa relação, várias entradas são processadas pelo leitor e cada uma é inserida no arquivo ASF como um fluxo individual. Na reprodução, seu aplicativo seleciona manualmente qual fluxo descompactar com base na lógica fornecida. Em seguida, o leitor lê o fluxo selecionado e fornece amostras descompactadas como uma única saída. Esse processo pode ser usado para incluir trilhas sonoras em vários idiomas. O diagrama a seguir ilustra esse processo.

diagrama mostrando as relações entre entradas, fluxos e saídas ao usar exclusão mútua personalizada.

Há alguma variação nas relações descritas anteriormente. Por exemplo, um arquivo pode conter todas as três relações ou uma ou duas delas. Também é possível que algumas entradas sejam compactadas, caso em que o gravador não executa nenhuma compactação adicional. O leitor também pode fornecer amostras compactadas. Mas quando isso acontecer, você deve acessá-los pelo número de fluxo, não pelo número de saída.

Observação

Entradas, vapores e saídas são todos números atribuídos pelos objetos do SDK de Formato de Mídia do Windows. Os fluxos têm um número de fluxo, que é baseado em 1, que você define no perfil. Cada fluxo também recebe um índice de fluxo para uso na enumeração de fluxos em um perfil. Nenhum desses números tem a garantia de ser consistente uns com os outros. Ou seja, o número de entrada 1 pode não corresponder ao número de fluxo 1, o número de fluxo 1 pode não corresponder ao índice de fluxo 1 e assim por diante.

 

Conceitos

Exclusão mútua