• / 7
  • 下载费用:10 金币  

基于ffmpeg+vaapi的硬件加速渲染技术.pdf

关 键 词:
基于 ffmpeg vaapi 硬件加速 渲染 技术
资源描述:
基于FFMPEGVAAPI的硬件加速渲染技术基于FFMPEGVAAPI的硬件加速渲染技术2目录1写在前面32实现方案321相关环境部署322代码实现53测试结果64写在最后7基于FFMPEGVAAPI的硬件加速渲染技术31写在前面硬件加速即利用GPU来完成图形相关的操作,将CPU空闲出来处理其他事务,特别是在CPU性能不足的情况下,此类操作就更必要了。在视频处理上,DXVA是微软定制的视频加速规范,而在LINUX平台上则是由NVIDIA和INTEL分别提供的VDPAU和VAAPI加速规范。利用上述API可以有效加速视频解码和图像处理,降低系统CPU占用,提升系统性能。更详细的信息请参考HTTP//WWWLINGYUECLOUDCOM/INDEX/DETAILS/ID/61HTML。2实现方案针对INTELCPUX86架构平台,灵跃桌面云推荐大家可采用FFMPEGVAAPI的硬解方案。其中,FFMPEG用于处理各种格式的视频解码;VAAPI则提供对硬件加速视频处理的访问,处理流程图如下。视频数据FFMPEG组件VAAPIVAAPI库XWINDOW显示终端显示器AVCODE21相关环境部署(一)安装依赖包APTGETINSTALLAUTOCONFAUTOMAKEDEBHELPERLADSPASDKLIBSOUNDIODEVLIBBLURAYDEVLIBBS2BDEVLIBCACADEVLIBCDIOPARANOIADEVLIBDVDNAVDEVLIBDVDREADDEVLIBEGL1MESADEVLIBENCADEVLIBFONTCONFIG1DEVLIBFREETYPE6DEVLIBFRIBIDIDEVLIBGL1MESADEVLIBGBMDEVLIBGMEDEVLIBGNUTLS28DEVLIBGSM1DEVLIBGUESSDEVLIBHARFBUZZDEVLIBJACKJACKD2DEVLIBJPEGDEVLIBLCMS2DEVLIBLIRCCLIENTDEVLIBLUA53DEVLIBMODPLUGDEVLIBMP3LAMEDEVLIBNETCDFDEVLIBOPENALDEVLIBOPUSDEVLIBOPENCOREAMRNBDEVLIBOPENCOREAMRWBDEVLIBPULSEDEVLIBRTMPDEVLIBRUBBERBANDDEVLIBSCHROEDINGERDEVLIBSMBCLIENTDEVLIBSSHDEVLIBSOXRDEVLIBSPEEXDEVLIBTHEORADEVLIBTOOLLIBTWOLAMEDEVLIBUCHARDETDEVLIBV4LDEVLIBVADEVLIBVORBISDEVLIBVOAMRWBENCDEVLIBVPXDEVLIBWAVPACKDEVLIBX264DEVLIBX265DEVLIBX11DEVLIBXEXTDEVLIBXINERAMADEVLIBXRANDRDEVLIBXSSDEVLIBXVDEVLIBXVIDCOREDEVPKGCONFIGPYTHONPYTHONDOCUTILSX11PROTOCOREDEVYASMZLIB1GDEV(二)安装LIBVA进入当前用户目录,并下载LIBVA源码包基于FFMPEGVAAPI的硬件加速渲染技术4CDGITCLONEHTTPS//GITHUBCOM/01ORG/LIBVAGIT进入LIBVA文件夹中,CDLIBVA切换到173版本GITCHECKOUTLIBVA173执行编译安装/AUTOGENSH/CONFIGUREMAKEMAKEINSTALL运行VAINFO查看执行结果图中红框内表示当前所支持硬解的视频压缩格式。(三)安装FFMPEG进入当前用户目录,并下载FFMPEG源码包CDGITCLONEHTTPS//GITFFMPEGORG/FFMPEGGITFFMPEG进入FFMPEG文件夹中,CDFFMPEG执行编译安装/CONFIGUREDISABLESTATICENABLESHAREDENABLEGPLENABLEVERSION3DISABLEDEBUGENABLEVAAPIMAKEMAKEINSTALL最后执行FFMPEG查看执行结果。基于FFMPEGVAAPI的硬件加速渲染技术522代码实现(一)视频播放原理简单来说,视频播放器在播放本地视频文件需要经历以下步骤解封装,解码,音视频帧同步,最终会把数据投递到对应的驱动设备,具体过程如下图所示视频数据解封装视频解码音视频同步视频设备音频设备封装格式视频压缩数据原始数据(二)VAAPI解码流程当程序把视频的压缩数据传递到VAAPI解码模块时,会根据视频的压缩格式如H264MPEG2等创建对应的VADECODER,然后把数据送入VADECODER进行解码,最后由VAPUTSURFACE来处理视频解码后的合成和渲染,具体过程如下压缩视频数据VADCODERVAPUTSURFACE显示器VASURFACEID(三)具体实现基于VAAPI和FFMPEG的解码流程图如下基于FFMPEGVAAPI的硬件加速渲染技术6开始AV_REGISTER_ALLAVFORMAT_OPEN_INPUTAVFORMAT_FIND_STREAM_INFOAVCODEC_FIND_DECODERAVCODEC_ALLOC_CONTEXT3VAAPI_INIT是否支持VAAPIVAINITIALIZEAVCODEC_OPEN2AV_READ_FRAMEGETFRAME结束AVPACKETISVIDEOAVCODEC_SEND_PACKETAVCODEC_RECEIVE_FRAMEAV_HWFRAME_GET_BUFFERNYYNY由于使用的FFMPEG的版本是33版本,里面集成了VAAPI中对视频的细节处理,所以只需要在AVCODECCONTEXT的GET_FORMAT回调函数中指定硬解参数,解码后的视频数据会存储在GPU内存中,通过VAPUTSRUFACE函数来处理后期的合成和图像渲染,下图为窗口创建和图像处理的过程图视频原始数据VAPUTSURFACEXWINDOW显示器XOPENDISPLAYXCREATEWINDOW图像合成和缩放3测试结果灵跃桌面云在本次测试中,为对比使用GPU硬解和CPU软解的CPU占用率,测试的视频参数分辨率19201080、帧率25FPS、编码格式H264。依据测试结果可以看出,使基于FFMPEGVAAPI的硬件加速渲染技术7用GPU硬解能大大降低CPU使用率,同时画面输出更加清晰流畅。解码类型CPU占用百分比基于VAAPI的GPU硬解4基于CPU软解504写在最后至此,关于基于VAAPI的硬件加速技术,已经为大家介绍完毕。在实际的应用场景中,还可进一步与视频重定向结合,关于视频重定向的结合应用将在后续更新。
展开阅读全文
  麦档网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
0条评论

还可以输入200字符

暂无评论,赶快抢占沙发吧。

关于本文
本文标题:基于ffmpeg+vaapi的硬件加速渲染技术.pdf
链接地址:https://www.maidoc.com/p-1611.html

当前资源信息

t****e

编号: 20180301225423434550

类型: 共享资源

格式: PDF

大小: 537.43KB

上传时间: 2018-03-01

关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

[email protected] 2018-2020 maidoc.com版权所有  文库上传用户QQ群:3303921 

麦档网为“文档C2C模式”,即用户上传的文档所得金币直接给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的金币归上传人(含作者)所有。
备案号:蜀ICP备17040478号-3  
川公网安备:51019002001290号 

本站提供办公文档学习资料考试资料文档下载


收起
展开