Поделиться через


Принудительная вставка Key-Frame

[Функция, связанная с этой страницей, пакет SDK для Windows Media 11, является устаревшей функцией. Его заменили модуль чтения источника и устройство записи приемника. средства чтения источников и записи приемника оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать источник чтения и приемник записи вместо Windows Media Format 11 SDK, когда это возможно. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]

Кодек Windows Media Video 9 поддерживает принудительную вставку ключевых кадров. При передаче примера автору можно задать требование, чтобы он был закодирован как ключевой кадр.

Чтобы принудительно вставить ключевой кадр для примера, выполните следующие действия.

  1. Выделите буфер для хранения примера и получите указатель на интерфейс INSSBuffer, содержащий буфер, вызвав IWMWriter::AllocateSample.
  2. Получите расположение и размер буфера, созданного на шаге 1, вызвав INSSBuffer::GetBufferAndLength.
  3. Скопируйте образец данных в буфер, убедившись, что переданный образец поместится в выделенный буфер. В зависимости от источника примеров можно использовать различные функции для копирования данных. Например, при копировании потока из AVI-файла можно использовать функцию AVI, AVIStreamRead.
  4. Обновите объем данных, используемых в буфере, чтобы отразить фактический размер выборки, вызвав INSSBuffer::SetLength.
  5. Получите указатель на интерфейс INSSBuffer3 путем вызова INSSBuffer::QueryInterface.
  6. Задайте пример в качестве принудительного ключевого кадра путем вызова метода INSSBuffer3::SetProperty, чтобы задать свойство WM_SampleExtensionGUID_OutputCleanPoint. Это свойство является логическим значением; Установите для него значение TRUE.
  7. Передайте интерфейс буфера записи вместе с входным номером и примером времени с помощью метода IWMWriter::WriteSample.

IWMWriter::WriteSample

для записи примеров

кодировки переменного битрейта (VBR)

создание файлов ASF