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,对音视频有些了解,愿意为公司或者个人提供技术合作和支持,有需求的请骚扰!


 

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