目录
前言:
视频硬解码的过程就是把视频提取成图片变显示出来,就是播放器播放视频的过程,就可以理解为解码的过程。
在不同的系统平台上,ffmpeg支持不同的硬件加速框架。
1.iso/os x平台
普遍支持videotoolbox和opencv对视频进行硬加速,只是对h264可以进行硬解码。
2.windows平台
可以使用 ffmpeg -hwaccels 命令来查看支持哪些
可以看到windows下有很多硬加速框架
3.linux平台
普遍支持opencv和vulkan的硬加速框架
4.Tips:
cuda:nvdia显卡
vaapi:有intel主导的一套开源的库(LibVA) 以及API规范
qsv:有intel开发的专门用于视频编码和解码的技术
opencl:一套跨平台的视频加速框架
dxva2和d3d11va:由windows系统开发的一套视频加速框架。
5.结论:
在ffmpeg开发硬解码的过程中,首先要了解上面的一些基本信息,根据自身需求调用不同的硬加速api,如果要做通用的硬解码,最好需要系统提供的api,免去识别硬件,例如如果选用了qsv那么只能支持intel的cpu,用amd的cpu就不能进行加速。所以windows下开发,我喜欢选用dxva2来进行视频加速。