dxva2+ffmpeg硬件解碼(Windows)重要筆記4

參考了csdn上Win32Project1_ffmpeg_dxva2這個例子,很不錯,直接就可以運行。

但是,有幾個問題:

1、窗口無法正常縮放,縮放後,圖像大小並沒有一起縮放

2、H265的編碼格式,顯示下面有一塊綠色。

3、無法從顯卡獲取YUV420P數據或者NV12數據

3、找了很久網上也沒有相關代碼實現從顯卡獲取數據到內存(有些方法相當慢,基本無法使用!)

4、新遇到問題(2019.11),如果編碼端採用硬件(GPU)編碼後,會生成1088P的圖像,你沒看錯,是1088,不是1080P,這時候解碼如果直接顯示會在屏幕下邊產生8個像素高的綠條。

 

第4個問題,查了很多資料也沒找到解決方法,其實不怪別人,只是自己理解得不夠深入,什麼東西都有第一次,第一次一般都比較膚淺,以後隨着日久生情,慢慢就深入淺出了,我在說什麼?不知所云了,哈哈:

其實就一個函數:

IDirect3DDevice9::StretchRect(THIS_ IDirect3DSurface9* pSourceSurface,CONST RECT* pSourceRect,IDirect3DSurface9* pDestSurface,CONST RECT* pDestRect,D3DTEXTUREFILTERTYPE Filter)

pSourceRect這個參數稍微改下就OK了。

原代碼是0,默認是原圖像的全部區域。我們改成1920X1080不就OK了?好的,試試,果然如此!問題輕鬆解決。

其實有時不需要臺急躁,網絡不是萬能的,稍微用點精力去理解下函數接口,有些問題就迎刃而解了。記錄下。謝謝大家!

我的QQ35744025,對音視頻有些瞭解,願意爲公司或者個人提供技術合作和支持,有需求的請騷擾!


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章