Armazenamento em buffer de conteúdo
[A funcionalidade associada a esta página, Windows Media Format 11 SDK, é uma funcionalidade herdada. Foi substituído por Source Reader e Sink Writer. Source Reader e Sink Writer foram otimizados para Windows 10 e Windows 11. Microsoft recomenda vivamente que o novo código utilize Leitor de Origem e Gravador de Receptores 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.]
Quando o objeto leitor abre um arquivo de streaming, ele determina o tamanho do buffer com base nas configurações no cabeçalho do arquivo. Você pode pensar no buffer como um balde com um buraco no fundo que vaza a uma taxa constante. Desde que a velocidade de enchimento do balde não seja, em média, maior do que a taxa de vazamento, o balde nunca transbordará.
A velocidade a que o balde imaginário vaza é a taxa de bits do fluxo. A taxa a que o balde é preenchido é a taxa de bits de streaming efetiva. Os dados em um fluxo compactado varia em tamanho de amostra para amostra, dependendo da quantidade de compressão que foi alcançada. Assim, mesmo que a taxa de bits do fluxo é definida no perfil, ele representa a taxa de bits média, não uma constante.
A outra configuração de fluxo importante para o processo de buffer é a janela de buffer. A janela de buffer é medida no tempo e especifica quanto conteúdo pode ser armazenado em buffer. A capacidade do "bucket" imaginário pode ser determinada usando a "buffer window". Por exemplo, se você tiver um fluxo com uma taxa de bits de 32 Kbps e uma janela de buffer de 3 segundos, o buffer será dimensionado para armazenar 3 segundos de conteúdo de 32 Kbps ou 12.000 bytes (32.000 bits por segundo x 3 segundos / 8 bits por byte). O codec limita a variação entre a taxa de bits de streaming real de amostras codificadas para que, durante um período de tempo igual à janela de buffer, a taxa de bits média não seja maior do que a taxa de bits do fluxo.
Normalmente, define-se a taxa de bits e a janela de buffer para um fluxo de dados num perfil, e o escritor lida com o resto. Ao passar amostras compactadas para o leitor, no entanto, você deve garantir que os valores corretos sejam transferidos para o novo arquivo, definindo a taxa de bits e a janela de buffer para o fluxo no perfil de destino para os valores do fluxo compactado.
Tópicos relacionados