windows – FFMPEG框架到DirectX表面硬件加速
发布时间:2020-12-14 05:43:32 所属栏目:Windows 来源:网络整理
导读:我使用ffmpeg函数解码h264帧并在 windows平台上的窗口中显示.我使用的方法如下(从 FFMPEG Frame to DirectX Surface): AVFrame *frame;avcodec_decode_video(_ffcontext,frame,etc...);lockYourSurface();uint8_t *buf = getPointerToYourSurfacePixels();/
我使用ffmpeg函数解码h264帧并在
windows平台上的窗口中显示.我使用的方法如下(从
FFMPEG Frame to DirectX Surface):
AVFrame *frame; avcodec_decode_video(_ffcontext,frame,etc...); lockYourSurface(); uint8_t *buf = getPointerToYourSurfacePixels(); // Create an AVPicture structure which contains a pointer to the RGB surface. AVPicture pict; memset(&pict,sizeof(pict)); avpicture_fill(&pict,buf,PIX_FMT_RGB32,_ffcontext->width,_ffcontext->height); // Convert the image into RGB and copy to the surface. img_convert(&pict,(AVPicture *)frame,_context->pix_fmt,_context->width,_context->height); unlockYourSurface(); 在代码中,我使用sws_scale而不是img_convert. 当我将表面数据指针传递给sws_scale时(事实上在avpicture_fill中),似乎数据指针实际上在RAM而不是GPU内存上,当我想显示表面时,似乎数据被移动到GPU和然后显示.据我所知,在RAM和GPU内存之间复制数据时,CPU利用率很高. 我如何tel ffmpeg直接渲染到GPU内存上的表面(而不是RAM上的数据指针)? 解决方法
我找到了这个问题的答案.为了防止在使用ffmpeg显示帧时额外的CPU使用,我们不能将帧解码为RGB.几乎所有的视频文件都被解码为YUV(这是视频文件中的原始图像格式).这里的要点是GPU能够直接显示YUV数据而无需将其转换为RGB.据我所知,使用ffmpeg通常版本,解码数据总是在RAM上.对于帧,与相同帧的RGB解码等效物相比,YUV数据量非常小.因此,当我们将YUV数据移动到GPU而不是转换为RGB然后转移到GPU时,我们从两个方面加速操作:
>没有转换为RGB 所以最后整体CPU使用率降低了. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows-server-2003 – 列出应用于Windows服务器的所有修补
- windows-7 – 从域中删除计算机
- winforms – 如何使Windows窗体UI响应?
- windows – 锁定桌面USB端口
- windows-server-2003 – Windows Server到Mac OS X客户端的
- 如何在本地运行Microsoft Azure DocumentDB?
- batch-file – .bat文件,用于创建具有特殊字符的复杂字符串
- windows环境下安装Python2和Python3
- windows – Haskell Parsec编译错误
- windows-phone-7 – 如何控制Windows Phone中滚动查看器的滚
推荐文章
站长推荐
- 批处理文件 – 无法在Windows 10下运行.bat文件
- windows远程桌面工具下载多用户登陆
- Windows中的Mercurial没有看到.hgignore – 为什
- 在Windows上更改Atom-editor的Platformio-Ide-Te
- 调用非托管DLL时vshost32.exe崩溃
- windows-server-2003 – 确定上次登录终端服务器
- windows-server-2012 – 在Windows Server 2012
- 为什么Windows给我的硬盘字母C而不是A或B?
- Microsoft Visio professional 2013、Project pr
- windows – 如何让iCacl在文件夹级别授予访问权限
热点阅读