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


Запись ASF-файлов

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

Для создания ASF-файлов на основе цифровых мультимедийных данных можно использовать объект записи пакета SDK для формата Windows Media. Чтобы создать экземпляр объекта записи, вызовите функцию WMCreateWriter . Объект записи координирует функциональность ряда компонентов, включая кодеки, которые являются внешними по части пакета SDK для формата Windows Media.

Основные функции объекта записи можно разбить на следующие шаги. На этих шагах "приложение" относится к программе, написанной с помощью пакета SDK для формата Windows Media.

  1. Приложение предоставляет модуль записи с профилем для использования при создании ASF-файла. Когда модуль записи загружает данные профиля, он назначает входной номер каждому подключению профиля.
  2. Приложение предоставляет средству записи имя выходного файла для записываемого файла. Модуль записи создает объект приемника файла записи для управления созданием и вводом файла. Дополнительные сведения см. в разделе Объект приемника файлов записи.
  3. Модуль записи создает заголовок для нового файла на основе сведений в профиле.
  4. Приложение передает несжатые примеры в модуль записи. Примеры передаются по одному в буферы, заключенные в объекты буфера. Приложение должно передавать примеры для каждого потока параллельно, чтобы модуль записи получал все образцы в порядке, указанном во время презентации.
  5. Модуль записи передает примеры в соответствующий кодек для сжатия. Когда модуль записи получает сжатые примеры, он чередует их с образцами из других потоков, чтобы образцы попадали в файл в порядке времени представления независимо от потока. Затем образец данных преобразуется в пакеты и записывается в раздел данных файла.
  6. При обработке всех примеров модуль записи может добавить индекс в файл, чтобы повысить производительность поиска.

Эти шаги показаны, среди прочего, в примере приложения WMStats. Дополнительные сведения см. в разделе Примеры приложений.

Модуль записи также поддерживает более сложные функции, что позволяет выполнять следующие действия:

  • Изменение метаданных в заголовке файла.
  • Написание предварительно сжатых примеров.
  • Запись в сетевые приемники для потоковой передачи динамических данных.
  • Запись в приемники файлов для расширенных параметров управления файлами.
  • Запись в приемники push-уведомлений для распространения на серверах, которые будут доставлять содержимое конечным пользователям.
  • Предоставление примеров postview для проверки выходных данных.
  • Предоставление статистики производительности записи.

В следующих разделах подробно описывается использование объекта записи.

Section Описание
Использование профилей с модулем записи Описывает, как указать профиль для использования с модулем записи.
Работа с входными данными Описывает, как определить и настроить входные параметры в записи.
Изменение метаданных с помощью модуля записи Описывает, как использовать модуль записи для изменения метаданных для нового файла.
Написание примеров Описывает, как передать примеры в модуль записи.
Настройка расширений единиц данных Описывает добавление расширенных данных в примеры.
Написание сжатых примеров Описывает, как передать предварительно сжатые примеры в модуль записи.
Написание потоков изображений Описывает настройку входных данных для потока изображений.
Написание примеров видеоимоим Описывает настройку примеров видеоимок.
Запись потоков переменной скорости Описывает, как записывать потоки переменной скорости (VBR).
Использование кодировки Two-Pass Описывает, как кодек выполнил предварительный проход перед записью файла.
Принудительная вставка Key-Frame Описывает, как вручную принудить кодек кодеку закодировать пример в качестве ключевого кадра.
Управление задержкой записи Описывает, как свести к минимуму время, необходимое записи для обработки примеров в выходной файл или приемник.
Работа с приемниками модуля записи Описывает, как использовать приемники записи для доставки содержимого в файлы или сетевые расположения.
Получение статистики записи Описывает, как получить статистику для модуля записи.
Использование postview модуля записи Описывает, как получить несжатые примеры при написании файла для проверки.

 

Руководство по программированию

Объект приемника файлов модуля записи

Объект сетевого приемника записи

Объект модуля записи