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