Partilhar via


Para forçar a inserção de Key-Frame

[A funcionalidade associada a esta página, Windows Media Format 11 SDK, é uma funcionalidade herdada. Foi substituído por Source Reader e Sink Writer. O do Source Reader e o do Sink Writer foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize Source Reader e Sink Writer em vez do 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.]

O codec Windows Media Video 9 suporta a inserção forçada de quadros-chave. Ao passar uma amostra para o escritor, pode-se especificar que ela deve ser codificada como um quadro-chave .

Para forçar a inserção de quadros-chave para um exemplo, execute as etapas a seguir.

  1. Aloque um buffer para armazenar a amostra e recupere um ponteiro para a interface INSSBuffer que contém o buffer, chamando IWMWriter::AllocateSample.
  2. Recupere o local e o tamanho do buffer criado na etapa 1 chamando INSSBuffer::GetBufferAndLength.
  3. Copie a amostra para o local do buffer e se certifique de que a amostra passada caberá no buffer alocado. Dependendo da origem de suas amostras, você pode usar uma variedade de funções para copiar os dados. Por exemplo, se estiver a copiar um fluxo de um ficheiro AVI, pode utilizar a função AVI, AVIStreamRead.
  4. Atualize a quantidade de dados usados no buffer para refletir o tamanho real da amostra chamando INSSBuffer::SetLength.
  5. Obtenha um ponteiro para a interface INSSBuffer3 chamando INSSBuffer::QueryInterface.
  6. Defina o exemplo como um quadro-chave forçado chamando o INSSBuffer3::SetProperty método para definir a propriedade WM_SampleExtensionGUID_OutputCleanPoint. Esta propriedade é um valor booleano; defini-lo como TRUE.
  7. Passe a interface do buffer para o gravador juntamente com o número de entrada e o tempo de amostra usando o método IWMWriter::WriteSample.

IWMWriter::WriteSample

Para escrever amostras

Codificação de Taxa de Bits Variável (VBR)

Escrevendo arquivos ASF