0
我正在寫一個應用程序,實時記錄PC的屏幕,並使用Media Foundation h264編碼解碼器進行編碼。如果屏幕上的圖片沒有很多動態變化,則所得視頻的質量會保持較高水平。如果圖片有很多動態變化(例如網頁的快速滾動),則視頻質量會變得非常低。這聽起來像是一個低比特率的問題,但參考OSX錄製應用程序工作正常,具有相同的設置。媒體基金會h264編碼器動態場景質量差
編解碼器的配置:
- 25幀
- 1364×768分辨率
- 基線分佈
- 1.2兆比特的比特率
爲了最大限度地提高質量,我配置了以下參數的編解碼器:
- CODECAPI_AVEncCommonRateControlMode = eAVEncCommonRateControlMode_Quality
- CODECAPI_AVEncCommonQuality = 100
- CODECAPI_AVEncAdaptiveMode = eAVEncAdaptiveMode_FrameRate
- CODECAPI_AVEncMPVGOPSize = 10
不幸的是,這並沒有太大的幫助。唯一具有實際效果的設置是比特率。
一個例子視頻,演示該問題: https://www.dropbox.com/s/b26odaeyaygxigo/10-22-2016_15.08.17.mp4?dl=1
嗨,你確定問題是媒體基金會h264編碼器?什麼是PC的桌面屏幕的來源? –
使用IDirect3DSurface9捕獲PC的屏幕,然後按原樣輸入到IMFSinkWriter。沒有理由爲什麼壓縮失真應該出現在這個管道中,而不是在編碼器中。 –
嗨,我認爲與編碼器的問題。您設置的分辨率幾乎爲FULL HD的低比特率。您比較OSX h264和Media Foundation h264編碼器,但它是兩個不同的公司。規格h264保證來自OSX h264和Media Foundation h264編碼器的視頻可以播放,但IT不保證相同的質量。更重要的是,來自微軟的視頻和音頻編碼器以質量差和優化不佳而着稱 - 例如,Windows 10中的h265編碼器 - 它只能在x64下工作,但在x86中它會拋出異常並使應用程序崩潰。 –