Кодировщик Windows Media Video 9

Кодировщик Windows Media Video 9 кодирует видеопотоки. Кодировщик поддерживает следующие четыре категории закодированных выходных данных.

  • Простой профиль Windows Media Video 9
  • Основной профиль Windows Media Video 9
  • Расширенный профиль Windows Media Video 9
  • Изображение Windows Media Video 9.1

Идентификатор класса

Идентификатор класса (CLSID) для кодировщика Windows Media Video представлен константой CLSID_CWMV9EncMediaObject. Вы можете создать экземпляр видеокодировщика, вызвав CoCreateInstance.

Интерфейсы

Объект видеокодировщика предоставляет интерфейс IMediaObject , чтобы объект можно было использовать в качестве объекта мультимедиа DirectX (DMO), и предоставляет интерфейс IMFTransform , чтобы объект можно было использовать в качестве преобразования Media Foundation (MFT).

Видеокодировщик ведет себя как DMO или MFT в зависимости от того, какие интерфейсы вы получаете и какая версия Windows работает. В следующей таблице показаны условия, при которых кодировщик видео ведет себя как DMO или MFT.

Операционная система Поведение кодировщика
Windows XP Видеокодировщик Windows Media всегда ведет себя как DMO.
Windows Vista и Windows 7 По умолчанию видеокодировщик Windows Media ведет себя как DMO. При получении интерфейса IMFTransform в видеокодировщике он ведет себя как MFT.

 

Форматы входных данных

Кодировщик Windows Media Video поддерживает следующие подтипы входных носителей, если он выступает в качестве DMO.

  • MEDIASUBTYPE_IYUV
  • MEDIASUBTYPE_I420
  • MEDIASUBTYPE_YV12
  • MEDIASUBTYPE_NV11
  • MEDIASUBTYPE_NV12
  • MEDIASUBTYPE_YUY2
  • MEDIASUBTYPE_UYVY
  • MEDIASUBTYPE_YVYU
  • MEDIASUBTYPE_RGB32
  • MEDIASUBTYPE_RGB24
  • MEDIASUBTYPE_RGB565
  • MEDIASUBTYPE_RGB555
  • MEDIASUBTYPE_RGB8
  • MEDIASUBTYPE_PHOTOMOTION

Кодировщик Windows Media Video поддерживает следующие подтипы входных носителей, если он выступает в качестве MFT.

  • MFVideoFormat_IYUV
  • MFVideoFormat_I420
  • MFVideoFormat_YV12
  • MFVideoFormat_NV11
  • MFVideoFormat_NV12
  • MFVideoFormat_YUY2
  • MFVideoFormat_UYVY
  • MFVideoFormat_YVYU
  • MFVideoFormat_RGB32
  • MFVideoFormat_RGB24
  • MFVideoFormat_RGB565
  • MFVideoFormat_RGB555
  • MFVideoFormat_RGB8
  • MEDIASUBTYPE_PHOTOMOTION

Форматы вывода

В следующей таблице показаны коды из четырех символов (FOURCC), соответствующие категориям закодированных выходных данных.

Категория FOURCC
Простой профиль Windows Media Video 9 "WMV3"
Основной профиль Windows Media Video 9 "WMV3"
Расширенный профиль Windows Media Video 9 "WVC1"
Изображение Windows Media Video 9.1 "WMVP" для 9.1, "WVP2" для 9.1 версии 2

 

Чтобы различать простой профиль и основной профиль, задайте свойство MFPKEY_DECODERCOMPLEXITYREQUESTED .

Свойства

Кодировщик Windows Media Video 9 поддерживает следующие свойства.

