Транскодирование содержимого с помощью интеллектуального повторного сжатия

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

Содержимое можно перекодировать из одной скорости в другую с помощью пакета SDK для формата Windows Media. Как правило, это включает просто декодирование содержимого и его кодирование снова на нужную скорость бита. Кодек Windows Media Audio 9 поддерживает интеллектуальное повторное сжатие, что позволяет транскодирование, которое обеспечивает лучшее качество, чем обычно.

Для интеллектуального повторного сжатия исходный аудиопоток должен быть закодирован с помощью кодека Аудио в Windows Media. Поддерживаются все версии кодека, но не поддерживаются специализированные аудиокодеки (Windows Media Audio 9 Профессиональный и Голосовая связь Windows Media Audio 9). Если исходный звук был закодирован с помощью кодека Без потери звука Windows Media 9, нет необходимости использовать смарт-повторное сжатие, так как в исходной кодировке не было потеряно никакой информации.

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

  1. Назначьте объект для чтения с использованием исходного файла. Дополнительные сведения см. в чтение файлов ASF.
  2. Настройте объект записи для перекодирования файла. Задайте имя файла для нового файла. Выберите профиль, используемый для нового файла. Установите выбранный профиль в объекте writer. Дополнительные сведения см. в создании файлов ASF.
  3. Получите указатель на интерфейс IWMProfile объекта чтения, вызвав IWMReader::QueryInterface.
  4. Получите интерфейс IWMStreamConfig для транскодирования звукового потока путем вызова метода IWMProfile::GetStream.
  5. Получите интерфейс IWMMediaProps для объекта конфигурации потока путем вызова IWMStreamConfig::QueryInterface.
  6. Получите структуру WM_MEDIA_TYPE для потока, выполнив два вызова для IWMMediaProps::GetMediaType. Получите размер структуры при первом вызове и выделите память для буфера для передачи при втором вызове.
  7. Получите указатель на интерфейс IWMInputMediaProps для ввода в записи путем вызова IWMWriter::GetInputProps.
  8. Получите интерфейс IWMPropertyVault для объекта свойств входного носителя, вызвав IWMInputMediaProps::QueryInterface.
  9. Используйте метод IWMPropertyVault::SetProperty, чтобы задать свойство g_wszOriginalWaveFormat. Используйте структуру WAVEFORMATEX, полученную на шаге 6 в качестве значения свойства.
  10. Включите изменения, внесенные в свойства входного мультимедиа, вызвав IWMWriter::SetInputProps и передав указатель на интерфейс IWMInputMediaProps.
  11. Начните считывать примеры из исходного файла и передать их в модуль записи с вызовами IWMWriter::WriteSample.

дополнительные разделы

Интерфейс IWMInputMediaProps

интерфейс IWMMediaProps

интерфейс IWMProfile

интерфейс IWMPropertyVault

интерфейс IWMStreamConfig