H.265 / HEVC 視訊編碼器
Media Foundation H.265 視訊編碼器是一種 媒體基礎轉換 ,可支援將內容編碼成 H.265/HEVC 格式。 編碼器支援下列設定檔:
- 主要設定檔
H.265 視訊編碼器會公開下列介面:
輸入媒體類型必須具有下列其中一個子類型:
- MFVideoFormat_IYUV
- MFVideoFormat_NV12
- MFVideoFormat_YUY2
- MFVideoFormat_YV12
如需這些子類型的詳細資訊,請參閱 影片子類型 GUID。
輸出類型必須在輸入類型之前設定。 在設定輸出類型之前,編碼器的 IMFTransform::SetInputType 方法會傳回 MF_E_TRANSFORM_TYPE_NOT_SET。
編碼器支援單一輸出子類型:
- MFVideoFormat_H265
在輸出媒體類型上設定下列屬性。
屬性 | Description |
---|---|
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 of HTTP-T H.265。 |
MF_MT_PIXEL_ASPECT_RATIO | 選擇性。 指定圖元外觀比例。 預設值為 1:1。 |
設定輸出類型之後,視訊編碼器會藉由新增 MF_MT_MPEG_SEQUENCE_HEADER 屬性來更新類型。 這個屬性包含序列標頭。
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。
H.265/HEVC 編碼器支援 下列 ICodecAPI 介面的方法:
所有其他 ICodecAPI 方法都會傳回錯誤E_NOTIMPL。
H.265 編碼器會實作 ICodecAPI 介面來設定編碼參數。 它支援下列屬性。
如需 HCK 編碼器認證的編解碼器需求,請參閱下方 的認證硬體編碼器 一節。
屬性 | Description |
---|---|
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 | 此屬性會設定編碼器可在 CBR ratecontrol 期間使用的最低 QP 限制。 這是VT_UI4值。 |
CODECAPI_AVEncVideoMaxQP | 此屬性會設定編碼器可在 CBR ratecontrol 期間使用的最大 QP 限制。 這是VT_UI4值。 |
CODECAPI_VideoEncoderDisplayContentType | 設定內容是否為全螢幕視訊,而不是螢幕內容可能有較小的視訊視窗,或完全沒有視訊。 這是VT_UI4值。 |
CODECAPI_AVEncNumWorkerThreads | 設定用來執行壓縮作業的執行緒數目。 編碼器會將框架分割成圖格,讓執行緒數目等於磚數目。
|
如果存在經認證的硬體編碼器,通常會用於媒體基礎相關案例的收件匣系統編碼器。 需要經過認證的編碼器才能支援一組特定的 ICodecAPI 屬性,而且可以選擇性地支援另一組屬性。 認證程式應該保證已正確支援所需的屬性,如果支援選擇性屬性,也支援該屬性。
以下是編碼器通過 HCK 編碼器認證的必要和選擇性 ICodecAPI 屬性集。
- CODECAPI_AVEncCommonRateControlMode
- CODECAPI_AVEncCommonQuality
- CODECAPI_AVEncCommonMeanBitRate
- CODECAPI_AVEncCommonBufferSize
- CODECAPI_AVEncMPVGOPSize
- CODECAPI_AVEncVideoEncodeQP
- CODECAPI_AVEncVideoForceKeyFrame
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows 10 [僅限傳統型應用程式] |
最低支援的伺服器 |
都不支援 |
DLL |
|