Partilhar via


Entradas, fluxos e saídas

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

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 suportado. Vários formatos RGB e YUV padrão são suportados como entrada, e os codecs de áudio suportam PCM. Se um formato de entrada especificado não for suportado nativamente pelo codec, o objeto writer instanciará 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 de bits, a taxa de amostragem 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 de cor e ajustes de tamanho de retângulo. Em alguns casos, os dados de áudio e vídeo comprimidos 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 estáticas ou dados de arquivos arbitrários.

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 compartilham uma única saída. Normalmente, os dados de saída são na forma de dados de áudio ou vídeo não comprimidos, embora possam conter qualquer tipo de dados. Os formatos de saída de vídeo suportados estão listados em outra parte desta documentação.

O termo "fluxo" nesta documentação refere-se aos 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 depois de serem descompactados pelo objeto leitor. Um fluxo ASF contém dados que vêm de uma única entrada no objeto writer, 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 compressã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 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 entrega amostras não compactadas como uma única saída, como 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. Neste caso, uma única entrada é processada pelo gravador e codificada em 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 não compactadas 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 várias taxas de bits.

O terceiro tipo de relacionamento pode ocorrer quando uma exclusão mútua baseada em idioma ou costume é 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 não compactadas como uma única saída. Este 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 a 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 comprimidas, caso em que o gravador não executa nenhuma compressão adicional. O leitor, também, pode entregar amostras compactadas. Mas quando isso acontece, você deve acessá-los por número de fluxo, não por número de saída.

Observação

Entradas, vapores e saídas são todos números atribuídos pelos objetos do SDK do Windows Media Format. Os fluxos têm um número de fluxo, que é baseado em 1, que você define no perfil. A cada fluxo também é atribuído um índice de fluxo para uso na enumeração de fluxos em um perfil. Não é garantido que nenhum destes números seja coerente entre si. 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