2016-09-21 38 views
0

媒體基金會的H264編碼器性能不佳媒體基金會的H264編碼器性能不佳

我正在寫記錄實時PC的屏幕和媒體基金會H264編解碼器編碼它的應用程序。 編碼會消耗大量CPU資源。在停止錄製視頻(或通過簡單地停止向視頻和音頻幀饋送編碼器來暫停視頻)之後,CPU負載長時間保持非常高(5-10秒或更長時間)。在此期間,應用程序將等待至IMFSinkWriter :: Finalize方法完成。

我的PC配置:

  • 英特爾i5-2410M的2.3 GHz的4芯
  • 8 GB RAM

編解碼器的配置:

  • 25幀
  • 1364 x 768分辨率
  • 基本規範
  • 1.2兆比特的比特率

這是MF H264編解碼器性能的限制或者是由於我的代碼中的bug /錯誤配置?

+0

Didi你試試這個源代碼我提供:http://stackoverflow.com/questions/33753912/directx-screen-capture-and-output-as-video/33946441#33946441對於十個視頻分鐘,Finalize是非常快。 – mofo77

回答

0

對於具有長內部隊列的管線來說,預期的行爲是保持對視頻進行編碼,直到隊列爲空。由於 - 看起來 - 軟件編碼器正在使用,它很慢,您的屏幕捕獲源產生足夠的數據,以填補隊列如此之緊,以至於需要額外的時間來排序。

您的解決方案是控制/降低數據速率,或者使用速度更快,硬件輔助,編碼器。但媒體基金會可以自動利用硬件編碼器,所以我想這不適合你。您可以使用MediaFoundationVideoEncoderTransforms tool來檢查硬件編碼器的可用性。