Свойство Описание
MFPKEY_ASFOVERHEADPERFRAME Указывает накладные расходы (в байтах на пакет), необходимые для контейнера, используемого для хранения сжатого содержимого.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль, изображение.
Доступный только на запись.
MFPKEY_AVGFRAMERATE Задает среднюю частоту кадров видеосодержимого в кадрах в секунду.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль, изображение.
Только для чтения.
MFPKEY_BAVG Задает окно буфера (в миллисекундах) потока ограниченной переменной скорости (VBR) со средней скоростью (задается MFPKEY_RAVG).
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль.
Read/write.
MFPKEY_BDELTAQP Указывает увеличение разницы между квантайзером изображения рамки привязки и квантайзером изображения B-кадра.
Windows XP и более поздних версий.
Основной профиль, расширенный профиль.
Доступный только на запись.
MFPKEY_BMAX Указывает окно буфера (в миллисекундах) потока ограниченной переменной скорости (VBR) с пиковой скоростью (задается MFPKEY_RMAX).
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль, изображение.
Read/write.
MFPKEY_BUFFERFULLNESSINFIRSTBYTE Указывает, содержит ли закодированный видеобитовый поток значение заполнения буфера с каждым ключевым кадром.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль.
Только для чтения.
MFPKEY_CLOSEDENTRYPOINT Задает шаблон кодирования, используемый в начале группы рисунков.
Windows Vista и более поздних версий.
Простой профиль, основной профиль, расширенный профиль, изображение.
Доступный только на запись.
MFPKEY_CODEDFRAMES Указывает количество видеокадров, закодированных кодеком.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль.
Только для чтения.
MFPKEY_CODEDNONZEROFRAMES Указывает количество видеокадров, закодированных кодеком, которые фактически содержат данные.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль.
Только для чтения.
MFPKEY_COMPLEXITY Это свойство заменено MFPKEY_COMPLEXITYEX.
MFPKEY_COMPLEXITYEX Указывает сложность алгоритма кодировщика.
Windows Vista и более поздних версий.
Простой профиль, основной профиль. Расширенный профиль.
Доступный только на запись.
MFPKEY_COMPRESSIONOPTIMIZATIONTYPE Указывает тип оптимизации, используемой для кодека Расширенного профиля Windows Media Video 9.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль.
Запись.
MFPKEY_CRISP Задает числовое представление компромисса между плавностью движения и качеством изображения в выходных данных кодека.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль.
Доступный только на запись.
MFPKEY_DATARATE Не используется.
MFPKEY_DECODERCOMPLEXITYPROFILE Указывает шаблон соответствия устройств, которому соответствует закодированное содержимое.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль, изображение.
Только для чтения.
MFPKEY_DECODERCOMPLEXITYREQUESTED Указывает шаблон соответствия устройств, который требуется использовать для кодирования видео.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль.
Доступный только на запись.
MFPKEY_DELTAMVRANGEINDEX Задает метод, используемый для кодирования сведений о векторе движения.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль.
Доступный только на запись.
MFPKEY_DENOISEOPTION Указывает, будет ли кодек использовать фильтр шума при кодировании.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль.
Доступный только на запись.
MFPKEY_DESIRED_VBRQUALITY Указывает требуемый уровень качества для кодирования на основе качества (1 проход) с переменной скоростью передачи (VBR).
Windows Vista и более поздних версий.
Простой профиль, основной профиль, расширенный профиль, изображение.
Доступный только на запись.
MFPKEY_DROPPEDFRAMES Указывает количество видеокадров, удаленных во время кодирования.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль.
Только для чтения.
MFPKEY_ENDOFPASS Указывает конец прохода кодирования.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль.
Доступный только на запись.
MFPKEY_FORCEFRAMEHEIGHT Задает промежуточную высоту кадра для закодированного видео.
Windows XP и более поздних версий.
Расширенный профиль.
Доступный только на запись.
MFPKEY_FORCEFRAMEWIDTH Задает промежуточную ширину кадра для закодированного видео.
Windows XP и более поздних версий.
Расширенный профиль.
Доступный только на запись.
MFPKEY_FORCEMEDIANSETTING Указывает, должен ли кодек использовать фильтрацию медиан во время кодирования.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль.
Доступный только на запись.
MFPKEY_FOURCC Указывает FOURCC, идентифицирующий кодировщик, который вы хотите использовать.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль, изображение.
Доступный только на запись.
MFPKEY_FRAMECOUNT Является устаревшей.
MFPKEY_FULLFRAMERATE Указывает, разрешено ли кодировщику удалять кадры.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль, изображение.
Доступный только на запись.
MFPKEY_INTERLACEDCODINGENABLED Указывает, будут ли выходные данные кодека чередуться.
Windows XP и более поздних версий.
Расширенный профиль.
Доступный только на запись.
MFPKEY_KEYDIST Задает максимальное время (в миллисекундах) между ключевыми кадрами в выходных данных кодека.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль, изображение.
Доступный только на запись.
MFPKEY_LIVEENCODE Не используется.
MFPKEY_LOOKAHEAD Указывает количество кадров после текущего кадра, которое кодек будет оценивать перед кодированием текущего кадра.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль.
Доступный только на запись.
MFPKEY_LOOPFILTER Указывает, должен ли кодек использовать фильтр деблокировки в цикле во время кодирования.
Windows XP и более поздних версий.
Основной профиль, расширенный профиль.
Доступный только на запись.
MFPKEY_MACROBLOCKMODECOSTMETHOD Указывает метод затрат, используемый кодеком для определения используемого режима макроблока.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль.
Доступный только на запись.
MFPKEY_MOTIONMATCHMETHOD Указывает метод, используемый для сопоставления движения.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль.
Доступный только на запись.
MFPKEY_MOTIONSEARCHLEVEL Указывает типы видеоданных, которые используются в операциях поиска движения.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль.
Доступный только на запись.
MFPKEY_MOTIONSEARCHRANGE Указывает диапазон, используемый при поиске движения.
Windows XP и более поздних версий.
Основной профиль, расширенный профиль.
Доступный только на запись.
MFPKEY_NOISEEDGEREMOVAL Указывает, должен ли кодек пытаться обнаружить шумные края кадра и удалить их.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль.
Доступный только на запись.
MFPKEY_NUMBFRAMES Указывает количество двунаправленных прогнозных кадров (B-кадров).
Windows XP и более поздних версий.
Основной профиль, расширенный профиль.
Доступный только на запись.
MFPKEY_NUMTHREADS Указывает количество потоков, которые кодек будет использовать для кодирования.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль.
Доступный только на запись.
MFPKEY_PASSESRECOMMENDED Указывает максимальное число проходов, поддерживаемых кодеком.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль, изображение.
Только для чтения.
MFPKEY_PASSESUSED Указывает количество проходов, которые кодек будет использовать для кодирования содержимого.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль, изображение.
Read/write.
MFPKEY_PERCEPTUALOPTLEVEL Указывает, должен ли кодек использовать консервативную оптимизацию восприятия при кодировании.
Windows XP и более поздних версий.
Основной профиль, расширенный профиль.
Доступный только на запись.
MFPKEY_PRODUCEDUMMYFRAMES Указывает, создает ли кодировщик фиктивные записи кадра в битовом потоке для повторяющихся кадров.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль.
Доступный только на запись.
MFPKEY_QPPERFRAME Указывает QP.
Windows Vista и более поздних версий.
Простой профиль, основной профиль, расширенный профиль, изображение.
Доступный только на запись.
MFPKEY_RANGEREDUX Указывает степень, в которой кодек должен уменьшать эффективный цветовой диапазон видео.
Windows XP и более поздних версий.
Расширенный профиль.
Доступный только на запись.
MFPKEY_RAVG Указывает среднюю скорость (в битах в секунду), используемую для кодирования VBR с 2-проходными значениями.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль.
Read/write.
MFPKEY_RDSUBPIXELSEARCH Указывает, использует ли кодировщик поиск MV на основе вложенных пикселей на основе удаленных рабочих стола.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль, изображение.
Доступный только на запись.
MFPKEY_REENCENDBUFFERSIZE Для повторного кодирования сегментов указывает размер буфера.
Windows Vista и более поздних версий.
Простой профиль, основной профиль, расширенный профиль, изображение.
Доступный только на запись.
MFPKEY_REENCDURATION Для повторного кодирования сегментов указывает продолжительность повторного кодирования сегмента.
Windows Vista и более поздних версий.
Простой профиль, основной профиль, расширенный профиль, изображение.
Доступный только на запись.
MFPKEY_REENCQPREF Для повторного кодирования сегментов задает квантайзер кадра перед начальным сегментом.
Windows Vista и более поздних версий.
Простой профиль, основной профиль, расширенный профиль, изображение.
Доступный только на запись.
MFPKEY_REENCSTARTBUFFERSIZE Для повторного кодирования сегментов указывает начальную заполненность буфера.
Windows Vista и более поздних версий.
Простой профиль, основной профиль, расширенный профиль, изображение.
Доступный только на запись.
MFPKEY_RMAX Указывает пиковую скорость (в битах в секунду), используемую для ограниченной 2-проходной переменной скорости (VBR).
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль.
Read/write.
MFPKEY_TOTALFRAMES Указывает количество видеокадров, переданных кодировщику в процессе кодирования.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль, изображение.
Только для чтения.
MFPKEY_VBRENABLED Указывает, будет ли кодек использовать кодировку С переменной скоростью (VBR).
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль, изображение.
Read/write.
MFPKEY_VBRQUALITY Указывает фактический уровень качества для кодирования VBR на основе качества (1 прохода).
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль.
Доступный только на запись.
MFPKEY_VIDEOSCALING Указывает, будет ли кодек использовать оптимизацию масштабирования видео.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль.
Доступный только на запись.
MFPKEY_VIDEOWINDOW Указывает объем содержимого в миллисекундах, которое может поместиться в буфер модели.
Windows XP и более поздних версий.
Расширенный профиль.
Доступный только на запись.
MFPKEY_VOLHEADERFORREENCODE Для повторного кодирования сегментов указывает частные данные кодека файла, который кодируется повторно.
Windows Vista и более поздних версий.
Простой профиль, основной профиль, расширенный профиль, изображение.
Доступный только на запись.
MFPKEY_VTYPE Указывает тип логики, которую кодек будет использовать для обнаружения чередующегося исходного видео.
Windows XP и более поздних версий.
Расширенный профиль.
Доступный только на запись.
MFPKEY_ZEROBYTEFRAMES Указывает количество пропущенных видеокадров, так как они дублировали предыдущие кадры.
Windows XP и более поздних версий.
Простой профиль, основной профиль, расширенный профиль.
Только для чтения

 

Требования

Требование Значение
клиент
Windows XP, Windows Vista или Windows 7
Заголовок
Wmcodecdsp.h
DLL
Wmvencod.dll

См. также раздел

Объекты кодека

Реализация кодека