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


Общие сведения о кодировке в Media Foundation

В этом разделе представлен обзор API кодирования файлов, предоставляемых в Microsoft Media Foundation.

Терминология

кодировки — это общий термин, охватывающий несколько различных процессов:

  1. Кодирование аудио- или видеопотока в сжатые форматы. Например, кодирование видеопотока в формат H.264.
  2. Мультиплексирование ("муксинг") одного или нескольких потоков в один байтовый поток. Как правило, входящие потоки кодируются сначала. Этот шаг может включать пакетизацию кодированных потоков.
  3. Написание мультиплексированного потока байтов в файл, например MP4-файла или файла расширенного формата систем (ASF). Кроме того, мультиплексированные потоки можно отправлять по сети.

На следующей схеме показаны три процесса:

схема с процессами кодирования и мультиплексирования

Варианты этого процесса включают транскодирование и ремюксирование:

  • транскодирование означает декодирование существующего файла, повторное кодирование потоков и повторное мультиплексирование кодированных потоков. Транскодирование может выполняться для преобразования файла из одного типа кодирования в другой; Например, чтобы преобразовать видео H.264 в Windows Media Video (WMV). Это также можно сделать, чтобы изменить закодированную скорость бита; размер кадра видео; частота кадров; или другие параметры формата.
  • Remultiplexing или remuxing означает демультиплексирование файла и повторное мультиплексирование потоков без этапа декодирования и кодирования. Это может быть сделано, чтобы изменить способ мультиплексирования пакетов аудио-видео, удаления потока или объединения потоков из двух разных исходных файлов.
  • Transrating — это особый случай транскодирования, где скорость битов изменяется, не изменяя тип сжатия. Например, можно преобразовать файл высокой скорости в более низкую скорость. Типичный сценарий, в котором может использоваться трансратизация, заключается в синхронизации содержимого мультимедиа с компьютера на переносимое устройство. Если переносимое устройство не поддерживает высокую скорость передачи, файл может быть перекодирован перед его копированием на переносимое устройство.

На следующей блок-схеме показан процесс транскодирования.

схема , показывающая процесс перекодирования

На следующей блок-схеме показан процесс ремюксирования.

схема , показывающая процесс ремюксирования

В этой документации иногда используется термин кодирование, чтобы включать как транскодирование, так и ремюксирование. Если важно различать их, документация заметит разницу.

См. также: Media Foundation: основные понятия.

Архитектура кодировки Media Foundation

На самом нижнем уровне архитектуры Media Foundation для кодирования используются следующие типы компонентов:

  • Для перекодирования источники мультимедиа используются для демультиплексирования исходного файла.
  • Для процесса кодирования преобразования Media Foundation используются для декодировки и кодирования потоков.
  • Для мультиплексирования используются мультимедийные устройства , которые обрабатывают потоки и записывают мультиплексированный поток в файл или сеть.

На следующей схеме показан поток данных между этими компонентами в сценарии перекодирования:

схема , показывающая компоненты, используемые при перекодировании

Большинство приложений не будут использовать эти компоненты напрямую. Вместо этого приложение будет использовать интерфейсы API более высокого уровня, которые управляют низкоуровневыми компонентами. Media Foundation предоставляет два API более высокого уровня для кодирования:

сеанс мультимедиа

Сеанс мультимедиа предоставляет комплексный конвейер, который перемещает данные из источника мультимедиа, через кодеки и, наконец, в приемник мультимедиа. Приложение управляет сеансом мультимедиа и получает события состояния из сеанса мультимедиа.

ридер источника плюс модуль для записи приемника

Средство чтения источника упаковывает источник мультимедиа и при необходимости декодеры. Он предоставляет кодированные или декодированные примеры приложения. Программа Sink Writer оборачивает медиаприемник и, при необходимости, кодировщики. Приложение передает примеры в модуль записи приемника.

На следующей схеме показан сеанс мультимедиа:

схема , показывающая, как медиа-сессия выполняет перекодирование

API Транскодирования (отмеченная синим цветом рамка) — это набор API, представленных в Windows 7, которые упрощают настройку медиасеанса для кодирования.

На следующей схеме показаны Читатель источника и Записывающее устройство приемника.

схема , показывающая перекодирование с использованием считывателя источника и записывающего устройства приемника

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

программирование Media Foundation: основные понятия