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 編碼設定檔。
支援的值為:
  • eAVEncH265VProfile_Main_420_8
MF_MT_MPEG2_LEVEL 指定自動程式碼影片的層級。 如需設定檔和層級條件約束的詳細資訊,請參閱附錄 A of HTTP-T H.265。
MF_MT_PIXEL_ASPECT_RATIO 選擇性。 指定圖元外觀比例。 預設值為 1:1。

 

設定輸出類型之後,視訊編碼器會藉由新增 MF_MT_MPEG_SEQUENCE_HEADER 屬性來更新類型。 這個屬性包含序列標頭。

支援的 IMFTransform 方法

H.265/HEVC 編碼器支援 下列 IMFTransform 介面的方法:

所有其他 IMFTransform 方法都會傳回錯誤E_NOTIMPL。

支援的 ICodecAPI 方法

H.265/HEVC 編碼器支援 下列 ICodecAPI 介面的方法:

所有其他 ICodecAPI 方法都會傳回錯誤E_NOTIMPL。

編解碼器屬性

H.265 編碼器會實作 ICodecAPI 介面來設定編碼參數。 它支援下列屬性。

如需 HCK 編碼器認證的編解碼器需求,請參閱下方 的認證硬體編碼器 一節。

屬性 Description
CODECAPI_AVEncCommonRateControlMode 設定速率控制模式。 支援的模式如下:
  • eAVEncCommonRateControlMode_CBR
  • eAVEncCommonRateControlMode_Quality
如果指定其他模式,則會使用 eAVEncCommonRateControlMode_CBR 速率控制項。
這是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 設定用來執行壓縮作業的執行緒數目。 編碼器會將框架分割成圖格,讓執行緒數目等於磚數目。
  • 邏輯處理器數目。 執行緒數目必須小於或等於邏輯處理器的數目。
  • 框架的大小。 磚的大小必須大於或等於 265x64 圖元。
  • 同位。 執行緒數目必須是偶數值。 如果指定的值是奇數,則會使用下一個較低的偶數值。
這是VT_UI4值。

 

認證的硬體編碼器

如果存在經認證的硬體編碼器,通常會用於媒體基礎相關案例的收件匣系統編碼器。 需要經過認證的編碼器才能支援一組特定的 ICodecAPI 屬性,而且可以選擇性地支援另一組屬性。 認證程式應該保證已正確支援所需的屬性,如果支援選擇性屬性,也支援該屬性。

以下是編碼器通過 HCK 編碼器認證的必要和選擇性 ICodecAPI 屬性集。

規格需求

需求
最低支援的用戶端
Windows 10 [僅限傳統型應用程式]
最低支援的伺服器
都不支援
DLL
Mfh265enc.dll

另請參閱

編解碼器物件