Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Кодировщик видео Media Foundation H.265 — это преобразование Media Foundation, которое поддерживает кодирование содержимого в формате H.265/HEVC. Кодировщик поддерживает следующие профили:
- Профиль Main
Кодировщик видео H.265 предоставляет следующие интерфейсы:
Типы входных данных
Тип входного носителя должен иметь один из следующих подтипов:
- MFVideoFormat_IYUV
- MFVideoFormat_NV12
- MFVideoFormat_YUY2
- MFVideoFormat_YV12
Дополнительные сведения об этих подтипах см. в разделе Guid подтипа видео.
Тип выходных данных должен быть задан перед типом входных данных. Пока не будет задан тип выходных данных, метод IMFTransform::SetInputType кодировщика возвращает MF_E_TRANSFORM_TYPE_NOT_SET.
Типы вывода
Кодировщик поддерживает один выходной подтип:
- MFVideoFormat_H265
Задайте следующие атрибуты для типа выходного носителя.
attribute | Описание |
---|---|
MF_MT_MAJOR_TYPE | Основной тип. Должен быть MFMediaType_Video. |
MF_MT_SUBTYPE | Подтип видео. Должен быть MFVideoFormat_HEVC. |
MF_MT_AVG_BITRATE | Средняя скорость закодированных битов в битах в секунду. Должен быть больше нуля. |
MF_MT_FRAME_RATE | Частота кадров. |
MF_MT_FRAME_SIZE | Размер кадра. |
MF_MT_INTERLACE_MODE | Режим чередоперемежений. |
MF_MT_VIDEO_PROFILE | Профиль кодирования H.265. Поддерживаются такие значения:
|
MF_MT_MPEG2_LEVEL | Указывает уровень закодированного видео. Дополнительные сведения об ограничениях профиля и уровня см. в приложении A к ITU-T H.265. |
MF_MT_PIXEL_ASPECT_RATIO | Необязательный элемент. Указывает пропорции пикселей. Значение по умолчанию — 1:1. |
После установки типа вывода кодировщик видео обновляет тип, добавляя атрибут MF_MT_MPEG_SEQUENCE_HEADER . Этот атрибут содержит заголовок последовательности.
Поддерживаемые методы IMFTransform
Для кодировщика H.265/HEVC поддерживаются следующие методы интерфейса IMFTransform :
- GetAttributes
- GetInputAvailableType
- GetInputCurrentType
- GetInputStatus
- GetInputStreamInfo
- GetOutputAvailableType
- GetOutputCurrentType
- GetOutputStatus
- GetOutputStreamInfo
- GetStreamCount
- GetStreamLimits
- ProcessEvent
- ProcessMessage
- ProcessInput
- ProcessOutput
- SetInputType
- SetOutputType
- SetOutputBounds
Все остальные методы IMFTransform возвращают ошибку E_NOTIMPL.
Поддерживаемые методы ICodecAPI
Для кодировщика H.265/HEVC поддерживаются следующие методы интерфейса ICodecAPI :
Все остальные методы ICodecAPI возвращают E_NOTIMPL ошибки.
Свойства кодека
Кодировщик H.265 реализует интерфейс ICodecAPI для настройки параметров кодирования. Он поддерживает следующие свойства.
Требования к кодеку для сертификации кодировщика HCK см. в разделе Сертифицированный аппаратный кодировщик ниже.
Свойство | Описание |
---|---|
CODECAPI_AVEncCommonRateControlMode | Задает режим управления скоростью. Ниже приведены поддерживаемые режимы.
Это VT_UI4 значение. |
CODECAPI_AVEncCommonMeanBitRate | Задает среднюю скорость для закодированного битового потока в битах в секунду. Допустимый диапазон — [1 ... 2²–1]. Это VT_UI4 значение. |
CODECAPI_AVEncCommonBufferSize | Задает размер буфера (в байтах) для кодирования с постоянной скоростью (CBR). Допустимый диапазон — [1 ... 2²–1]. Это VT_UI4 значение. |
CODECAPI_AVEncCommonMaxBitRate | Задает максимальную скорость для режимов управления скоростью, допускающих пиковую скорость. Допустимый диапазон — [1 ... 2²–1]. Это VT_UI4 значение. |
CODECAPI_AVEncMPVGOPSize | Задает число рисунков из одного заголовка GOP в следующий, включая начальную привязку, но не следующую. Допустимый диапазон — [0 ... 2²–1]. Если значение равно нулю, кодировщик выбирает размер GOP. Значение по умолчанию равно нулю. Это VT_UI4 значение. |
CODECAPI_AVLowLatencyMode | Включает или отключает режим низкой задержки. Это VT_BOOL значение. |
CODECAPI_AVEncCommonQualityVsSpeed | Устанавливает компромисс между качеством и скоростью. Это значение влияет на то, как кодировщик выполняет различные операции кодирования, такие как компенсация движения. При более высоких уровнях сложности кодировщик работает медленнее, но обеспечивает более высокое качество с той же скоростью передачи. Допустимый диапазон — от 0 до 100. Внутренне это значение сопоставляется с меньшим набором уровней качества и скорости, поддерживаемых кодировщиком. Это VT_UI4 значение. |
CODECAPI_AVEncVideoForceKeyFrame | При принудительном кодировщике кодирует следующий кадр в качестве ключевого кадра. Это VT_UI4 значение. |
CODECAPI_AVEncVideoEncodeQP | Если это свойство задано, кодировщик будет использовать указанный QP для кодирования следующего кадра и всех последующих кадров до тех пор, пока не будет указан новый QP. Допустимый диапазон: 0–51 включительно |
CODECAPI_AVEncVideoMinQP | Это свойство задает ограничение на минимальное значение QP, которое кодировщик может использовать во время управления скоростью CBR. Это VT_UI4 значение. |
CODECAPI_AVEncVideoMaxQP | Это свойство задает ограничение на максимальное значение QP, которое кодировщик может использовать во время управления скоростью CBR. Это VT_UI4 значение. |
CODECAPI_VideoEncoderDisplayContentType | Задает, является ли содержимое полноэкранным, в отличие от содержимого экрана, которое может иметь меньшее окно видео или вообще не иметь видео. Это VT_UI4 значение. |
CODECAPI_AVEncNumWorkerThreads | Задает количество потоков, используемых для выполнения операции сжатия. Кодировщик разделит кадр на плитки таким образом, чтобы количество потоков равнялось количеству плиток.
|
Сертифицированный аппаратный кодировщик
Если имеется сертифицированный аппаратный кодировщик, он обычно используется вместо системного кодировщика папки "Входящие" для сценариев, связанных с Media Foundation. Сертифицированные кодировщики должны поддерживать определенный набор свойств ICodecAPI и при необходимости могут поддерживать другой набор свойств. Процесс сертификации должен гарантировать правильную поддержку необходимых свойств и, если поддерживается необязательное свойство, он также поддерживается должным образом.
Ниже приведен набор обязательных и необязательных свойств ICodecAPI , которые кодировщики должны пройти сертификацию кодировщика HCK.
- CODECAPI_AVEncCommonRateControlMode
- CODECAPI_AVEncCommonQuality
- CODECAPI_AVEncCommonMeanBitRate
- CODECAPI_AVEncCommonBufferSize
- CODECAPI_AVEncMPVGOPSize
- CODECAPI_AVEncVideoEncodeQP
- CODECAPI_AVEncVideoForceKeyFrame
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 10 [только классические приложения] |
Минимальная версия сервера |
Ни одна версия не поддерживается |
DLL |
|
См. также раздел